ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ И РАЗРАБОТКИ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА

УДК 004

ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ И РАЗРАБОТКИ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА*

Д. А. Алферьев 1

В статье рассматриваются инструменты моделирования интеллектуальных систем в основе которых лежат искусственные нейронные сети, машинное обучение и компьютерное зрение. На основании проведенного анализа предложен подход по их выбору, базирующийся на выполняемых задачах и сроках их исполнения, для решения различного рода проблем социально-экономического характера. Описаны особенности языка программирования Python, как наиболее универсального и гибкого варианта моделирования при выборе средств разработки собственного компьютерного приложения, базирующегося на технологиях искусственного интеллекта (ИИ).

Ключевые слова: искусственный интеллект, моделирование ИИ, python, языки программирования, инструментальные средства

Проведение исследований направленных на создание систем искусственного интеллекта, послужили основанием развития отдельных направлений в сфере информационных технологий, которые непосредственно связаны с моделированием ИИ и различного рода процессов, идеей которых является автоматизация и поиск оптимальных решений [1; 3; 4; 10]. В этой связи возникает потребность в определении необходимых средств программирования, которые могут успешно справится с задачами, стоящими перед разработчиками.

Целью данной статьи является обзор основных программных средств, существующих в мировой практике создания ИИ и выявлении их преимуществ и недостатков.

В целом средства компьютерного программирования и моделирования можно разделить на две группы, одна из которых представляет использование универсальных языков программирования, другая — программные оболочки, приложения и инструментальные средства, включающие в себя модули по созданию компьютерного ИИ.

Во втором случае пользователь или, если быть более точным, программист выступает в роли оператора, который использует заранее разработанные до него инструменты для решения конкретной задачи, заточенной в перспективе на

* Статья подготовлена в рамках государственного задания № 0168-2019-0007 «Обеспечение конкурентоспособности регионов в условиях научно-технологических изменений и цифровизации экономики».

1 Алферьев Дмитрий Александрович — научный сотрудник, Федеральное государственное бюджетное учреждение науки «Вологодский научный центр Российской академии наук» (ФГБУН ВолНЦ РАН), г. Вологда

автоматизацию или самостоятельной перебор информации по заданным пользователем алгоритмам. Подобный процесс в отличие от универсальных языков программирования требует в разы меньше времени, но имеет ограничения в плане гибкости моделирования процессов алгоритмизации. Из таких средств можно выделить статистические пакеты [6; 7] Microsoft Excel, Statistica Soft и SPSS, которые связаны с обработкой количественных данных и решают проблемы автоматизации, связанные с регрессиями, кластеризацией, факторным, спектральным анализом и прочими инструментами математической статистики.

Также существуют более специфичные компьютерные инструменты, посредством которых решаются проблемы и задачи аналогичного характера (перечислены выше), но по конкретным направлениям с учетом специфики и особенностей затронутого вида деятельности. Так подобным инструментом является Power BI — компьютерный сервис для бизнес-аналитики и визуализации данных из этой сферы. Посредством данного инструмента можно формировать интерактивные графические отчеты, создаваемые на основе подключенных баз данных, и формировать на их основе управленческие решения посредством встроенных в программу инструментов ИИ. Данная программа на рынке представлена не одним единственным экземпляром и имеет схожие аналоги, такие как QlikView; Klipfolio; Tableau и др.

Универсальные языки программирования открывают перед исследователем большие возможности и в зависимости от целей и задач, которые ему необходимо достигнуть, предполагают самостоятельное моделирование процессов алгоритмизации. В этой связи, системы ИИ, построенные посредством данного подхода, могут быть шире и разнообразнее по своему предназначению и соответственно в связи со своей универсальностью могут быть использованы в различных областях знаний (Narrow AI), либо объединяются в одном проекте под общей информационной системой.

К используемым и распространенным языкам программирования относится LISP. Его особенностью является функция предварительной, «прогонки» возможностей моделируемого объекта, а также создание повторяющихся идентичных программных блоков (макросов). Из-за объектно-ориентированной направленности (в написании алгоритмов задействован не только программный код, но и разработанные на данном языке программы) данный язык является популярным инструментом при создании автономных систем AI [8; 9]. Основным его недостатком являются низкие вычислительные возможности.

