Носов Н.Ю., Соколов М.Д. Тенденции развития искусственного интеллекта

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

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

А так система очень умная. Боюсь представить, как будет в будущем: сказал машине “едь в ресторан”, и она поехала. Даже если ты не знаешь, в каком районе он находится, все равно ты окажешься там, где нужно. Это шикарно.

Общая информация об искусственном интеллекте

Искусственный интеллект основан на нейросетях — математической модели человеческого нейрона. Чтобы рассмотреть подробно принцип его работы, нужно немного проникнуть в анатомию ЦНС. Каждая наша клетка состоит из аксонов и дендритов. Первые соединяются со вторыми с помощью синапсов. Нейрон активируется, если был преодолен определенный порог возбуждения (то есть, если напряжение на него подается чуть больше, чем определенное значение). Как следствие, возникает сигнал, который передается на следующий нейрон, и так далее.

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

Нейросеть — это такая модель, которая позволяет принять самое верное решение, исходя из определенных условий.

Описание искусственного нейрона

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

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

  1. Чувство юмора. Понятно, что стендапер без этого качества не котируется.
  2. Интеллект. Хотелось бы, чтобы он еще на мысли какие-то наталкивал.

Эти признаки подаются на сумматор. Порог возбуждения нейрона на языке нейросетей называется функцией активации. Если он был преодолен, то идет сигнал на выходной слой. Это и есть решение. Мы можем с помощью весовых коэффициентов определить уровень важности каждого признака. Это делается для того, чтобы настроить искусственный интеллект под задачи конкретного пользователя. Предположим, нам более важно испытать эффект “а ведь он прав”. То есть, интеллект стендапера имеет больший весовой коэффицент, чем чувство юмора.


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

Как это работает на практике? Создается взвешенное значение путем умножения показателя на весовой коэффициент. Например, если для нас более важен интеллект, то этому признаку присваивается коэффициент 0,6, а на юмор — 0,4. Видим, что в сумме все равно должна получиться единица. В конечном итоге, компьютер видит только два возможных значения или 0, или 1.

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

Области применения искусственного интеллекта

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

  1. Медицина. Преимущество искусственного интеллекта в этой сфере — способность запоминать и обрабатывать колоссальное количество информации, благодаря чему уже появились не только приложения, дающие рекомендации врачам, но и программы, способные на ранних стадиях обнаружить заболевания, когда симптомы еще не успели проявиться. Например приложение Face2Gene сканирует лицо и способно определить 3500 различных генетических заболеваний.
  2. Промышленность и сельское хозяйство. В этих сферах искусственный интеллект развился до такой степени, что скоро человек будет вовсе ненужным. Так, компания LG в 2023 году откроет завод, где абсолютно все этапы будут выполняться искусственным интеллектом, начиная закупкой товара и выгрузкой готовой продукции. И да, контроль за качеством также будет осуществлять соответствующее программное обеспечение. А уже 2021 году произойдет частичный переход заводов на эту технологию. В сельской промышленности искусственный интеллект следит за состоянием растений, уровнем влажности, количеством питательных веществ в почве. Более того, он способен обнаруживать сорняки и выдергивать их без вреда для растений.
  3. Дорожное движение. Уже сейчас искусственный интеллект используется для того, чтобы предотвращать пробки. Для этого он в режиме реального времени собирает информацию со светофоров, анализирует расстояние между машинами, имеющиеся аварии и анализирует ее для улучшения дорожно-транспортной ситуации. Подобные системы реализованы уже во многих странах. Еще одно направление ИИ в этой области — машины с автопилотом, как это описывалось в примере выше.
  4. Умный дом. Да, искусственный интеллект уже может применяться в быту человека. Например, он может утром разбудить вас и раздвинуть занавески, чтобы в комнате оказался солнечный свет. Когда вы проснетесь, у вас уже будет чашка ароматного кофе, сваренная как раз к моменту вашего пробуждения. Холодильник в ближайшем будущем сам научится заказывать еду, а как только вы закроете дверь по выходу на работу, сразу включится сигнализация. Также есть возможность в ближайшее время почувствовать все удобство умных батарей, которые адаптируют температуру под человека. Очень удобно.
  5. И наконец, последний элемент нашего списка — умные переводчики. Там искусственный интеллект дошел до того уровня, что нередко они свои функции выполняют не хуже человека. Есть случаи, когда студент перевел реферат с иностранного языка на свой, распечатал и сдал в неизменном виде и получил 5. Конечно, лучше пока не экспериментировать таким образом. Да и знаний не будет, для чего и ходит человек в университет.


Перспектива развития искусственного интеллекта

