Мы живем в век технологий. Мы привыкли к тому, что у каждого есть компьютер и мобильный телефон, круглосуточно подключенный к интернету, но редко задумываемся о том, как именно функционируют ставшие настолько необходимыми вещи. Тема нейронных сетей и принципов их работы стала популярной относительно недавно, и во многом привлечение внимания к этой области кибернетики связано с разработкой компьютерной программы, способной в равной партии одолеть профессионального игрока в го. Однако, идея компьютерного моделирования человеческого мозга появилась много раньше, а обучаемые нейронные сети являются неотъемлемой частью современной техники.
Базовый принцип построения любой нейронной сети – как биологической, так и искусственной – довольно прост. Для запуска сигнала необходим стимул, или раздражитель, и улавливающий его датчик: в случае нервной системы это будет чувствительный нейрон, в случае машины – так называемый «входной» искусственный нейрон, представляющий собой простой процессор. Возникший сигнал, электрический импульс, нужно передать дальше и обработать, чем занимаются вставочные нейроны нервной системы и «скрытые» искусственные нейроны, соответственно, и после анализа полученных данных система генерирует ответ. Если речь о нервной системе живого организма, то ответом может быть двигательная реакция (к примеру, рефлекторное отдергивание руки при прикосновении к горячей конфорке) или распознавание образа, всех возможных вариантов не перечислить, а искусственная нейронная сеть даст ответ в зависимости от того, для решения какой конкретной задачи ее обучали.
Тип обучения является одной из основных характеристик искусственной нейронной сети. Их всего три: обучение с учителем, обучение без учителя и обучение с подкреплением.
Обучение с учителем предполагает то, что сети вместе с набором исходных данных дается правильный ответ. В этом случае задачей сети является построение алгоритма, согласно которому из полученных данных, называемых обучающей выборкой, можно вывести нужное решение.
Обучение без учителя – спонтанное обучение нейронной сети без вмешательства экспериментаторов. Это пригодно для задач, в которых известны описания множества объектов, и от сети требуется найти возможные закономерности, существующие между объектами обучающей выборки.
Обучение с подкреплением является частным случаем обучения с учителем, но в данной ситуации «учителем» является среда или ее модель, и в качестве отклика среды понимаются сигналы подкрепления в ответ на принятые решения. Таким образом, ответ «проверяется», и результат проверки передается сети по принципу обратной связи. Этот вид обучения был использован для нейронной сети в Alpha Go после изучения ею огромной базы данных размером в тридцать миллионов ходов.
Для обучения нейронной сети Alpha Go применялся алгоритм древовидного поиска Монте Карло, используемый для решения игровых задач, и так называемое глубинное обучение, в ходе которого основное внимание уделяется «глубоким» уровням многослойной нейронной сети, обучение которых с помощью существующих алгоритмов представляет собой довольно трудную задачу. Alpha Go обучалась с целью имитировать игру человека, и, согласно словам Фан Хуи, проигравшего этой программе пять матчей из пяти, он вряд ли догадался бы, что с ним играет машина, если бы не знал об этом заранее.
Каких-то шестьдесят лет назад у нас был только перцептрон, способный решать лишь простейшие задачи на распознавание образа, а сейчас мы имеем программу, способную обыграть на равных сильнейших профессионалов мира го. И еще до окончания серии матчей Alpha Go с Ли Седолем можно с уверенностью сказать, что разработчиками был сделан огромный шаг к миру искусственного интеллекта.
P.S. И все-таки, чтобы одолеть человека, машине пришлось постараться 🙂