Еще одним универсальным языком программирования, на котором разрабатываются системы, поддерживающие эволюционные алгоритмы является язык Prolog. Из информационных систем, базирующихся на его применении, широкое распространение получили такие проекты как MProlog, CProlog, Prolog-2, Arity Prolog и др. Особенностью языка является использование в своей архитектуре конструкций математической логики. Как отмечают разработчики ИИ, плюсами данного языка является отсутствие детерминированных конструкций при разработке ПО и встроенные механизмы поиска элементов кода [11].

В настоящее время широкое распространение в сфере программирования и создания систем ИИ, используемых в любых сферах человеческой жизнедеятельности (робототехника, технологии умного дома, распознавание графических и аудио объектов,

прогнозирование динамических временных рядов) относится язык Python [5]. Это обусловлено тем, что он имеет простой синтаксис и легок в адаптации для начинающих пользователей. Помимо этого, Python имеет мощные вычислительные мощности, а также хорошо проработанный графический интерактивный дизайн. В настоящее время он широко используется для создания универсальных и оптимальных схем обучения программных средств признанной международной компанией в области обучения электронно-вычислительных машин — OpenAI [12].

В работе М. Лутца [2] преимущества Python разобраны более подробно. Из основных преимуществ (и на наш взгляд, современных требований к языкам программирования, которые используются в настоящий момент) следует отнести:

1. Легкость освоения, которая выражается в доступности интерпретации программного кода, а, следовательно, и многократном его использования для решения других задач.

2. Высокая скорость разработки — из-за того, что обучение языку происходит довольно быстро, то это в свою очередь обуславливает и высокую скорость разработки программ, требующих скорейшей реализации для решения каких-либо текущих проблем. Тем не менее это не отменяет того факта, что при помощи данного средства могут разрабатываться и проекты долгострои.

3. Переносимость программного кода и интеграция с другими языками программирования — данное явление обуславливает возможность создания компьютерных приложений на различных операционных системах и далее легкий их перенос и использование в сторонней компьютерной среде. Аналогично и с языками.

4. Библиотеки поддержки — большое количество библиотек данных, связанных как с количественной статистической информацией, так и конкретными продуктами, являющимися качественным интерфейсом для решения конкретных проблем и задач. Данные базы находятся в свободном доступе на бесплатной основе и проходят серьезное рецензирование самими пользователями Python.

Следует отметить, что основным конкурентом данного языка является язык «R», который имеет большое количество библиотек по визуализации данных, их математической обработке различными статистическими методами и широкий круг пользователей, представленный людьми из различных стран, расположенных по всему миру. Также характерным плюсом данного конкурента Python является то, что его использование, при всех озвученных плюсах, — бесплатно.

Существуют и другие программные приложения, связанные с разработкой ИИ, что еще в большей мере обостряет проблему выбора необходимых программных средств, которые могут быть использованы при разработке систем искусственного интеллекта. Но на наш взгляд решение этой задачи опирается на два основных фактора:

1. Определение задач, которые должны быть решены при создании подобной системы. Так, в случае статистической обработки данных, имеющих социально-экономический характер, могут быть использованы стандартные модули инструментальных средств, поставляемые с распространенными статистическими пакетами обработки и анализа данных (Statistica, SPSS, Excel и др.). Но в случае расширения возможностей использования полученных результатов (графическая интерактивная визуализация) имеющихся средств может не хватить, в результате чего

появляется потребность в разработке дополнительных элементов программного кода, скриптов и сервисов поддержки.

2. Уровень имеющихся у исследователя компетенций в области программирования и свобода использования им при этом математического аппарата. В соответствии с этим, некоторые из универсальных языков могут оказаться слишком сложными и потребуют от ученого дополнительных ресурсов, связанных с обучением и освоением новых навыков и знаний. Тем не менее, в настоящий момент данная проблема хорошо решается посредством использования языка Python, который нашел широкое распространение в научно-исследовательских трудах за рубежом, а также относительно прост в обращении относительно других языков, имеющих жесткий детерминированный синтаксис.

