ПРОГРАММИРОВАНИЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Текущий период можно охарактеризовать как время "зарождающихся технологических прорывов в самом широком спектре областей", включая, искусственный интеллект (ИИ), в том числе проектирование нейронных сетей и нейрокомпьютеров, интернет вещей (ИВ), трехмерную печать, роботизацию, нанотехнологии, квантовые вычисления, биотехнологии. Многие инновации приближаются от зарождения к новому этапу развития, на котором они будут наслаиваться и усиливать друг друга, "представляя из себя переплетение технологий из мира физики, биологии и цифровых реалий" [1]. Успех искусственного интеллекта тесно связан с ростом вычислительных мощностей и доступностью колоссальных объемов исторически накопленных данных. Искусственный интеллект представляет собой набор программных технологий, предназначенных для реализации действий, идентичных тем, которые выполняются человеческим мозгом, включая самостоятельное принятие решений. Сам термин в 1956 году дал американский информатик, изобретатель языка LISP, Джон Маккарти.
Одно из самых весомых событий мирового масштаба произошло в 1997 году, когда компьютер "IBM Deep Blue" победил действующего чемпиона мира по шахматам Гарри Каспарова. Для задач по оптимизации принципов работы и игровому тестированию корпорацией IBM был привлечены известные гроссмейстеры, такие как Джоэл Бенджамин и Джон Федорович. Совместная работа гроссмейстеров и ученых из привела к разработке мощного шахматного микропроцессора. В процессе выбора хода суперкомьютер в основном использовал типовые методы поиска по шахматному дереву: минимаксный алгоритм поиска с альфа-бета-отсечениями и оценочную функцию, дававшую оценку конечным позициям. Победа машины над человеком ознаменовала важный поворотный момент для ИИ, поскольку продемонстрировало, что компьютер может не только изучить логику игры, но и достичь уровня мастерства, ранее считавшегося доступным только людям. Среди современных примеров программных продуктов, работающих на базе ИИ, можно выделить "IBM Watson" - проект от IBM, способный отвечать на вопросы пользователей путем поиска в собственной базе данных. "IBM Watson" использует 80 серверов и около 15 ТБ оперативной памяти, не требует подключения к интернету. Система активно применяется в сфере здравоохранения на протяжении последних нескольких лет. К 2013 году в США было создано шесть таких установок, которые к моменту их первоначального запуска уже могли работать с более чем 2 миллионами страниц медицинского текста.
На сегодняшний день искусственный интеллект уже достаточно успешно применяется для осуществления функции распознавания лиц, голоса, отпечатков пальцев, в реализации таких сервисов как голосовые помощники, в робототехнике для программирования беспилотников, а также для программирования компьютерных игр.
Для созданий приложений на основе искусственного интеллекта существует ряд специализированных платформ. Они основаны на принципах искусственных нейронных сетей, которые способны достаточно точно распознавать речь и объекты, а также самостоятельно генерировать действия, необходимые для функционала ПО.
Современные приложения на основе искусственного интеллекта работают по принципам машинного обучения (англ. machine learning) и глубокого обучения (англ. deep learning). Последний использует большие массивы данных и требует высокой компьютерной мощности. Оба процесса основаны на работе искусственных нейронных сетей, которые автоматически строят графы, представляющие программную интерпретацию алгоритмов запоминания. Также потенциальными областями применения искусственных нейронных сетей являются такие области, в которых человеческий интеллект малоэффективен либо традиционные вычисления трудоёмки или физически неадекватны, так как не отражают или плохо отражают реальные физические процессы и объекты. Актуальность применения нейронных сетей многократно возрастает, когда появляется необходимость решения плохо формализованных задач. Таким образом, основная цель искусственного интеллекта заключается в том, чтобы сделать такую программу, которая не только способна обучаться, но и способна обучать себя сама, то есть являться самообучающейся.
Ниже представлен список из пяти наиболее продвинутых платформ для разработки программного обеспечения на основе ИИ:
 • Wit.ai. Wit.ai имеет специальные механизмы, которые преобразуют голосовые запросы пользователей в текст. После этого платформа тщательно анализирует полученный запрос и отвечает на него, действуя по принципу сущностей и намерений. Сущности представляют собой объекты, которые автоматически указываются программой при наличии запроса пользователя. Ответ генерируется с помощью интегрированной базы данных и знаний, полученных на этапе машинного обучения. Кроме того, уникальная функция “история” (которая сохраняет контекстные данные) позволяет создавать продвинутые чат боты на основе платформы в очень короткие сроки. На сегодняшний день используется более чем 180 тыс. разработчиковю
 • Dialogflow (ранее называвшийся Api.ai), созданный совместно с разработчиками Google, основан на контекстном запоминании предыдущих взаимодействий пользователей. Его принцип работы аналогично Wit.ai сосредоточен на двух понятиях: сущности и намерения. Он поддерживает более 14 языков, включая португальский, русский и испанский. Dialogflow является одним из самых мощных инструментов для разработки программного обеспечения ИИ, в основном за счет его совместимости с наиболее распространенными мобильными платформами: ОС Android и iOS, а также поддержки языков программирования таких как Xamarin, Python, C++ и JavaScript. [2]
 • Clarifai. Clarifai является платформой, которая обрабатывает данные, полученные с помощью камер, встроенных в устройства пользователей. В ней реализованы механизмы систематизации знаний, полученных с помощью машинного обучения. Программные решения, созданные с помощью Clarifai, способны достаточно точно идентифицировать изображения, полученные из внешних источников. Clarifai подходит для разработчиков со знанием таких языков программирования как Python, Java и Node.js [3].
 • Melissa. Платформа с открытым исходным кодом Melissa использует язык программирования Python и предоставляет возможность реализовать практически любое приложение на основе ИИ (аналогичное по структуре помощнику ИИ, встроенному в смартфон). Платформа поддерживается всеми популярными настольными операционными системами. Melissa имеет встроенные механизмы распознавания голоса, которые делают его идеальным инструментом для развития голосовых помощников различных типов.
 • Tensorflow. Tensorflow - это программная библиотека, созданная Google с открытым исходным кодом. Предоставляет интерфейс для выработки алгоритмов машинного обучения и реализации таких алгоритмов [4]. Вычисление с помощью Tensorflow может выполняться практически без изменений на самых разных гетерогенных системах, начиная от мобильных устройств, таких как смартфоны и планшеты, до широкомасштабных распределенных систем, состоящих из сотен компьютеров или тысяч вычислительных устройств, таких как графические процессоры. Система достаточно гибка и может быть использована для того чтобы реализовать большой набор алгоритмов, включая модели глубокого обучения нейросетей (англ. deep neural network models). Tensorflow применялась для проведения исследований и развертывания систем машинного обучения для применения в таких областях, как распознавание речи, компьютерное зрение, робототехника, поиск информации, обработка языка, извлечение и обработка географической информации [5].