Есть несколько сценариев развития искусственного интеллекта. Первый — пессимистический. Рано или поздно интеллект ИИ будет настолько совершенным, что его нельзя будет ни обмануть, ни взломать. Зато он может быть настроен агрессивно против человека. Как только у бездушной машины появится самосознание, она фактически превратится в человека, только гораздо более умелого. И если, не дай Бог, каким-то образом вступить в конфликт с этим устройством, то последствия будут очень печальными.

Второй сценарий — оптимистический, но не факт, что он не закончится плохо. Машины будут делать за человека все. И даже если это произойдет, будет приблизительно что-то типа мультика “Wall-E”, где люди превратились просто в большие куски жира, которые не могут даже с кресла встать самостоятельно. Если они падают, их какой-то робот возвращает на место.

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

Четвертый сценарий — технологическая безработица, которая уже начинает потихоньку проявляться, причем не только в конвейерном производстве, но и во вполне “умных” профессиях. Так, в большинстве мировых банков осталось достаточно лишь пары трейдеров, а всю остальную работу по анализу рынка и даже заключению прибыльных сделок на куплю или продажу валюты или ценных бумаг выполняют роботы. Да, это происходит уже сейчас.

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

Возможностей у искусственного интеллекта очень много. Нам надо ответственно подходить к его созданию, чтобы они их не было такого большого количества, чтобы ИИ вышел из-под контроля. Как только становятся совместимыми понятия “искусственный интеллект” и “сознание”, то мы тогда не сможем управлять этой субстанцией. Минимум, что нужно делать — договариваться.


Отличие искусственного интеллекта от естественного

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

  1. Способность мгновенно запоминать информацию и обрабатывать колоссальное ее количество в кратчайшие сроки. Для того, чтобы любое знание напрочь засело в голове человека и не забылось, необходимо повторять нужную информацию в течение 3-4 дней, а затем хотя бы раз в 1,5 месяца освежать его в памяти хоть в косвенной форме. Искусственный интеллект запомнит раз и навсегда.
  2. Невероятно быстрая обработка количественных данных. Пока человек сложит два двузначных числа, компьютер уже проанализирует экономическую ситуацию и выдаст точку на графике, в которой лучше всего покупать валюту. А потом и сам эту сделку заключит и вовремя выйдет из рынка, оставив с прибылью своего хозяина. Трейдеру обработать такое множество количественной информации не под силу.

Недостатки ИИ:

  1. Искусственный интеллект пока еще не умеет обрабатывать качественную информацию, но это лишь вопрос времени. Любая качественная информация может быть выражена в форме математической модели. Пример вы уже видели выше — искусственный нейрон, который может функционировать даже лучше полноценного. Это обычная математическая формула, которая была открыта еще в 40-х годах прошлого века. Но это открытие уже изменило мир.
  2. Искусственный интеллект все еще может давать сбои. Пока он не настолько совершенный, поэтому все равно нужен человек, который за ним будет “присматривать”. Но уже через несколько десятилетий ИИ может научиться видеть свои сбои, чинить их, и человек не понадобится. Недавно по новостям пробежались заголовки, что изобретено высокоточное оружие, которое будет само выбирать цель, находить самый благоприятный маршрут к ней, чтобы при этом остаться незамеченным. Если на это ружье поместить ядерную боеголовку, и оно вдруг даст ложный старт, то это может уничтожить все человечество. Вспомнить только ситуации во время Холодной Войны, когда электроника давала ложный сигнал о пуске ядерного снаряда, хотя это была лишь погодная аномалия. Если бы решение тогда принималось искусственным интеллектом, вы бы эту статью уже не читали.

Искусственный интеллект в реальной жизни

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

  1. Различные развлекательные приложения, например с масками.
  2. FaceID в iPhone X и старше. Функция, позволяющая разблокировать смартфон лицом. Специальные самообучающиеся алгоритмы сканируют человека с разных сторон и создается уникальный слепок, который и позволяет идентифицировать человека.
  3. Искусственный интеллект в маркетинге. Если вам нужно что-то продать, то системы контекстной рекламы находят именно того человека, который в этом нуждается. Вы и сами могли замечать, что сайты уж сильно хорошо вас знают, что дают ту рекламу, которая вас может заинтересовать.
  4. Виртуальные ассистенты на смартфонах. Там все реализовано через ИИ, начиная распознаванием речи и заканчивая выдачей готового решения.
  5. Чат-боты на сайтах. Нередко это очень умные программы, которые могут извлекать нужную клиенту информацию прямо с сайта.
  6. Приложения дополненной реальности, которые могут, например, определить объект, на который вы навели камерой и предоставить подробную информацию по нему, начиная отзывами и заканчивая контактными данными.

