Эксперты го были немало удивлены некоторыми ходами компьютера, так как не считали их самыми удачными. В комментариях во время прямой трансляции специалисты говорили, что компьютер совершил ошибку, но немного позднее выяснялось, что именно этот конкретный ход в конце концов принес победу компьютеру. Нам это хорошо известно по замечаниям комментаторов футбольных матчей: «Фол! Фол! Это же одиннадцатиметровый! Куда он смотрит? Почему нет свистка? Вот же замедленный повтор! О, так касание ноги было! Какая симуляция фола!»
Таким образом, «Альфа-Го» играет как человек, а не как компьютерная программа, но это был пример обучения компьютера: с помощью нейронной сети с несколькими узлами соединений между уровнями компьютер изучил огромное количество партий профессиональных игроков в го. Компьютер сутками напролет играл в го сам с собой. Сделайте это, будучи человеком. Игроки в го высмеют вас и назовут чудаком.
В данном случае были использованы две параллельные нейронные сети. Одна сеть заучила правила и изыскивала на основании анализа уже сыгранных партий возможные ходы. Совокупностью введенных данных здесь является игровая доска. Исходом каждого допустимого по правилам хода является вероятность того, как сыграет человек в ответ на этот ход, – точно так же, как играет и человек. Испытания показали, что компьютер делает правильный ход в 57 % случаев. Это не слишком высокий показатель, так как при этом учитывается двести возможных ответных ходов, однако это довольно неплохой результат, который показывает, что и профессионалы в своей игре более предсказуемы, нежели они сами о себе думают.
Вторая сеть оценивает эти возможные ходы и в качестве выхода дает число: оценку вероятности победы. Эта сеть постоянно играет против самой себя, чтобы генерировать новые партии и самосовершенствоваться. Сюда же встраивается компонент случайности: вместо того чтобы все время делать самые вероятные человеческие ходы, машина их несколько варьирует. В большинстве своем такие ходы оказываются глупыми и неудачными, и эти варианты в конце концов отбрасываются, но в миллионах партий, которые программа разыгрывает против себя, открываются ходы и тактики, которые никогда не использовались людьми. В реальном поединке используются обе сети с их поисковыми стратегиями, к которым в конце добавляются и человеческие знания об игре, чтобы ограничить число возможных ходов и соблюсти необходимый темп игры.
Обучение в нейронных сетях работает так, чтобы нейроны действовали на разных уровнях. В каждом случае они сохраняют вводные значения некоторого числа нейронов на предыдущих уровнях. Вначале они не знают, что означают эти величины, и поэтому необходима тренировка сети. В каждом упражнении непременно содержится результат, то есть игра заканчивается либо выигрышем, либо проигрышем. При этом взвешивается каждый вводный сигнал, и эта оценка изменяется и уточняется при каждом прохождении. Насколько точно функционируют нейронные сети при игре в го, можно с большим трудом продемонстрировать на 13 уровнях при великом множестве вариантов. Тем более трудно это сделать на маленьком примере, но мы все же попытаемся.
Допустим, нейронной сети надо научиться решать, может ли автомобиль проехать на сигнал светофора или нет. Входных сигналов три – красный, желтый, зеленый. Каждый сигнал имеет два значения – либо 1 (горит), либо 0 (не горит).
На следующем уровне расположены два нейрона, каждый из которых получает один входной сигнал от всех трех источников света. Эти нейроны передают сигнал дальше только в том случае, если сумма входов равна по меньшей мере единице. Верхний сигнал означает: «Проезд запрещен», а нижний сигнал: «Проезд разрешен». Важно здесь следующее: теоретически нейроны могут сообщить об обоих исходах. Сеть не знает, какой из них правильный, а какой – нет.
В примере со светофором верхний нейрон второго уровня быстро обучается тому, что ему нужен только верхний красный сигнал. Если сигнал выдается сверху, второй нейрон передает свой сигнал дальше. Если горит красный сигнал, то совершенно не важно, горит ли при этом желтый свет. В любом случае движение запрещено. Таким образом, вход «красный свет» принимает значение 1, а другие входы значение 0. Нижний же нейрон обучается тому, что внизу достаточно одного зеленого света. Если горит зеленый, то движение разрешено. Таким образом, этот вход тоже принимает значение 1. Дополнительно требуется также вход «желтый». Если горит только желтый, то автомобиль еще может ехать. Таким образом, желтый тоже принимает значение 1. Если же горят одновременно желтый и красный сигналы, то движение запрещается. Красный сигнал принимает значение 1. В нейроне происходит следующее: желтому приписывается значение 1, а красному –1. Один минус один равно нулю, то есть сигнал отсутствует. Таким способом в процессе обучения сеть находит правильные решения.
Читать дальше
Конец ознакомительного отрывка
Купить книгу