Есть много других систем, которые так или иначе сопоставимы с указанными выше платформами: Keras ,Theano, Lasagne, или Blocks, предназначенных в первую очередь для обучения нейронных сетей [6].
Для разработки искусственного интеллекта с нуля, необходимы знания языков программирования [7]. Наиболее распространенные языки (ЯП) программирования, которые используются для этих целей представлены ниже:
 • С++. Объектно-ориентированный ЯП с одним из самых быстрых процессов компиляции в мире. С помощью ЯП можно реализовать самую сложную бизнес-логику без ущерба для производительности.
 • Lisp. Язык высокого уровня Lisp используется с 1958 года, с момента разработки самых ранних программных решений ИИ. Lisp предоставляет возможность реализации современного подхода к объектно-ориентированному программированию, поддерживает инкапсуляцию и полиморфизм.
 • Java. Также является объектно-ориентированным ЯП, который имеет огромное онлайн-сообщество технической поддержки. Язык характеризуется продуманным подходом к обработке исключений, наличием средств для разработки многопоточных приложений, поддержкой массивов, списков, структур.
 • Prolog. Prolog обладает механизмами, которые могут быть востребованы при разработке программного обеспечения ИИ, в частности: древовидные механизмы структурирования данных, сопоставления шаблонов. Prolog часто используется при разработке программного обеспечения ИИ со сложной архитектурой, что подразумевает одновременное выполнения ряда логических операций.
 • Python. Python является одним из старейших ЯП. Он существует уже более 20 лет, что свидетельствует о своей актуальности и сегодня. Язык пользуется большим спросом из-за простой интеграции со структурами данных, которые часто используются в алгоритмах ИИ. Алгоритмы разработки программного обеспечения ИИ уникальны и выходят за рамки стандартного программирования. Учитывая этот факт, необходимо расширять знания с помощью специальных библиотек и инструментов.
Таким образом, дальнейшее развитие функционала искусственного интеллекта на сегодняшний день является перспективным для работы и профессионального развития разработчиков. Современные используемые приложения на базе ИИ довольно часто ограничены в функциональности, однако ИТ-сфера быстро приобретает новые инструменты и идеи для наращивания функциональности. Учитывая этот факт, есть основания предполагать, что искусственный интеллект сможет приступить к выполнению гораздо более сложных задач в самом ближайшем будущем. 