4. Семенова М.А. Формирование исследовательских умений младших школьников: Автореф. дис. ... канд. пед наук. -Томск, 2007. - 23 с.
5. ФГОС НОО. URL: https://classinform.rU/fgos/1.2-nachalnoe-obshchee-obrazovanie-1-4-class.html (дата обращения 21.10.21)
Педагогика
УДК 377.169.3
кандидат педагогических наук, доцент Киргинцева Наталья Сергеевна
Военный учебно-научный центр Военно-воздушных сил «Военно-воздушная академия имени профессора Н.Е. Жуковского и Ю.А. Гагарина» (г. Воронеж);
кандидат педагогических наук, доцент Киргинцев Михаил Викторович
Военный учебно-научный центр Военно-воздушных сил «Военно-воздушная академия имени профессора Н.Е. Жуковского и Ю.А. Гагарина» (г. Воронеж);
кандидат педагогических наук Нечаев Сергей Александрович
Военный учебно-научный центр Военно-воздушных сил «Военно-воздушная академия имени профессора Н.Е. Жуковского и Ю.А. Гагарина» (г. Воронеж)
РЕАЛИЗАЦИЯ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА В ИОС НА ОСНОВЕ ASTRA LINUX
Аннотация. В статье освещены проблемы, которые могут возникнуть в процессе перехода образовательных организаций на отечественные операционные системы и системы искусственного интеллекта, что обусловлено необходимостью импортозамещения. Проведён анализ наличия программного обеспечения, пригодного для разработки систем искусственного интеллекта и разработанных свободных систем искусственного интеллекта. Описаны способы использования программного обеспечения в образовательном процессе.
Ключевые слова: Astra Linux, искусственный интеллект, экспертные системы, импортозамещение, языки программирования, машинное обучение.
Annotation. The article presents the problems that may arise during the transition of educational institutions to domestic operating systems and artificial intelligence systems due to the need for import substitution. Analysis of the software availability suitable for the development of artificial intelligence systems and developed free artificial intelligence systems, as well as ways of using software in the educational process is presented.
bywords: Astra Linux, artificial intelligence, expert systems import substitution, programming languages, computer-aided instruction.
Введение. Искусственный интеллект (ИИ) как область знаний охватывает все области человеческой деятельности [1]. Об актуальности проблематики использования ИИ в различных сферах говорит то, что в середине 2019 года был создан технический комитет по стандартизации № 164 «Искусственный интеллект», одну из рабочих групп которого -«Искусственный интеллект в образовании».
Особый интерес представляет использование систем искусственного интеллекта в системе профессионального образования. В статье [2] отмечается, что «...без применения «интеллектуальных» технологий невозможно добиться качественного скачка в профессиональной подготовке ... специалистов...».
Учитывая, что в процессе импортозамещения в образовательных организациях РФ осуществляется переход на отечественные операционные системы (ОС), в частности, на Astra Linux, представляется целесообразным оценить возможности данной ОС с точки зрения внедрения систем искусственного интеллекта.
Изложение основного материала статьи. Рассматривая потенциал ОС как среды функционирования систем ИИ, необходимо в первую очередь рассмотреть наличие платформ или языков программирования, позволяющих создавать программные продукты с функционалом искусственного интеллекта. Во вторую очередь следует выявить готовые программные продукты ИИ, которые могут работать в операционных системах на основе ядра Linux (в частности, ОС Astra Linux).
Анализ состава дистрибутивов Linux и Unix на сайте Packages Search for Linux and Unix (https://pkgs.org/) показал, что из специализированных языков представления знаний, используемых для разработки систем ИИ (CycL, IKL, KIF, Loom, OWL, KM) в дистрибутивах можно обнаружить только OWL.
Для того чтобы выявить, какие языки и платформы используются для создания систем ИИ, был поведен анализ программных продуктов на одном из самых больших сайтов разработчиков открытого программного обеспечения SourceForge.net.
Поиск проводился по разделам «Artificial Intelligence», «ОС Linux», «Production/Stable» и «соответствующий язык программирования». В результате данного поиска были получены количественные данные по использованию языков программирования при создании систем ИИ. Результаты условно можно разделить на две группы. Первая группа включает языки, которые использовались в разработке более чем 20 программ: Java - 269, C++ - 154, C - 78, Python - 51, PHP - 20, Perl - 17, Prolog - 14, JavaScript - 13, Lisp - 13. Вторая группа включает языки программирования, применявшиеся при разработке менее 20 программ: Tcl - 8, Unix Shell - 7, JSP - 6, Assembly - 5, Objective C - 5, S/R - 5, Haskell - 3, Scheme - 3, Common Lisp - 2, Lua - 2, OCaml - 2, Ruby - 2, ActionScript - 1, Erlang - 1, Flex - 1, Logo - 1, REBOL - 1, Standard ML - 1, Visual Basic - 1, XSL - 1, Yacc - 1.
Представляет определенный интерес функциональная возможность этих языков реализовать программы ИИ.
Для этого был проведен поиск на том же сайте SourceForge.net конкретных программ, реализованных на данных языках программирования. Результаты представлены в таблице.
Языки Unix Shell, JSP, Assembly по данным, полученным в ходе исследования содержания сайта SourceForge, используются при разработке систем ИИ только в связке с другими языками программирования.
Кроме того было выявлено, что применение одного языка при создании программ ИИ является скорее исключением, чем правилом.
Включение соответствующих фильтров поисковой системы сайта sourceforge.net позволило выявить, что в связке с языком Java при создании систем ИИ чаще всего используются языки C++ - 24 программы, Python - 17 программ, C - 14 программ, JavaScript - 9 программ, JSP - 6 программ, Lisp - 6 программ, Prolog - 6 программ, Perl - 5 программ, PHP - 5 программ. Например, программа MegaHAL («симулятор разговора») написана с использованием языков C, Python и Tcl.
Таблица
Программы искусственного интеллекта
№ п/п Язык Программа Коментарии (функционал)
1 С++ Tesseract OCR Система для оптического распознавания символов
2 С Free Finger Print Imaging Software Программа для идентификации отпечатков пальцев
3 Perl WordNet: Similarity Программа для определения меры семантического родства элементов контента
4 PHP OpenExpert Экспертная система
5 Java Weka Программна для машинного обучения при решении задач интеллектуального анализа данных
6 JavaScript Natural Language Mouse Interface Трехмерная поисковая система по тексту
7 LISP Intelligent Agents for Lisp Система производственных правил для Common Lisp, цель которой - обеспечить основу для разработки «интеллектуальных» приложений
8 PROLOG ECLiPSe CLP Система программирования логики ограничений Eclipse, предназначенная для решения задач комбинаторной оптимизации
9 Ruby COLDIC Интегрированная лексикографическая платформа для создания и управления электронной лексикой.
10 PYTHON DeepFaceLab Программа для создания дипфейков, позволяет пользователям менять лица на изображениях и видео
11 OCaml SURIKATA Система для поиска больших пространств артефактов и создания алгоритмов для генерации подобных артефактов
12 mskell BuddyScout Интерфейс между BuDDy (библиотекой двоичных диаграмм решений) и GHC (компилятором Glasgow Haskell)
13 Sheme MLP LISP Library Обучающая библиотека MLP (Multilayer Perceptron
14 Erlang ERESYE Библиотека для написания экспертных систем и механизмов обработки правил с использованием языка программирования Erlang
15 Tcl Tcl Artificial Neural Networks Расширение Tcl для искусственных нейронных сетей
16 S/R rpackage conjurer Программа для создания синтетические данных, применимые к нескольким доменам
17 Objective C Artificial Stock Market ASM - это имитационная модель «искусственного фондового рынка» Института Санта-Фе
Ещё одним ярким примером является программа CLIPS, написанная на языках С и Java. CLIPS является одной из наиболее широко используемых инструментальных сред для разработки экспертных систем благодаря своей скорости, эффективности и бесплатности, а также являясь общественным достоянием.
Таким образом, можно констатировать, что в операционных системах, основанных на ядре Linux используется широкий спектр языков программирования при создании программ ИИ. Однако следует учитывать особенности конкретных дистрибутивов.
Для оценки возможности операционной системы Astra Linux по созданию и обеспечению функционирования систем искусственного интеллекта, рассмотрим особенности дистрибутивов этой операционной системы и состав возможного программного обеспечения, работающего в среде этой операционной системы.
ОС Astra Linux выполнена в двух вариантах - ОС Astra Linux общего назначения (ОС ОН) релиз «Орел» и защищенный вариант ОС Astra Linux - ОС специального назначения (ОС СН) «Astra Linux Special Edition» релиз Смоленск, предназначенная для построения автоматизированных систем в защищенном исполнении. Унификация платформ ОС ОН и ОС СН обеспечивает простую миграцию прикладных программ из общей среды в защищенную [3].
При установки дистрибутива Astra Linux (релиз «Орел») в системе можно установить пакеты следующих языков программирования: JavaScript, Java, Lisp, OСaml, PHP, Perl, Python, Ruby, которые в менеджере пакетов системы выделяются в отдельные разделы. Кроме того отдельно формируется раздел «Языки программирования интерпретируемые», в котором размещаются пакеты языков: СРР, Erlang, Lua, M4 , Gawk, Scm, Slsh, Tcl.
Согласно руководящим указаниям по конструированию прикладного программного обеспечения для ОС общего назначения при компиляции и отладке прикладных программ основными рекомендуемыми языками программирования для разработки являются С, С++, Perl, Python, Shell [3].
Как было показано выше, данные языки позволяют создавать широкий спектр систем ИИ, однако возможность установки дополнительных пакетов указанных языков программирования с учетом информации об уже разработанных системах ИИ, полученных с сайта SourceForge.net, значительно расширяют возможность создания и эксплуатации систем ИИ.
В первую очередь следует выделить язык программирования Python. В репозитории Astra Linux имеются дистрибутивы Python 2 и Python 3.
Возможности языка Python в области ИИ описаны в работе П. Джоши «Искусственный интеллект с примерами на Python» [4]. Рассмотрены реализации программ: «Классификация и регрессия посредством обучения с учителем»; «Предсказательная аналитика на основе ансамблевого обучения»; «Распознавание образов с помощью обучения без учителя»; «Создание рекомендательных систем»; «Логическое программирование»; «Методы эвристического поиска»; «Генетические алгоритмы»; «Создание игр с помощью искусственного интеллекта»; «Обработка естественного языка»:
«Вероятностный подход к обработке последовательных данных»; «Создание систем распознавания речи»; «Обнаружение и отслеживание объектов»; «Искусственные нейронные сети»; «Обучение с подкреплением»; «Глубокое обучение и сверточные нейронные сети»; «Создание нейронных сетей с помощью библиотеки Tenso^lo^»
Наличие большого количества учебной литературы по языку Python и книг по его использованию в области ИИ, облегчает изучение языка и разработку систем ИИ на его основе. Например, в работе «Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными» Андреас Мюллер, Сара Гвидо [5] рассматривают возможности языка при обработке больших данных. В книге подробно рассматривается библиотека scikit-learn, которая содержит ряд современных алгоритмов машинного обучения, а также полную документацию по каждому алгоритму. scikit-learn - очень популярный инструмент и самая известная библиотека для машинного обучения. Она широко используется в промышленности и науке. В работе [6] Патриция Нейл (Patricia Neil) рассматривает библиотеки, которые используются при создании программ ИИ: Scipy, Scikit-learn, Keras, Pybrain, TensorFlow. Первая используется для расширенных вычислений, остальные могут использоваться в области машинного обучения, моделирования нейронных сетей и обучения с подкреплением. Python идеально подходит для проектов в сфере компьютерного зрения и машинного обучения, аналитики, разработки систем корпоративного обучения.
Следует отметить, что и другие языки, пакеты которых входят в состав дистрибутива Astra Linux используются при создании систем ИИ. Например Java применяют при создании решений для машинного обучения, нейронных сетей, алгоритмов поиска, генетического программирования и мульти-робототехнических систем. Java API используется при создании мобильных роботов.
JavaScript при использовании библиотеки TensorFlow.js. позволяет реализованный с её помощью искусственный интеллект, который может использоваться для создания приложений, реагирующих в реальном времени на вводимые пользователем голосовые и мимические данные.
В учебных заведениях представляет большой интерес использование экспертных и вопросно-ответных систем. При их разработке часто используются языки логического программирования, например, PROLOG. В Linux системах получил широкое распространение SWI-prolog.
В репозитории Astra Linux отсутствует пакет языка SWI-prolog. Однако наличие пакетов данного языка в дистрибутивах Debian (SWI-prolog присутствует во всех выпусках (версиях дистрибутива) debian «jessie», «stretch», актуальном «buster» и перспективном «bullseye»), и возможность его установки в систему Astra Linux позволяет решить проблему применения данного языка в разработке систем ИИ.
Начиная с версии 7.3.33, SWI-Prolog распространяется под упрощенной лицензией BSD. На сайте программы есть возможность скачивания пакетов и дополнений, расширяющих возможности языка.
Существует ещё один подход, позволяющий расширить возможности языков программирования. Это реализация той или иной парадигмы программирования в языках с помощью дополнительных библиотек, плагинов или иных способов.
Примером является реализация парадигмы логического программирования в языке Python, причем существует несколько реализаций этого подхода.
Первая реализация - Python Knowledge Engine (PyKE). (https://sourceforge.net/projects/pyke/). Программа написана полностью на языке Python и реализует основанный на знаниях механизм вывода. Pyke интегрируется с Python, позволяя вызывать Pyke из Python и смешивать операторы и выражения Python в правилах, например, экспертной системы. Вторая реализация pytholog - библиотека Python, позволяющая использовать логическое программирование на Python. Цель библиотеки - получить способы использования символических рассуждений с машинным обучением. Третья реализация PyProlog - расширение Python, встраивающее SWI-Prolog. Аналогичную задачу выполняет swiplserver - модуль Python, разработанный для использования SWI-Prolog при реализации приложения Python. Четвертая реализация - программа Yield Prolog, которая встраивает функционал Prologa непосредственно в свои программы, написанные на языках Python, C # или JavaScript. Пятая - использование парадигмы логического программирования на языке JavaScript (проект TAU-prolog).
Широкое распространение экспертных систем продукционного типа обусловило применение многообразных специализированных инструментальных средств их разработки, главное из которых - среда CLIPS. К основным достоинствам этой среды относятся встроенный объектно-ориентированный язык COOL, свободное распространение, кроссплатформенность, полная открытая документация.
Существует отметить возможность использовать CLIPS в качестве внедренного приложения: то есть программа на CLIPS может быть скомпилирована и скомпонована с программой на языке C++, которая будет вызывать CLIPS-фрагменты как подпрограммы.
Данный программный продукт также отсутствует в репозитории Astra Linux, однако содержится в репозиториях всех версий дистрибутивов Debian. Для проверки работоспособности в дистрибутиве нами был установлен пакет программы CLIPS и проведена проверка его работоспособности.
Следует отметить, что в среде Python существуют модули, позволяющие осуществлять интеграцию с другими программами. PyCLIPS - модуль для взаимодействия языка Python с оболочкой и библиотекой экспертной системы CLIPS. При этом в приложении Python встраивается полная функциональность CLIPS.
Выводы. Таким образом, можно констатировать, что в операционных системах, основанных на ядре Linux (в частности, Astra Linux), можно использовать широкий спектр языков программирования при создании программ ИИ. Чаще всего при разработке систем искусственного интеллекта используются языки Java и C, С++. Особый интерес представляют языки Prolog, Python, JavaScript как более легкие в освоении и позволяющие разрабатывать сложные системы. Наряду с языками программирования в среде операционной системы Astra Linux могут функционировать системы, реализующие функционал обучающих экспертных систем. Последние, в свою очередь, являются наиболее перспективными компонентами в информационно-образовательной среде современной образовательной организации.
Литература:
1. ГОСТ Р 59277-2020 Системы искусственного интеллекта. Классификация систем искусственного интеллекта. - М.: Стандартинформ. - 2021. - 16 с.
2. Авуза А.А. Системы искусственного интеллекта, как элемент современной военной образовательной среды // Проблемы современного педагогического образования. - 2017. - № 55-2. - С. 3-10.
3. Руководящие указания по конструированию прикладного программного обеспечения для операционной системы общего назначения «Astra Linux Common Edition». - НПО РусБИТех. - 2018. - 82 с.
4. Джоши, П. Искусственный интеллект с примерами на Python: создание приложений искусственного интеллекта с помощью Python для взаимодействия с окружающим миром. - М:; СПбг: Диалектика, 2019. - 444 с.
5. Мюллер А., Гвидо С. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными. - М.: Вильямс. - Серия O'Reilly. - 2017. - 393 с.
6. URL: https://habr.com/ru/post/477294/ (дата обращения 20.10.2021).