Мартин Форд: Широкую известность вам принесла работа над методом обратного распространения ошибки. Расскажите, пожалуйста, что это за метод?
Джеффри Хинтон: Проще всего объяснить от обратного. Считается, что существует четкий алгоритм обучения нейронных сетей. Есть сеть, состоящая из слоев нейронов, снизу – вход в нее, сверху – выход. Все связи между нейронами имеют свой вес. Каждый нейрон смотрит на нейроны нижнего слоя и умножает их активность на вес связей, затем складывает все это и выдает результат. Регулируя вес связей, можно заставить сеть выполнять нужные вам операции, например находить кота на изображении и добавлять соответствующую метку.
Но как с помощью регулировки весов добиться от сети нужного результата? Существует простой и эффективный, но невероятно медленный алгоритм. Всем связям присваиваются случайные веса, сети демонстрируются примеры, и вы смотрите, что получается. Затем один из этих весов немного меняется, и демонстрируется другой набор примеров. Если результат работы сети стал лучше, внесенные изменения сохраняются. В противном случае вес возвращается к исходному значению или меняется в противоположном направлении. Затем эта операция проделывается с весом следующей связи и т. д.
В результате работа сети оценивается для каждого веса, причем на ряде примеров. Каждый вес должен обновляться несколько раз. Это медленно, но результат гарантирован.
Метод обратного распространения ошибки, по сути, позволяет получить такой же результат намного быстрее. Скорость его работы зависит от количества связей. Для сети с миллиардом связей метод обратного распространения сработает в миллиард раз быстрее, чем описанный выше алгоритм.
Прямой алгоритм имитирует процесс эволюции, ведь то, как заложенная в генах информация реализуется в конкретном индивиде, зависит от среды, в которой он находится. По генотипу невозможно точно предсказать, как будет выглядеть фенотип или насколько он будет успешным, потому что на это влияет множество внешних факторов.
Поскольку корректность результатов определяется только весами, которые нам известны, процесс прохождения данных можно контролировать с помощью метода обратного распространения. Его суть состоит в передаче сигналов ошибки от выхода к входу. В процессе их прохождения вычисляется, как следует поменять вес каждой связи, чтобы улучшить выводимый результат.
Вместо того чтобы измерять эффект от внесенных изменений, метод обратного распространения ошибки вычисляет , что получится после внесения изменений, причем для всех весов одновременно. Настройка весов выполняется быстро: сети предоставляется сразу несколько примеров, рассчитывается разность между требуемым выходом и результатами сети, после чего эта информация передается в обратном направлении. Процесс выполняется несколько раз, но все равно работает быстрее эволюционного алгоритма.
М. Ф.: Метод обратного распространения ошибки изобрел Дэвид Румельхарт, а вы развили его?
Дж. Х.: Версии этого метода предлагались еще до Румельхарта. В основном к этой идее приходили независимо друг от друга, поэтому меня всегда смущает, когда в СМИ меня называют автором этого метода. Я главным образом продемонстрировал, как использовать этот метод для изучения распределенных представлений.
В 1981 г. после получения докторской степени я начал работать в городе Сан-Диего, штат Калифорния. Идею метода обратного распространения ошибки предложил Дэвид Румельхарт, а мы с Рональдом Уильямсом помогли в поиске правильных формулировок. Ничего впечатляющего с этим методом мы тогда не сделали. Не было и никаких публикаций. После этого я отправился в Университет Карнеги – Меллона, где работал над машиной Больцмана. Эта идея казалась более интересной, хотя она и не сработала. В 1984 г. я вернулся в Сан-Диего, чтобы сравнить метод обратного распространения с машиной Больцмана. Оказалось, что он дает более убедительные результаты, поэтому я снова начал общаться с Дэвидом Румельхартом.
Но по-настоящему меня восхитила возможность на примере формирования генеалогического древа применить метод обратного распространения к изучению распределенных представлений. На вход подавалось два слова, а возвращалось третье, связанное с обоими. То есть нейросеть как бы улавливала значения слов.
Например, если мать Шарлотты зовут Виктория, то корректным выводом для слов Шарлотта и мать было Виктория . А для слов Шарлотта и отец корректным был ответ Джеймс . Если взять генеалогическое древо, в котором нет разводов, то стандартный ИИ, используя свои знания о семейных отношениях, может сделать вывод, что Виктория – супруга Джеймса. К такому же выводу может прийти нейронная сеть, причем не пользуясь логическими правилами, а просто изучив множество признаков каждого человека. В этом случае Виктория и Шарлотта – это наборы отдельных признаков. Результат взаимодействия двух векторов дает признаки корректного ответа. Потрясает, как сеть изучает векторы признаков и распределенные представления для разных слов.
Читать дальше
Конец ознакомительного отрывка
Купить книгу