Искусственный интеллект — своего рода святой Грааль для Кремниевой долины, поскольку человекоподобные говорящие роботы должны изменить наш мир к лучшему. Как сказал бы Стив Джобс, «this changes everything». Представьте, что вы стоите на кухне и говорите: «Включи-ка свет над плитой». Вместо того чтобы идти к выключателю самостоятельно, вы просите систему включиться самостоятельно. Простая связь. Проще и быстрее.
Подумайте о возможностях — разве ваша обычная речь хуже современного взаимодействия с клавиатурой, мышью и тачскрином? Говорящий искусственный интеллект мог бы существенно изменить ситуацию за рулем, когда ваше внимание должно быть приковано к дороге, а не к экрану.
Бетонные блоки на пути к ИИ всегда включали проблемы проектирования и написания крупных программ, представляющих сложные идеи и взаимодействие с разными типами данных. Когда впервые появились компьютеры, оставались ограничения у аппаратного и программного обеспечения, но ненадолго. Некоторые надеялись, что машины напишут собственное программное обеспечение «в стиле мозга», но пока этого не произошло.
Теория патома решает проблему программирования, используя всего один алгоритм.
Что такое теория патома? Теория патома утверждает, что
В названии «патом» совмещены «паттерн» и «атом». Паттерны — это неделимые элементы, которые, подобно атомам, можно совмещать, чтобы сформировать более сложные паттерны. Теория патома навеяна наблюдениями за комбинациями паттернов в
Обучение: конкретное определяет общее
Какое самое большое отличие компьютеров от мозгов? Компьютерные программисты определяют общее как хранящее конкретное, но
Мы об этом знаем, конечно, поскольку когда учим что-то, постигаем это и оно «волшебным» образом становится изученным, плюсуется к уже известному. Компьютерные программисты определяют структуры данных, чтобы представить общие требования. Это следует из дизайна Алана Тьюринга 1936 года, эмулирующего человеческие компьютеры. Сохраняя вычисления на бумаге, человеческий интеллект может производить бесконечно сложные вычисления, используя тщательно спроектированные структуры данных.
В мозгах происходит обратное. Мы обучаемся на опыте (конкретное) и обобщаем это. Проблема в том, что программисты часто не могут определить общее. Наши
Переход к общему из конкретного
В реальном мире есть много хороших примеров. Что такое птица? Птица — это животное размером с кулак, которое может летать. Тогда что такое пингвин? Да, птица, но уже не с кулак размером и вовсе не умеющая летать.
Вы видите проблему: дефиниции, вытекающие из общего, не являются гибкими. Обобщение исходя из конкретного намного лучше. Давайте спрячем пару птиц: воробья, малиновку, орла, ястреба, голубя, эму, страуса и пингвина. Единственная ассоциация, с которой мы начинаем, это птицы. Она мало что нам говорит, но нам есть чему поучиться.
В процессе постижения опыта, малиновка и голубь остаются размером с кулак. Воробей чуть меньше, а ястреб чуть больше. Эму и страус намного больше. Пингвин тоже больше, но меньше эму и страуса. Каждая из этих птиц имеет чешуйчатые ножки и перья. Погодите, а есть ли перья у пингвина? Если нет, эту ассоциацию ему не даем. Еще пингвин плавает, но все другие птицы летают. Летают ли птицы? И да, и нет. Плавают ли пингвины? Да.
Опыт этих отношений демонстрирует парадигму
Первая ассоциация, которую мы сохранили для каждой птицы, заключалась в том, что они птицы. Вторая связана с их размером относительно других птиц. Третья ассоциация для каждой птицы — наличие перьев.
Вопрос в том, всем ли птицам нужны перья? Можете ли вы представить себе жирного пингвина, которому тепло и без перьев? Я могу. Общее, определяющее конкретное, терпит неудачу при таких изменениях. Альтернатива куда более гибкая, потому что переписывать общий дизайн будет нецелесообразно. Если добавить жирного пингвина, он останется птицей и оставит общие сведения о птицах без изменений.
Это простой механизм, разделяющий паттерны, который можно назвать «пересечение набора связей». Он позволяет вам брать некоторые элементы и находить общие признаки, как в запросах к базам данных, но работая в сети типа
Насколько велика птица? Просто прочертите связь от «птиц» к «большим». Большой — это размер, поэтому мы получаем следующее: а) у моего кулака есть два размера; б) один меньше, и с) остальные больше.
Учитывая неоднозначность вопроса (неоднозначность подразумевает больше одного ответа), мы можем выбрать частый ответ «размером с кулак». Это вытекает из значения, которое хранит опыт. Пересечение набора связей — это эффективный способ искать ответы в массивных базах данных вроде
Этот подход не статистический, а на основе подбора паттернов. Он выдает правильные ответы из опыта, а не из догадок.