ПРИМЕНЕНИЕ ИНСТРУМЕНТОВ КРЕАТИВНОГО ПРОГРАММИРОВАНИЯ В ХОДЕ ИЗУЧЕНИЯ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ
Раздел: Организация обучения и методическое обеспечение дисциплин «Основы искусственного интеллекта», «Системы искусственного интеллекта в профессиональной деятельности педагога»
Журнал: Материалы Всероссийской научно-практической конференции «Искусственный интеллект в образовании. Современные достижения и перспективы применения: в генерации знаний, управлении, обучении, оценке результатов обучения и формировании компетенций обучающихся»
22 мая 2023 г.
Авторы: Хорошевич Павел Александрович
Информационно-коммуникационные технологии в педагогическом образовании. http://infed.ru
_______________________________________________________________________
УДК 37.016:[004.8:004.43]
П. А. Хорошевич
P. A. Khoroshevich
Хорошевич Павел Александрович, старший преподаватель, БГПУ им. Максима Танка, г. Минск, Беларусь.
Khoroshevich Pavel Alexandrovich, lecturer, BSPU named after Maxim Tank, Minks, Belarus.
ПРИМЕНЕНИЕ ИНСТРУМЕНТОВ КРЕАТИВНОГО ПРОГРАММИРОВАНИЯ В ХОДЕ ИЗУЧЕНИЯ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ
THE APPLICATION OF CREATIVE PROGRAMMING TOOLS IN THE PROCESS OF STUDYING MACHINE LEARNING ALGORITHMS
Аннотация. В статье рассматривается использование JavaScript-библиотеки ml5.js, предназначенной для обучения ML-моделей и применения готовых моделей машинного обучения. Для визуализации результатов обучения модели и создания интерфейса взаимодействия учащегося с моделью предлагается использовать библиотеку p5.js, предназначенную для разработки проектов в контексте креативного программирования.
Annotation. The paper discusses the use of the JavaScript library ml5.js, designed to teach ML models or use a set of ready-made models directly in the student's browser. To visualize the results of model learning and create an interface of interaction between the student and the model it is proposed to use the library p5.js, designed for the creation of projects in the context of creative programming.
Ключевые слова: машинное обучение, креативное программирование, Javascript.
Keywords: machine learning, creative programming, Javascript.
Инструменты, основанные на ML-алгоритмах (ML – Машинное обучение), начинают применяться для решения всё большего круга задач: генерации изображений, текстов и видеофрагментов. Вместе с усложнением функционала моделей машинного обучения, усложняется и кодовая база приложений [5].
Массовое распространение машинного обучения способствует развитию инструментов разработки библиотек и модулей для ряда языков высокого уровня: Python, R, C++. В некоторых случаях API (Прикладной интерфейс программирования) библиотеки не требует от разработчика специализированных знаний в архитектуре нейронный сетей. Распространение большого количества таких инструментов разработки делает изучение основ машинного обучения доступным, в том числе и учащимся учреждений общего среднего образования [4]. Подробнее остановимся на использования библиотеки ml5.js, предназначенной для начального ознакомления с созданием ML-приложений на высокоуровневом языке программирования JavaScript.
Библиотека ml5.js создавалась с целью сделать доступным изучение алгоритмов машинного обучения широкой аудитории учащихся. Основа библиотеки – модуль TensorFlow.js обеспечивающий работу ML-алгоритмов в браузере пользователя. Для работы ml5.js не требуются другие внешние зависимости [2].
Данная библиотека содержит ряд обученных ML-моделей предназначенных для решения задач классификации, регрессии и генерации. Некоторые из доступных моделей перечислены в таблице 1.
Помимо готовых моделей, API библиотеки содержит методы для проектирования архитектуры собственной нейронной сети. Процесс настройки слоёв сети, нормализации данных и тренировки максимально упрощён, за счёт наличия настроек по умолчанию. При необходимости нейронная сеть может содержать свёрточные слои, когда это необходимо.
Помимо непосредственного обучения собственной ML-модели или использования готовой, необходимо разработать интерфейс для взаимодействия с ней. Разработчик должен иметь возможность проверить работу обученной модели на новых данных, источником которых служат рукописный ввод, фотографии, звук с микрофона или изображение с веб-камеры. При необходимости, разработчик должен иметь возможность добавить или удалить образцы для обучения и повторно запустить процесс обучения модели.
В качестве интерфейса для взаимодействия с ml5.js и создания интерфейса управления обученной или готовой моделью, учащиеся могут воспользоваться JavaScript-библиотекой p5.js [3].
Библиотека p5.js предназначена для реализации креативного подхода к программированию и разрабатывалась с целью сделать программное создание компьютерной графики доступным для художников, дизайнеров, преподавателей и учащихся. Библиотека использует подход языка Processing: с помощью функций рисования на виртуальном холсте, пользователь визуализирует свою идею, используя набор готовых функций, не требущих большого количества шаблонного кода. Так как данная библиотека реализована на языке программирования JavaScript, программа запускается в браузере, что даёт пользователю доступ к веб-камере и микрофону компьютера. Помимо виртуального холста на странице могут размещаться элементы управления: текстовые поля, кнопки и слайдеры.
API библиотеки p5.js обладает рядом функций программной обработки растровых изображений. Это особенно полезно при обучении свёрточной нейронной сети на вход которой передаётся одномерный массив, созданный на основе информации о цветовых каналах и пикселях изображения.
Ещё одно важное преимущество библиотеки p5.js – облачная среда программирования, доступная пользователю напрямую из браузера. Благодаря облачной среде, учащемуся не требуется устанавливать дополнительное программное обеспечение на свой компьютер. Скетчи, созданные в облачной среде разработки, сохраняются в аккаунте учащегося. Стоит отметить, что информация, обрабатываемая библиотекой ml5.js, не покидает компьютер учащегося, не передаётся по сети интернет и не хранится в облаке. Весь код выполняется непосредственно в браузере пользователя.
Приведём примеры проектов, для создания которых используются возможности библиотек ml5.js и p5.js.
Классификация – одна из задач, для решения которой используются алгоритмы машинного обучения [1, c. 49]. Первые проекты учащихся могут быть посвящены практическим применениям классификации изображений. Для этого целесообразно использовать готовые модели классификации изображений, предоставляемые библиотекой ml5.js: MobileNet (классификации предмета, изображенного на фотографии) или DoodleNet (классификация рисунка). С помощью библиотеки p5.js программа учащегося получает изображение с веб-камеры компьютера, которое затем будет отнесено к одному из 1000 классов в модели MobileNet. Также учащийся может реализовать рисование на цифровом холсте и воспользоваться моделью DoodleNet для распознавания нарисованных им изображений.
Следующий этап – классификация собственного набора изображений. Для этих целей библиотека ml5.js предоставляет метод featureExtractor для извлечения признаков (Features) из одной модели и их перенос в новую модель – перенос обучения (Transfer learning). Учащимся может быть предложено реализовать практикоориентированный проект «Ответственный водитель»: обученная модель должна определить, держит ли учащийся в руках телефон тем самым моделируя небезопасное вождение.
Задачи на регрессию также могут быть реализованы с помощью готовых моделей. В отличие от задач классификации, где результатом служит вероятность принадлежности входных данных к одному из дискретных классов, в задачах регрессии результатом служит значение на непрерывной числовой прямой [5, c. 111]. Примером задачи на изучение регрессии с применением изображений в качестве входных данных может быть определение координат черт лица или частей тела человека. В качестве практикоориентированного проекта учащиеся могут реализовать электронного помощника, следящего за выполнением физических упражнений. С помощью модели PoseNet программа определяет координаты туловища, рук и ног и сможет посчитать количество выполненных упражнений. Выполнение зарядки можно сопроводить элементами игрофикации, совмещая изображение с веб-камеры и изображение на виртуальном холсте движущихся препятствий, от которых должен уклоняться занимающийся зарядкой человек.
Совместное использование библиотек ml5.js и p5.js обладает рядом дидактических преимуществ. Прикладной интерфейс программирования библиотеки ml5.js достаточно прост в освоении, предоставляет доступ к готовым ML-моделям, а также ряду алгоритмов построения и обучения собственных моделей машинного обучения. Благодаря библиотеке креативного программирования p5.js учащийся может создать интерфейс для взаимодействия с ML-моделью. Так как API данных библиотек был спроектирован с целью упростить процесс обучения начинающих программистов, количество шаблонного кода сокращается. За счёт этого внимание учащегося может быть сконцентрировано на важных составляющих проектирования, программирования и тестирования моделей машинного обучения.
Список литературы
- Lane D. Machine Learning for Kids: A Project-Based Introduction to Artificial Intelligence / D. Lane. – SF.: No Starch Press, 2020. – 250 p.
- Библиотека ml5.js : сайт. – 2023. – URL : https://ml5js.org (дата обращения : 20.04.2023). – Текст : электронный.
- Библиотека p5.js: сайт. – 2023. – URL : https://p5js.org (дата обращения : 19.04.2023). – Текст : электронный.
- Хорошевич, П. А. Применение визуальных языков программирования в ходе преподавания основ машинного обучения / П. А. Хорошевич. – Текст : электронный // Искусственный интеллект в образовании. Современные достижения и перспективы применения: в генерации знаний, управлении, обучении, оценке результатов обучения и формировании компетенций обучающихся: материалы Междунар. науч.практ. конф., Новокузнецк, 24 мая. 2022 г. / Кемеровск. гос. ун-т. – Новокузнецк, 2022. – URL : http://infed.ru/journals/108/ (дата обращения : 30.08.2022).
- Шолле, Ф. Глубокое обучение на Python / Ф. Шолле. – СПб. : Питер, 2018. – 400 с. – Текст : непосредственный.