И таких возможностей с каждым годом будет все больше.

Выводы

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

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

В 1956 году всемирно известный американский ученый Джон Маккарти, ввел термин, который является сердцем всех этих возможностей и многих других. Термин, который он придумал был “Искусственный интеллект”. Искусственный интеллект, сокращенно ИИ – это наука и инжиниринг, работающие над созданием интеллектуальных машин, а также интеллектуальных компьютерных программ, которые способны реагировать как человек. То есть, создание таких машин, способных чувствовать мир вокруг них, понимать разговоры и принимать решения, похожие на человеческий выбор. Искусственный разум дал нам все, от сканера до роботов в реальной жизни.

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

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

Отрасли искусственного интеллекта

Джон Маккарти определил некоторые из ветвей ИИ, которые описаны ниже. Он также отметил, что несколько из них еще предстоит определить.

Логика Искусственного Интеллекта: программа ИИ должна знать о фактах и ситуациях.

Распознавание образов: когда программа проводит наблюдение, то, как правило, запрограммирована на распознавание и сопоставление с образцом. Например, система распознавания речи или система распознавания лица.

Представление: должен быть способ, чтобы представить факты о мире устройству обладающем ИИ. Для представления, используется математический язык.

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

Планирование: программа планирования начинается с фактов и изложения цели. Из них, программа генерирует стратегию для достижения поставленной цели.

Наличие Здравого Смысла и Рассуждения - это активное направление исследований и изучения ИИ возникло в 1950-х годах, но все же пока результат далек от человеческого уровня.

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

Эвристика – это способ попытаться найти идею вложенную в программу.

Генетическое программирование – автоматическое создание программы LISP (Обработка списка), позволяющее решить поставленную задачу.

Инструменты, использующиеся для решения сложных задач при создании ИИ

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

Поиск и оптимизация

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

Логика

Логика позволяет производить изучение аргументов. В ИИ используется для представления знаний, а также использоваться для решения задач. Различные типы логики используются в исследованиях искусственного интеллекта. Логика первого порядка использует кванторы и предикаты, и помогает в представлении фактов и их свойств. Нечеткая логика является своего рода логикой первого порядка, что позволяет найти истинность заявления, которое будет представлено как 1 (истина) или 0 (False).

Теория вероятности

Вероятность – способ выражения знания. Это понятие было дано математическому значению в теории вероятностей, которая широко используется в ИИ.

Искусственный интеллект и его применение

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

Разберем поподробней некоторые из областей:

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

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

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

Робототехника: Роботы стали обычным явлением во многих отраслях промышленности, так как роботы оказались более эффективными, чем люди, особенно на повторяющихся рабочих местах, где люди имеют тенденцию терять концентрацию.

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

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

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

Проблемы, с которыми сталкиваются создатели искусственного интеллекта

За последние шесть десятилетий, ученые активно работают над имитацией интеллекта человека, но рост замедлился из-за многих проблем при моделировании искусственного разума. Некоторые из этих проблем являются:

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

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

Обработка естественного языка: Естественный язык – это язык на котором говорят люди. Одной из основных проблем, с которыми сталкивается ИИ, это распознавание и понимание что говорят люди.

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

Положительные стороны применения ИИ

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

Отрицательные стороны применения ИИ

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

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

Массовое применение искусственного интеллекта приведет к сокращению рабочих мест для людей.

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

Если мы дадим разум машинам, они смогут использовать его по максимуму. Машины с интеллектом станут умнее своих создателей и это может привести к исходу, который продемонстрирован в серии фильмах «Терминатор».

Заключение и будущее применение

Искусственный интеллект – область, в которой продолжаются множество исследований. Искусственный разум является отраслью компьютерной науки о понимании природы интеллекта и построения компьютерных систем, способных на разумные действия. Несмотря на то, что люди имеют интеллект, они не в состоянии использовать его в максимально возможной степени. Машины будут иметь возможность использовать 100% своего интеллекта, если мы дадим им этот разум. Это является преимуществом, а также недостатком. Мы зависимы от машин практически для любого применения в жизни. Машины теперь являются частью нашей жизни и используются везде. Таким образом, мы должны знать больше о машинах и должны быть осведомлены о будущем, что может случиться, если мы дадим им разум. Искусственный интеллект не может быть плохим или хорошим. Он меняется в пути использования его нами.

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

Результатом работы стало то, что ИИ, не зная правил, самостоятельно освоил игру крестики-нолики и нашел слабости ботов, которые играли против него. Но начал я с еще более простой задачи.

Набор команд

