Введение
Если вернуться на 20 или 30 лет назад, существовали очень грубые системы, которые назывались «экспертными системами». Это были простые программы, которые могли решить сложную проблему, потому что они были запрограммированы с точными шагами, которые человек-эксперт использовал бы для ее решения.
Например, если врач хотел диагностировать боль в желудке — он проверял возраст больного, пол, пульс, температуру, артериальное давление, болит ли она вверху или внизу, слева или справа, есть ли рвота или диарея и т. д. От этого они будут следовать пути через различные ответы, чтобы получить вероятный диагноз.
Точно так же компьютер будет запрограммирован с точными вопросами и точным путем для каждой комбинации ответов. Результатом является компьютерная программа, которая может диагностировать с такой же или большей точностью, как человек-эксперт, поскольку компьютерная программа никогда ничего не пропустит и не будет иметь «выходной день».
Проблема этого типа системы в том, что она не очень гибкая. Иногда эксперт может не знать, как поступить; иногда информация отсутствует; иногда эксперт полагается на какую-то интуицию — он может объяснить часть того, что он делает, но не все. Если вы видите своего друга Ишана на улице и узнаете его, «как» вы узнаете его на самом деле? Простым ответом было бы, что он похож на Ишаана, но это бесполезная информация, если вы хотите сделать компьютер для этого.
Теперь, когда у нас есть больше вычислительной мощности, теперь доступны методы, которые позволяют компьютеру определять свои собственные правила решения сложной задачи. Если бы вы хотели разработать задачу, которая могла бы считывать числа с изображения, вы могли бы запрограммировать, что «0» — это круг, и что программа должна искать круглые объекты, что «1» — это в основном вертикальная линия и т. д. Другой способ - использовать какую-то программу, в которой вы должны показать ей 1000 «0» и сказать, что это «0», затем показать ей 1000 «1» и сказать им, что они «1». . И вы позволяете программе выработать свои собственные правила того, что такое «0» и что такое «1».
По сути, ИИ ищет корреляции для поступающих данных и пытается сопоставить их с выходными данными.
Итак, в приведенном выше задании на чтение чисел он узнает, что в сетке пикселей левая и правая стороны сетки белые, а середина черная, что сильно коррелирует с ответом «1»; и поэтому, когда он видит этот образец, он говорит, что ответ один. Существуют методы выполнения этих корреляций статистически (например, метод опорных векторов), или вы можете сделать это, выбрав случайный набор правил, а затем настроив их на основе совпадений и промахов (например, генетические алгоритмы, нейронные сети).
Обучение, мышление и память
Память — это знания, которыми обладает Агент. Это могут быть сохраненные знания, такие как базы данных, файлы, фреймы или множество других типов структур данных. Знание также может быть немедленным в форме предписаний, таких как входы, датчики или камеры. Память также является местом, где агент хранит то, что он узнал.
Рассуждение — это то, как агент использует свои фоновые знания и/или текущие предписания и решает, какие действия предпринять. Есть много способов научить агента рассуждать. Некоторые из них представляют собой прямолинейные алгоритмы (например, поиск кратчайшего пути) или основаны на правилах (например, если входной сигнал A, то выберите действие B). Есть много забавных алгоритмов, таких как A*, Mimic, Genetic Algorithms и многие другие. Другие рассуждения не столь механические, как здравый смысл, рассуждения по аналогии или диагноз. Идея здесь состоит в том, чтобы взять входные данные и абстрагировать их в идею. Предположим, вас попросили подпереть дверь. Если вы видите стул, вы полагаете, что он справится с этой задачей. Не потому, что вас учили, что стул предназначен для удержания открытых дверей, а потому, что вы знаете, что вам нужен только твердый или тяжелый предмет, чтобы не дать двери закрыться. Теперь, когда вы попробовали стул и увидели, что он работает (или не работает), вы можете сохранить эти знания на потом. Это становится обучением.
Обучение — обширная тема. Обучение может быть принудительным, например, попросить ИИ сыграть несколько сотен тысяч партий в шашки. Другой способ — использовать алгоритмы, основанные на математической вероятности, такие как машинное обучение. Наконец, фаворитом отрасли является обучение ИИ. Например, если ИИ перемещает слона в шахматах по горизонтали, мы можем сказать ему, что это не разрешено. Затем он пытается вертикально, также не допускается. Наконец он движется по диагонали, и мы говорим агенту, что это правильно. Затем агент сохраняет это знание и продолжает работу. Два забавных метода, которые работают таким образом, — это поэтапное изучение концепций и пространства версий.
И, наконец, метапознание. Но мы начали с того, что есть 3 категории. Это потому, что Метапознание/Метарассуждения — это размышления о мышлении. Так что это основано на рассуждениях, но это когда агент думает о том, насколько хорошо он учится или рассуждает. Например, возможно, он использовал методологии генерации и тестирования для поиска решений, но теперь у него достаточно знаний и опыта, чтобы начать создавать свои собственные правила или даже абстрагировать идеи.
ИИ везде. От программного обеспечения для автономного вождения до аналитики Watson, карт Google и вашего любимого сайта электронной коммерции — все основано на темах и методах ИИ, которые разрабатывались с середины 50-х годов. Сказать, что у нас нет общего ИИ, просто потому, что большинство из них имеют конкретную цель. Однако это быстро меняется, и мы уже видим некоторые большие успехи.