Иллюзия интеллекта

Ранний ИИ, системы на основе правил, SHRDLU и рациональные агенты, а также мой опыт кодирования мира простых блоков

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

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

Рациональные агенты

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

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

Системы на основе правил

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

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

Упрощенный пример системы, основанной на правилах, - это вождение. Допустим, мы хотим знать, разрешено ли нам ехать быстро.

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

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

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

Микромиры и ШРДЛУ

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

SHRDLU, разработанный в начале 70-х и представленный публике в 1972 году студентом Терри Виноградом, был провозглашен революционным алгоритмом искусственного интеллекта, когда он впервые появился. Это была одна из многих программ микромира, работавшая с «миром блоков», где программа при вводе данных пользователем складывалась и перемещала различные блоки по среде.

Особенностью SHRDLU, привлекшей внимание общественности, была очевидная способность понимать человеческий язык.

Пользователь мог говорить неструктурированно, как человек, а программа могла понимать и выполнять приказ, если только не было какого-либо фактора, останавливающего его.

SHRDLU была одной из самых сложных построенных систем, основанных на правилах, что создавало иллюзию интеллекта. ШРДЛУ не знал, что такое «блок». Он просто видел, что пользователь что-то просил, проверял среду и выполнял заказ, если были проверены правильные логические значения.

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

Person: What does the box contain?
Computer: THE BLUE PYRAMID AND THE BLUE BLOCK.
Person: What is the pyramid supported by?
Computer: THE BOX.
Person: How many blocks are not in the box?
Computer: FOUR OF THEM.
Person: Is at least one of them narrower than the one which i told you to pick up?
Computer: YES, THE RED CUBE.
Person: Is it supported?
Computer: YES, BY THE TABLE.

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

Тот факт, что правила жестко запрограммированы, затрудняет применение такой программы, как SHRDLU, в любой ситуации, большей, чем микромир, для которого она была запрограммирована. Шахматы, довольно ограниченная игра по сравнению с реальным миром, требует около 35¹⁰⁰ рукописных правил (стр. 61, Искусственный интеллект, современный подход), что больше, чем 10⁸⁵ атомов в наблюдаемой Вселенной. .

Создание мира блоков

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

Чтобы лучше понять блоки, я написал в высшей степени простую программу Blocks World, которая хоть и проста, но отражала ту же «философию дизайна», что и микромиры.

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

В духе SHRDLU Винограда я создал очень простой алгоритм обработки естественного языка (NLP), который мог определить, какой блок вы хотите переместить, и не зависел от какого-либо конкретного синтаксиса. Небольшая демонстрация:

Результат этой программы не так важен сам по себе, но важен способ, которым он был достигнут. То, как это запрограммировано, довольно неэффективно. Эти два блока были экземпляром класса «block», каждый из которых имел атрибуты, которые можно было передать как «true» или «false», определяющие, «где» находится блок.

Затем функция checkState проверит состояние всей среды, чтобы увидеть, какие атрибуты для каждого блока верны. Он вернет список всех различных условий, которые выполнялись в среде.

Например, если наша конфигурация выглядела так:

Условия B_on_A, B_on_position_2, A_below_B, A_on_ground будут истинными. Обратите внимание, как эти четыре логических значения полностью определяют среду. Затем мы можем, если хотим переместить A, проверить условия, чтобы увидеть, какие из них были истинными.

Если бы мы хотели переместить A, мы бы увидели, что условие B_on_A было True, что означает, что мы не можем переместить A. Тогда программа заранее предложит нам переместить B.

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

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

Адам Дхалла - ученик старшей школы из Ванкувера, Британская Колумбия, в настоящее время обучается по программе STEM и бизнес-программе TKS. Его увлекает мир активного отдыха, и в настоящее время он изучает новейшие технологии для защиты окружающей среды.

Следите за его I nstagram и его LinkedIn. Чтобы получить больше похожего контента, подпишитесь на его информационный бюллетень здесь.