Все началось с подготовки набора команд, которым мог располагать ИИ. Языки высокого уровня содержат сотни различных операторов. Чтобы выделить необходимый минимум, я решил обратиться к языку Ассемблер. Однако, оказалось, что и он содержит множество команд.

Мне требовалось, чтобы ИИ мог читать и выводить данные, работать с памятью, выполнять вычисления и логические операции, делать переходы и циклы. Я наткнулся на язык Brainfuck, который содержит всего 8 команд и может выполнять любые вычисления (т.е. полон по Тьюрингу). В принципе, он подходит для генетического программирования, но я пошел дальше.

Я задался вопросом: какое минимальное количество команд необходимо для реализации любого алгоритма? Как оказалось - одна!

Процессор URISC содержит всего одну команду: вычесть и пропустить следующую инструкцию, если вычитаемое было больше уменьшаемого. Этого достаточно для построения любого алгоритма.

Олег Мазонка пошел еще дальше, он разработал команду BitBitJump и доказал, что она полна по Тьюрингу. Команда содержит три адреса, копирует один бит из первого по второму адресу памяти и передает управление на третий адрес.

Позаимствовав идеи Олега, для упрощения работы, я разработал команду SumIfJump. Команда содержит четыре операнда: A, B, C, D и выполняет следующее: к ячейке по адресу B прибавляет данные из ячейки по адресу A, если значение получилось больше заданного*, то переходит по адресу C, иначе переходит по адресу D.

Примечание

*В данном случае использовалось 128 - половина от длинны генома.


Когда операнд A обращается к ячейке памяти N0, происходит ввод данных, а когда к ячейке N1, то вывод.

Ниже представлен код SumIfJump на FreePascal (бесплатный аналог Delphi).

Procedure RunProg(s: TData); var a, b, c, d: TData; begin Inc(NStep); if NStep > MaxStep then begin ProgResult:= "MaxStep"; Exit; end; a:= s; b:= s + 1; c:= s + 2; d:= s + 3; a:= Prog[a]; b:= Prog[b]; c:= Prog[c]; d:= Prog[d]; if a = 0 then begin ProgResult:= "Input"; Exit; end; if a = 1 then begin ProgResult:= "Output"; Exit; end; Prog[b] := Prog[b] + Prog[a]; if Prog[b] < ProgLength div 2 then RunProg(c) else RunProg(d); end;
SumIfJump реализует самомодифицируемый код. Может выполнять любые алгоритмы, доступные на обычном языке программирования. Код легко изменяется и выдерживает любые манипуляции.

Простая задача

Итак, у нашего ИИ всего одна команда. Пока крестики-нолики для него очень сложная игра, и я начал с более простой.

Бот выдает случайное число, а ИИ должен считать данные и дать ответ. Если число больше среднего (от диапазона случайных чисел), ИИ должен выдать число меньше среднего и наоборот.

Геном нашего ИИ состоит из 256 ячеек со значениями от 0 до 255. Каждое значение - это и память, и код, и адрес. Количество шагов выполнения кода ограничено 256. Операнды читаются друг за другом.

Первоначально геном формируется набором случайных чисел, поэтому ИИ не знает, во что ему нужно играть. Более того, он не знает, что нужно последовательно вводить и выводить данные, отвечая боту.

Популяция и отбор

Первая популяция состоит из 256 ИИ, которые начинают играть с ботом. Если ИИ совершает правильные действия, например, запросил данные на ввод, а потом что-то вывел, то ИИ получает очки. Чем больше правильных действий, тем больше очков.

16 ИИ, которые набрали больше всего очков, дают по 15 потомков и продолжают участвовать в игре. Потомок - это мутант. Мутация происходит заменой у копии родителя одной случайной ячейки на случайное значение.

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

Эволюция


Между значимыми событиями проходили тысячи смен поколений. Программа была запущена в несколько потоков на Core i7. Вычисления заняли около 15 минут.

  1. Когда ИИ «лидер» совершал случайную ошибку и не набирал достаточное количество очков, популяция начинала деградировать, т.к. потомство формировалось из «второстепенных» родителей.
  2. Бывало так, что в потоке с аутсайдерами, которые топтались на месте, происходила удачная мутация, обеспечивающая взрывной рост набираемых очков. После чего этот поток становился лидером.
  3. Иногда в течение долгого времени не происходило никаких удачных мутаций, и даже 500 тыс. поколений не хватало, чтобы завершить отбор.

Заключение

В заключение я проделал то же с игрой крестики-нолики. Размер генома использовал тот, что и в первом случае. Количество шагов было увеличено до 1024, а размер популяции до 64 (для более быстрого расчета). Расчет занял несколько больше времени. Все происходило примерно по тому же сценарию.

