Представьте, что вы играете в шашки. Перед каждым ходом вы, возможно, строите в уме небольшой фрагмент этого дерева. Вы мыслите следующим образом: “Если я схожу вот
К счастью, для успешной игры компьютерам не нужно заниматься столь обстоятельным анализом. Обдумывая каждый ход, шашечная программа Сэмюэла создавала (в компьютерной памяти) небольшой фрагмент дерева игры, как на рис. 30. Корнем дерева служила текущая позиция на доске, и программа, используя встроенные знания правил шашек, генерировала все ходы, которые можно совершить из этой позиции. Затем она генерировала возможные ходы оппонента из каждой из итоговых позиций – и так далее, на четыре-пять ходов (“слоев”) вперед[192]
.Затем программа оценивала позиции в конце упреждающего просмотра – на рис. 30 это позиции на нижнем уровне фрагмента дерева игры. Оценка позиции на доске предполагает присвоение ей числового значения ценности, которая определяет, с какой вероятностью конкретная позиция приведет к победе программы в игре. Программа Сэмюэла использовала
Предполагается, что оценочная функция работает точнее при применении к позициям, которые могут возникнуть дальше по ходу игры, и потому программа сначала анализирует все возможные последовательности ходов на несколько шагов вперед, а затем применяет оценочную функцию к итоговым позициям на доске. Затем оценки распространяются обратно по дереву с помощью максимина, который оценивает все возможные ходы из текущей позиции[193]
.В процессе обучения программа узнавала, какие именно элементы позиции необходимо включать в оценочную функцию на каждом ходу, а также как взвешивать эти элементы при суммировании их оценок. Сэмюэл попробовал несколько методов обучения системы. В самом интересном варианте система училась, играя сама с собой! Этот метод обучения был довольно сложен, и я не стану описывать его в подробностях, но в некоторых аспектах он стал предтечей современного обучения с подкреплением[194]
.В итоге шашечная программа Сэмюэла добилась впечатляющих результатов, сравнимых с показателями игроков “выше среднего уровня”, но не чемпионов игры. Любители назвали программу “сложным, но победимым” соперником[195]
. Стоит отметить, что программа стала для IBM неожиданным подарком: на следующий день после того, как Сэмюэл представил ее на национальном телевидении в 1956 году, стоимость акций IBM взлетела на 15 %. Впоследствии компания еще несколько раз наблюдала подобное повышение стоимости акций после демонстрации игровой программы, побеждающей людей: не так давно стоимость акций IBM взлетела после привлекшего огромное количество зрителей выпуска телепрограммыНесомненно, шашечная программа Сэмюэла стала важной вехой в истории ИИ, но я устроила этот исторический экскурс в основном для того, чтобы на ее примере ввести три важнейших понятия: дерево игры, оценочная функция и обучение посредством игры с самим собой.
Deep Blue