Символьное моделирование мыслительных процессов

Анализируя историю ИИ, можно выделить такое обширное направление как моделирование рассуждений. Долгие годы развитие этой науки двигалось именно по этому пути, и теперь это одна из самых развитых областей в современном ИИ. Моделирование рассуждений подразумевает создание символьных систем, на входе которых поставлена некая задача, а на выходе требуется её решение. Как правило, предлагаемая задача уже формализована, то есть переведена в математическую форму, но либо не имеет алгоритма решения, либо он слишком сложен, трудоёмок и т. п. В это направление входят: доказательство теорем, принятие решений и теория игр, планирование и диспетчеризация, прогнозирование.

Работа с естественными языками

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

Представление и использование знаний

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

Производство знаний из данных — одна из базовых проблем интеллектуального анализа данных. Существуют различные подходы к решению этой проблемы, в том числе — на основе нейросетевой технологии, использующие процедуры вербализации нейронных сетей.

Машинное обучение

Проблематика машинного обучения касается процесса самостоятельного получения знаний интеллектуальной системой в процессе её работы. Это направление было центральным с самого начала развития ИИ. В 1956 году, на Дартмундской летней конференции, Рей Соломонофф написал отчёт о вероятностной машине, обучающейся без учителя, назвав её: «Индуктивная машина вывода»

Робототехника

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

Применение

Некоторые из самых известных ИИ-систем:

  • Deep Blue — победил чемпиона мира по шахматам. Матч Каспаров против суперЭВМ не принёс удовлетворения ни компьютерщикам, ни шахматистам, и система не была признана Каспаровым (подробнее см. Человек против компьютера). Затем линия суперкомпьютеров IBM проявилась в проектах brute force BluGene (молекулярное моделирование) и моделирование системы пирамидальных клеток в швейцарском центре Blue Brain.
  • Watson — перспективная разработка IBM, способная воспринимать человеческую речь и производить вероятностный поиск, с применением большого количества алгоритмов. Для демонстрации работы Watson принял участие в американской игре «Jeopardy!», аналога «Своей игры» в России, где системе удалось выиграть в обеих играх.
  • MYCIN — одна из ранних экспертных систем, которая могла диагностировать небольшой набор заболеваний, причем часто так же точно, как и доктора.
  • 20Q — проект, основанный на идеях ИИ, по мотивам классической игры «20 вопросов». Стал очень популярен после появления в Интернете на сайте 20q.net.
  • Распознавание речи. Системы такие как ViaVoice способны обслуживать потребителей.
  • Роботы в ежегодном турнире RoboCup соревнуются в упрощённой форме футбола.

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

Разработчики компьютерных игр применяют ИИ в той или иной степени проработанности. Это образует понятие «Игровой искусственный интеллект». Стандартными задачами ИИ в играх являются нахождение пути в двумерном или трёхмерном пространстве, имитация поведения боевой единицы, расчёт верной экономической стратегии и так далее.

Примеры используемых библиотек для реализации на практике ИС. Краткая характеристика этих библиотек.

PyBrain — одна из лучших Python библиотек для изучения и реализации большого количества разнообразных алгоритмов связанных с нейронными сетями. Являет собой удачный пример совмещения компактного синтаксиса Python с хорошей реализацией большого набора различных алгоритмов из области машинного интеллекта.

Предназначен для:

  • Исследователей — предоставляет единообразную среду для реализации различных алгоритмов, избавляя от потребности в использовании десятков различных библиотек. Позволяет сосредоточится на самом алгоритме а не особенностях его реализации.
  • Студентов — с использованием PyBrain удобно реализовать домашнее задание, курсовой проект или вычисления в дипломной работе. Гибкость архитектуры позволяет удобно реализовывать разнообразные сложные методы, структуры и топологии.
  • Лекторов — обучение методам Machine Learning было одной из основных целей при создании библиотеки. Авторы будут рады, если результаты их труда помогут в подготовке грамотных студентов и специалистов.
  • Разработчиков — проект Open Source, поэтому новым разработчикам всегда рады.

