Искусственный интеллект слишком сложен для программистов

Илья Хель

Искусственный интеллект — своего рода святой Грааль для Кремниевой долины, поскольку человекоподобные говорящие роботы должны изменить наш мир к лучшему. Как сказал бы Стив Джобс, «this changes everything». Представьте, что вы стоите на кухне и говорите: «Включи-ка свет над плитой». Вместо того чтобы идти к выключателю самостоятельно, вы просите систему включиться самостоятельно. Простая связь. Проще и быстрее.

Искусственный интеллект

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

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

Теория патома решает проблему программирования, используя всего один алгоритм.

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

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

Обучение: конкретное определяет общее

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

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

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

Переход к общему из конкретного

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

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

В процессе постижения опыта, малиновка и голубь остаются размером с кулак. Воробей чуть меньше, а ястреб чуть больше. Эму и страус намного больше. Пингвин тоже больше, но меньше эму и страуса. Каждая из этих птиц имеет чешуйчатые ножки и перья. Погодите, а есть ли перья у пингвина? Если нет, эту ассоциацию ему не даем. Еще пингвин плавает, но все другие птицы летают. Летают ли птицы? И да, и нет. Плавают ли пингвины? Да.

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

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

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

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

Насколько велика птица? Просто прочертите связь от «птиц» к «большим». Большой — это размер, поэтому мы получаем следующее: а) у моего кулака есть два размера; б) один меньше, и с) остальные больше.

Учитывая неоднозначность вопроса (неоднозначность подразумевает больше одного ответа), мы можем выбрать частый ответ «размером с кулак». Это вытекает из значения, которое хранит опыт. Пересечение набора связей — это эффективный способ искать ответы в массивных базах данных вроде мозга, без индексации. Как только у нас будет ответ «размером с кулак», станут доступны ассоциации с голубем и малиновкой.

Этот подход не статистический, а на основе подбора паттернов. Он выдает правильные ответы из опыта, а не из догадок.

Джон Болл, ComputerWorld