Сначала ИИ играл против «рандомайзера». Я так назвал бота, который ходит случайным образом. Довольно быстро ИИ начал его обыгрывать, заполняя какую-либо строчку. Далее я усложнил задачу, добавив рандомайзеру немного разума: занимать линию, если есть возможность, либо защищаться. Однако, и в этом случае ИИ нашел слабости бота и стал обыгрывать его. Пожалуй, рассказ об этом - это тема для отдельной статьи.

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

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

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

Как сказал, проводя аналогичный эксперимент, блогер

Среди важнейших классов задач, которые ставились перед разработчиками интеллектуальных систем с момента определения искусственного интеллекта как научного направления (с середины 50-х годов ХХ века), следует выделить следующие направления искусственного интеллекта , которые решают задачи, что плохо поддаются формализации: доказательство теорем, распознавания изображений, машинный перевод и понимание человеческой речи, игровые программы, машинная творчество, экспертные системы. Кратко рассмотрим их сущность.

Направления искусственного интеллекта

Доказательство теорем . Изучение приемов доказательства теорем сыграло важную роль в развитии искусственного интеллекта. Много неформальных задач, например, медицинская диагностика, применяют при решении методические подходы, которые использовались при автоматизации доказательства теорем. Поиск доказательства математической теоремы требует не только провести дедукцию, исходя из гипотез, но также создать интуитивные предположения о том, какие промежуточные утверждение следует доказать для общего доказательства основной теоремы. Распознавание изображений . Применение искусственного интеллекта для распознавании образов позволила создавать практически работающие системы идентификации графических объектов на основе аналогичных признаков. В качестве признаков могут рассматриваться любые характеристики объектов, подлежащих распознаванию. Признаки должны быть инвариантны к ориентации, размера и формы объектов. Алфавит признаков формируется разработчиком системы. Качество распознавания во многом зависит от того, насколько удачно сложившийся алфавит признаков. Распознавания состоит в априорном получении вектора признаков для выделенного на изображении отдельного объекта и, затем, в определении которой из эталонов алфавита признаков этот вектор отвечает. Машинный перевод и понимание человеческой речи . Задача анализа предложений человеческой речи с применением словаря является типичной задачей систем искусственного интеллекта. Для ее решения был создан язык-посредник, облегчающий сопоставление фраз из разных языков. В дальнейшем этот язык-посредник превратилась в семантическую модель представления значений текстов, подлежащих переводу. Эволюция семантической модели привела к созданию языка для внутреннего представления знаний. В результате, современные системы осуществляют анализ текстов и фраз в четыре основных этапа: морфологический анализ, синтаксический, семантический и прагматический анализ. Игровые программы . В основу большинства игровых программ положены несколько базовых идей искусственного интеллекта, таких как перебор вариантов и самообучения. Одна из наиболее интересных задач в сфере игровых программ, использующих методы искусственного интеллекта, заключается в обучении компьютера игры в шахматы. Она была основана еще на заре вычислительной техники, в конце 50-х годов. В шахматах существуют определенные уровни мастерства, степени качества игры, которые могут дать четкие критерии оценки интеллектуального роста системы. Поэтому компьютерными шахматами активно занимался ученые со всего мира, а результаты их достижений применяются в других интеллектуальных разработках, имеющих реальное практическое значение. В 1974 году впервые прошел чемпионат мира среди шахматных программ в рамках очередного конгресса IFIP (International Federation of Information Processing) в Стокгольме. Победителем этого соревнования стала шахматная программа «Каисса». Она была создана в Москве, в Институте проблем управления Академии наук СССР. Машинная творчество . К одной из областей применений искусственного интеллекта можно отнести программные системы, способные самостоятельно создавать музыку, стихи, рассказы, статьи, дипломы и даже диссертации. Сегодня существует целый класс музыкальных языков программирования (например, язык C-Sound). Для различных музыкальных задач было создано специальное программное обеспечение: системы обработки звука, синтеза звука, системы интерактивного композиции, программы алгоритмической композиции. Экспертные системы . Методы искусственного интеллекта нашли применение в создании автоматизированных консультирующих систем или экспертных систем. Первые экспертные системы были разработаны, как научно-исследовательские инструментальные средства в 1960-х годах прошлого столетия. Они были системами искусственного интеллекта, специально предназначенными для решения сложных задач в узкой предметной области, такой, например, как медицинская диагностика заболеваний. Классической целью этого направления изначально было создание системы искусственного интеллекта общего назначения, которая была бы способна решить любую проблему без конкретных знаний в предметной области. Ввиду ограниченности возможностей вычислительных ресурсов, эта задача оказалась слишком сложной для решения с приемлемым результатом. Коммерческое внедрение экспертных систем произошло в начале 1980-х годов, и с тех пор экспертные системы получили значительное распространение. Они используются в бизнесе, науке, технике, на производстве, а также во многих других сферах, где существует вполне определенная предметная область. Основное значение выражения «вполне определенное», заключается в том, что эксперт-человек способен определить этапы рассуждений, с помощью которых может быть решена любая задача по данной предметной области. Это означает, что аналогичные действия могут быть выполнены компьютерной программой. Теперь с уверенностью можно сказать, что использование систем искусственного интеллекта открывает широкие границы. Сегодня, экспертные системы являются одним из самых успешных применений технологии искусственного интеллекта. Поэтому рекомендуем Вам ознакомится с

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