PyBrian представляет собой модульную библиотеку предназначенную для реализации различных алгоритмов машинного обучения на языке Python. Основной его целью является предоставление исследователю гибких, простых в использовании, но в то же время мощных инструментов для реализации задач из области машинного обучения, тестирования и сравнения эффективности различных алгоритмов.
Название PyBrain является аббревиатурой от английского: Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network Library.
Как сказано на одном сайте: PyBrain — swiss army knife for neural networking ( PyBrain — это швейцарский армейский нож в области нейро-сетевых вычислений).

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

Символьное моделирование мыслительных процессов - student2.ru

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

  • Сети прямого распространения, включая Deep Belief Networks и Restricted Boltzmann Machines (RBM)
  • Рекуррентные нейронные сети ( Recurrent networks — RNN), включая архитектуру Long Short-Term Memory (LSTM)
  • Multi-Dimensional Recurrent Networks (MDRNN)
  • Сети Кохонена / Self-Organizing Maps
  • Reservoirs
  • Нейронная сеть Коско / Bidirectional networks
  • Создание топологий собственной структуры

(статья https://habrahabr.ru/post/148407/)

В процессе создания игр разработчик AI сталкивается с разными нетривиальными проблемами. Как правило, ответы не лежат на поверхности. Для выбора наиболее подходящего способа решения проблемы нужно знать специфику множества алгоритмов, применяемых для реализации искусственного интеллекта. Иногда, столкнувшись со сложной задачей, программист пытается решить ее силовым методом, через известные приемы, например, до бесконечности расширяя конечные автоматы, и тем самым добивается желаемого геймплея. При таком подходе уходит много сил и полученное поведение персонажей или объектов не всегда отличается элегантностью и естественностью. Решение можно искать и путем прочтения большого количества книг по искусственному интеллекту. Однако, даже будучи прочитанной, сухая теория не всегда приходит на помощь. Да и сам подход чтения всего подряд не удобен, особенно в ситуации жестких временных графиков: большинство прочитанного не имеет отношения к стоящим проблемам или новые идеи, возникающие при чтении, первоначально показавшись многообещающими, после мучительного процесса их воплощения, дают неудовлетворительный результат.

Оценить степень пригодности алгоритмов можно было бы на примерах их реализации в играх. Вообще, многие программисты считают, что учиться тем или иным приемам программирования лучше всего на основе работающего кода. Однако, хороших демонстрационных примеров реализации алгоритмов AI довольно немного. Для целей обучения и экспериментов, хотелось бы представить библиотеку FEAR [http://fear.sourceforge.net/] (Flexible Embodied Animat aRchitecture - библиотека настраиваемой архитектуры материализованных анимированных персонажей) (к сожалению, сайт библиотеки последнее время выдает ошибку), версия 0.4 которой вышла в начале 2005. Эта библиотека дает возможность изучать большинство существующих подходов искусственного интеллекта через реализацию поведения ботов для игры Quake 2. В версии 0.4, FEAR, наконец, стала по настоящему стабильной. Помимо улучшения модульности и устойчивости ядра, непосредственно реализующего алгоритмы AI, добавлено, по сравнению с предыдущими версиями, большое количество примеров. Примеры включают показ того, как реализуется реактивное поведение, как применять конечные автоматы, нейронные сети, генетические алгоритмы, деревья решения и даже демонстрируется реализация эмоций ботов на базе многоуровневых конечных автоматов. Иначе говоря, раскрыты практически все аспекты AI, встречающиеся в практике разработки игр.

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

В статье описываются шаги, которые необходимы для начала полноценной работы с библиотекой с использованием среды Visual Studio 8.0, однако описание позволит ускорить начало работы и для пользователей, имеющих версии Visual Studio 7.0 и 7.1.

FEAR можно использовать и с другими компиляторами. Желающие смогут разобраться с альтернативами, воспользовавшись документацией к библиотеке и системой построения проектов SCONS [http://www.scons.org/], для которой в инсталляцию библиотеки включены соответствующие скрипты.

Наши рекомендации