Таким образом, в настоящий момент с экспоненциальным всплеском развития цифровых технологий есть острая потребность в специалистах ИТ-сферы, которые могут разрабатывать все более сложные алгоритмы обработки и анализа данных, так и посредством имеющихся инструментов ИИ решать существующие задачи и проблемы различных сфер жизнедеятельности человека. В этой связи в настоящий момент следует отметить язык программирования Python, который является одним из ключевых языков программирования, позволяющих легко и доступно освоиться с программированием систем ИИ и в то же время, позволяет просто решать задачи менее глобального характера. С точки зрения социологии и экономики Python активно используется для анализа и обработки данных по аналогии с языком R. Подобная гибкость делает его универсальным средством как для разработки автономных программных продуктов в сфере принятия управленческих решений, так и для классических задач присущих экономике. В этой связи, можно отметить, что его использование в будущем будет лишь увеличиваться и распространяться, что соответственно повлечет за собой потребность на рынке труда в программистах, работающих с языками группы Python. В случае выполнения единичной задачи, обусловленной небольшими сроками выполнения и конкретными условиями, необходимыми для ее решения, целесообразно использовать готовый пакет решений (Statistica, SPSS, Excel и др.), так как они могут быть быстрее освоены без специальной подготовки.

Данная статья может быть рекомендована специалистам, занимающимся вопросами создания и развития технологий искусственного интеллекта.

Литература

1. Джонс М. Т. Программирование искусственного интеллекта в приложениях; пер. с англ. Осипов А. И. — М.: ДМК Пресс, 2011. — 312 с.

2. Лутц М. Изучаем Python, 4-е издание. — Пер. с англ. — СПб.: Символ-Плюс, 2011. — 1280 с.

3. Маношин Д. А. Программирование искусственного интеллекта // Colloquium-journal. — 2019. — № 12 (36). DOI: 10.24411/2520-6990-2019-10331

4. Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. Погружение в мир нейронных сетей. — СПб.: Питер, 2018. — 480 с.

5. Рашид Т. Создаем нейронную сеть. — Пер. с англ. — СПб.: ООО «Альфа-книга», 2017. — 272 с.

6. Статистика для менеджеров с использованием Microsoft Excel. 4-е изд. / Д. М. Левин, Д. Стефан, Т. С. Кребиль, М. Л. Беренсон. — М.: Издательский дом «Вильямс», 2004. — 1312 с.

7. Стукач О. В. Программный комплекс Statistica в решении задач управления качеством. — Томск: Изд-во Томского политехнического университета, 2011. — 163 с.

8. Хювёнен Э., Сеппянен Э. Мир Лиспа 1. Введение в язык Лисп и функционального программирования. — Издательство: Мир, 1990. — 458 с.

9. Хювёнен Э., Сеппянен Э. Мир Лиспа 2. Методы и системы программирования. — Издательство: Мир, 1990. — 332 с.

10. Шибайкин С. Д., Алексеев Е. Г. Языки программирования систем искусственного интеллекта // Московское научное обозрение. — 2012. — № 7-2 (23). — С. 20-22.

11. Endriss U. Lecture Notes. An Introduction to Prolog Programming. — Universitet van Amsterdam, 2016. — 74 p.

12. OpenAI [Electronic resource]. URL: https://openai.com

SOFTWARE MODELING AND DEVELOPMENT OF SYSTEMS OF ARTIFICIAL INTELLIGENCE

D.A. Alferev Federal State Budgetary Institution of Sciences Vologda Research Center of the Russian Academy of Sciences

The article discusses the tools for modeling intelligent systems based on artificial neural networks, machine learning and computer vision. Based on the analysis carried out, an approach of their choice was proposed, based on the tasks performed and the deadlines for their implementation, to solve various kinds of socio-economic problems. The features of the Python programming language are described as the most versatile and flexible version of modeling when choosing tools to develop your own computer application based on artificial intelligence (AI) technologies.

Keywords: artificial intelligence, AI modeling, python, programming languages, tools