Доказательство теорем.

Автоматическое доказательство теорем является старейшей сферой применения искусственного интеллекта. В этой области было проведено немало исследований, результатом которых стало появление формализованных алгоритмов поиска и языков формальных представлений, таких как PROLOG - логический язык программирования, и исчисление предикатов.

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

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

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

Распознавание образов.

Распознавание образов представляет собой выделение существенных признаков, характеризующих исходные данные, из общей совокупности признаков, и на основании полученной информации отнесение данных к определённому классу.

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

Работа ведётся в двух основных направлениях:

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

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

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

Если в задачах присутствуют монохромные изображения, они могут быть рассмотрены как функции на плоскости. Функция будет представлять собой формальную запись изображения и в каждой точке выражать определённую характеристику данного изображения - оптическую плотность, прозрачность, яркость и т. д. В таком случае моделью множества изображения будет являться множество функций на плоскости. Постановка задачи распознавания зависит от того, какими должны этапы, следующие за распознаванием.

К методам распознавания образов относятся эксперименты Ф. Розенблатта, который ввёл понятие модели мозга. Задача эксперимента - показать, как возникают психологические явления в физической системе с известными функциональными свойствами и структурой. Учёный описал простейшие эксперименты по распознаванию, однако их особенностью является не детерминированный алгоритм решения.

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

  • · Если контрольный стимул отличается от всех представленных ранее обучающих стимулов, то кроме чистого различения эксперимент исследует элементы обобщения.
  • · Если контрольный стимул вызывает активизацию некоторой группы сенсорных элементов, не совпадающих ни с одним из элементов, активизировавшихся при воздействии стимулов того же класса, предъявленных ранее, то эксперимент исследует чистое обобщение и не включает исследование распознавания.

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

Распознавание человеческой речи и машинный перевод.

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

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

Поскольку семантические значения используются в искусственном интеллекте очень широко, учёные разработали ряд методов, позволяющих в какой-то степени их структурировать. Всё же большая часть работы ведётся в тех проблемных областях, которые являются хорошо понимаемыми и специализированными. Примером может служить методика «микромира». Одной из первых программ, где она была использована, стала программа SHRDLU, разработанная Терри Виноградом, представляющая собой одну из систем понимания человеческой речи. Возможности программы были довольно ограниченными и сводились к «беседе» о расположении блоков разных цветов и форм, а также к планированию простейших действий. Программа давала ответы на вопросы типа «Какого цвета пирамидка на кросном бруске?» и могла давать указания вида «Поставьте синий блок на красный». Подобные задачи часто затрагивались исследователями искусственного интеллекта и в дальнейшем получили известность под названием «мир блоков».

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

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

Среди многообразия задач распознавания образов можно выделить следующие:

  • · Классификация документов
  • · Определение месторождений полезных ископаемых
  • · Распознавание изображений
  • · Распознавание штрих-кодов
  • · Распознавание символов
  • · Распознавание речи
  • · Распознавание лиц
  • · Распознавание номеров автомобилей

Искусственный интеллект в игровых программах.

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

В компьютерных играх, которыми управляет игровой искусственный интеллект, присутствуют следующие категории персонажей:

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

Внутри компьютерной игры существует множество областей, в которых используется широкое многообразие эвристических алгоритмов искусственного игрового интеллекта. Наиболее широко игровой ИИ применяется как один из способов контроля неигровых персонажей. Другим, не менее распространённым способом контроля, является скриптинг. Ещё одно очевидное применение игрового ИИ, особенно в стратегиях реального времени, - поиск пути, или метод, позволяющий определить, как неигровой персонаж может попасть из одной точки на карте в другую. При этом нужно учитывать препятствия, ландшафт и возможный «туман войны». Динамическая балансировка мобов также не обходится без применения искусственного интеллекта. Во многих играх была опробована концепция непредсказуемого интеллекта. Это такие игры как Nintendogs, Black & White, Creatures и всем известная игрушка «тамагочи». В этих играх персонажами являются домашние животные, поведение которых изменяется с учётом действий, произведённых игроком. Создаётся впечатление, что персонажи способны обучаться, хотя на самом деле их действия являются результатом выбора из ограниченного множества решений.

Многие игровые программисты считают частью игрового искусственного интеллекта любую методику, с помощью которой создаётся иллюзия интеллекта. Однако этот подход не совсем верен, так как те же самые методики могут использоваться не только в движках игрового ИИ. Например, при создании ботов используются алгоритмы с введенной в них информацией о возможных будущих столкновениях, вследствие чего боты приобретают «умение» избегать этих столкновений. Но эти же методики представляют собой важный и необходимый компонент физического движка. Ещё один пример: важным компонентом системы прицеливания бота являются водные данные, и те же самые данные широко применяются в графическом движке при рендеринге. Финальный пример - скриптинг. Этот инструмент с успехом может применяться во всех аспектах игровой разработки, но чаще всего его рассматривают как один из способов контролирования действий неигровых персонажей.

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

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

Ещё одной интересной задачей искусственного интеллекта является обучение компьютера игре в шахматы. Её решением занимались учёные всего мира. Особенность данной задачи в том, что демонстрация логических способностей компьютера возможна только при наличии реального противника. Впервые такая демонстрация состоялась в 1974 году, в Стокгольме, где прошёл чемпионат мира по шахматам среди шахматных программ. В данном соревновании победила программа «Каисса, созданная советскими учёными из Института проблем управления академии наук СССР, расположенного в Москве.

Искусственный интеллект в машинном творчестве.

Природа человеческого интеллекта пока изучена недостаточно, а степень изучения природы человеческого творчества - ещё меньше. Тем не менее, одним из направлений искусственного интеллекта является машинное творчество. Современные компьютеры создают музыкальные, литературные и живописные произведения, а в индустрии компьютерных игр и кинофильмов уже давно используются реалистичные образы, создаваемые машинами. Существующие программы создают различные образы, которые могут быть легко восприняты и поняты человеком. Это особенно важно, когда речь идёт об интуитивных знаниях, для формализованной проверки которых пришлось бы приложить немалые умственные усилия. Так, музыкальные задачи с успехом решаются с использованием языком программирования, одним из которых является язык CSound. Специальное программное обеспечение, с помощью которого создаются музыкальные произведения, представлено программами алгоритмической композиции, системами интерактивной композиции, системами синтеза и обработки звука.

Экспертные системы.

Разработка современных экспертных систем ведётся исследователями с начала 1970-х годов, а в начале 1980-х экспертные системы начали разрабатываться и на коммерческой основе. Прообразами экспертных систем, предложенными в 1832 году русским учёным С. Н. Корсаковым, стали механические устройства, названные «интеллектуальными машинами», которые позволяли находить решение, руководствуясь заданными условиями. Например, анализировались симптомы заболевания, наблюдаемые у пациента, и по результатам этого анализа предлагались самые подходящие лекарства.

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

В конце прошлого века сложилась определённая концепция экспертных систем, глубоко ориентированная на текстовый человеко-машинный интерфейс, который в то время был общепринятым. В настоящее время эта концепция подверглась серьёзному кризису, связанному, по всей видимости, с тем, что в пользовательских приложениях на смену текстовому интерфейсу пришёл графический. Кроме того, реляционная модель данных и «классический» взгляд на построение экспертных систем плохо согласуются между собой. Следовательно, организация баз знаний экспертных систем не может проводиться эффективно, по крайней мере, с использованием современных промышленных систем управления базами данных. В литературных и сетевых источниках приводится множество примеров экспертных систем, называемых «распространёнными» или «широко известными». На деле все эти экспертные системы были созданы ещё в 80-х годах прошлого столетия и к настоящему моменту либо прекратили своё существование, либо являются безнадёжно устаревшими и существуют благодаря немногочисленным энтузиастам. С другой стороны, разработчики современных программных продуктов часто именуют свои творения экспертными системами. Подобные заявления - не более чем маркетинговый ход, ведь в действительности эти продукты не являются экспертными системами (примером может служить любая из компьютерных справочно-правовых систем). Энтузиасты пытаются объединить подходы к созданию пользовательского интерфейса с «классическими» подходами к созданию экспертных систем. Эти попытки нашли отражение в таких проектах как CLIPS.NET, CLIPS Java Native Interface и других, однако крупные компании, выпускающие программное обеспечение, не торопятся финансировать подобные проекты, и по этой причине разработки не продвигаются дальше экспериментальной стадии.

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

а) Медицинские диагностические системы.

С помощью таких систем определяют, как связаны между собой различные нарушения деятельности организма и их возможные причины. Самой известной диагностической системой является MYCIN. Её применяют для диагностики менингита и бактериальных инфекций, а также для наблюдения за состоянием больных, у которых обнаружены данные заболевания. Первая версия системы была разработана в 70-х годах. На сегодняшний день её возможности значительно расширились: система ставит диагнозы на том же профессиональном уровне, что и врач-специалист, и может применяться в разных областях медицины.

б) Прогнозирующие системы.

Системы предназначены для предсказания событий или результатов событий на основе имеющихся данных, характеризующих текущую ситуацию или состояние объекта. Так, программа «Завоевание Уолл-Стрита», использующая в свой работе статистические методы алгоритмов, способна анализировать конъюнктуру рынка и разрабатывать план капиталовложений. В программе используются алгоритмы и процедуры традиционного программирования, поэтому её нельзя отнести к системам, основанным на знаниях. Уже сегодня существуют программы, способные предсказывать поток пассажиров, урожайность и погоду, анализируя имеющиеся данные. Такие программы достаточно просты, и некоторые из них могут использоваться на обычных персональных компьютерах. Однако до сих пор не существует экспертных систем, которые могли бы, основываясь на данных о конъюнктуре рынка, подсказать, как можно увеличить капитал.

в) Планирование.

Системы планирования предназначены для решения задач с большим количество переменных с целью достижения конкретных результатов. Впервые в коммерческой сфере такие системы были использованы дамасской фирмой Informat. Руководство компании распорядилось становить в холле офиса 13 станций, которые проводили бесплатные консультации для покупателей, желающих приобрести компьютер. Машины помогали сделать выбор, максимально соответствующий бюджету и пожеланиям покупателя. Также экспертные системы были применены компанией Boeing для таких целей как ремонт вертолётов, установление причин выхода из строя самолётных двигателей и проектирование комических станций. Фирма DEC создала экспертную систему XCON, способную определять и изменять конфигурацию компьютерных систем VAX с учётом требований покупателей. В настоящее время фирма DEC занимается разработкой более мощной системы XSEL, в которую входит база знаний XCON. Цель создания системы - помощь потребителям в подборе вычислительной системы с требуемой конфигурацией. Отличие системы XSEL от XCON в том, что она является интерактивной.

г) Интерпретация.

Интерпретирующие системы способны делать заключения, основываясь на результатах наблюдения. Одной из самых известных интерпретирующих систем является система PROSPECTOR. Она работает, используя данные, основанные на знаниях девяти экспертов. Эффективность системы можно оценить по одному примеру: используя девять различных методов экспертизы, система обнаружила месторождение руды, наличие которого не мог предполагать ни один эксперт. Другая известная система интерпретирующего типа - HASP/SIAP. Она использует данные акустических систем слежения и на их основе определяет местонахождение судов в Тихом океане и их типы.

д) Интеллектуальные системы контроля и управления.

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

е) Диагностика и устранение неисправностей в электрическом и механическом оборудовании.

Системы, основанные на знаниях, применяются в таких случаях, как:

ремонт дизельных локомотивов, автомобилей и других электрических и механических устройств;

диагностика и устранение ошибок и неисправностей в программном и аппаратном обеспечении вычислительных машин.

ж) Компьютерные системы обучения.

Достаточно эффективно использование систем, основанных на знаниях, в обучающих целях. Система анализирует поведение и деятельность объекта и в соответствии с полученной информацией изменяет базу знаний. Простейший пример такого обучения - компьютерная игра, в которой уровни становятся сложнее по мере того, как возрастает квалификация игрока. Интересная обучающая система - EURISCO - разработана Д. Ленатом. В ней используются простые эвристики. Система была применена в игре, имитирующей боевые действия. Суть игры - определить оптимальный состав флотилии, которая могла бы наносить поражения, соблюдая множество правил. Система успешно справилась с этой задачей, включив в состав флотилии одно маленькое судно и несколько кораблей, способных провести атаку. Правила игры менялись ежегодно, но система EURISCO неизменно одерживала победу на протяжении трёх лет.

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

Широкое распространение экспертных систем началось в 1980-х годах, когда впервые произошло их коммерческое внедрение. ЭС используются во многих сферах, включая бизнес, науку, технику, производство и другие отрасли, характеризующиеся вполне определённой предметной областью. В данном контексте «вполне определённая» означает, что человек может разделить ход рассуждения на отдельные этапы, и таким образом может быть решена любая задача, которая находится в рамках данной области. Следовательно, аналогичные действия может выполнить и компьютерная программа. Можно с уверенностью сказать, что использование возможностей искусственного интеллекта открывает перед человечеством безграничные возможности.