Пример задачи, которую, в отличие от перцептрона, решит машина Больцмана, – изучение зеркальной симметрии[165]
. Наше тело симметрично относительно вертикальной оси. Мы можем создать много случайных узоров с такой симметрией, как показано на рис. 7.5. Мы также можем создавать рисунки с горизонтальной и диагональной осями симметрии. В нашей модели машины Больцмана эти блоки двоичных входов размером 10×10 проецировались на 16 скрытых блоков, которые, в свою очередь, проецировались на три входных блока, по одному для каждой из трех вероятных осей симметрии. После обучения на 6000 симметричных входных образах машина Больцмана успешно определяла ось симметрии новых входных образов в 90 процентах случаев. Перцептрон может лишь действовать наугад, потому что один вход не несет никакой информации о симметрии узора – необходимо учитывать корреляции между парами входов. Примечательно, что машина Больцмана видела вовсе не то, что видите вы, ведь каждый скрытый блок получал входящие данные в определенном порядке. Как если бы для вас входные блоки расположили в хаотичном порядке, который бы выглядел беспорядочной массой даже при наличии скрытой симметрии.Однажды я смотрел на экран и определял симметрию каждого входного набора данных по два в секунду. Нил Коэн, коллега с факультета психологии Университета Хопкинса, который тоже вел наблюдение, был поражен моим результатом. Наблюдая за процессом обучения машины Больцмана, я и сам научился находить симметрию автоматически, не всматриваясь. Мы поставили эксперимент с участием студентов и проследили за их успехами[166]
. Вначале им требовалось много времени, чтобы правильно определить симметрию. Но после нескольких дней обучения они сильно ускорились, и к концу эксперимента задача стала для них настолько легкой, что они могли разговаривать с нами во время ее выполнения и одновременно давать правильный ответ. Это пример удивительно быстрого перцептивного обучения[167].В Университете Хопкинса я вел курс «Вычислительная биофизика», в ходе которого привлек несколько талантливых студентов и исследователей. Бен Юхас, аспирант с кафедры электротехники, во время работы над докторской диссертацией научил нейросеть читать по губам[168]
. Известно, как звучит речь при разных движениях рта. Сеть Бена преобразовала изображения рта во время артикуляции в соответствующий частотный спектр звука, порождаемый в каждый момент времени. Затем это добавили к звуковому спектру шумов, чтобы улучшить распознавание речи. Андреас Андреу, громкоголосый грек с Кипра, создавал аналоговые сверхбольшие интегральные схемы в подвале Бартон-холла. В 1980-х годах преподаватели на факультете, как и в других университетах, относились к нейросетям враждебно, однако Бена и Андреаса это не остановило. Андреас поднялся по карьерной лестнице до профессора и стал одним из основателей Центра языка и обработки речи в Университете Хопкинса.Распознавание почтовых индексов, написанных вручную
Не так давно Джеффри Хинтон и его студенты из Университета Торонто обучили машину Больцмана с тремя слоями скрытых блоков с высокой точностью распознавать рукописные почтовые индексы (рис. 7.7)[169]
. Поскольку в сети было и обратное, и прямое распространение, ее можно было запускать в обратном направлении, зафиксировав один из выходных блоков и создав соответствующие ему входные блоки (рис. 7.6). Генеративные модели фиксируют статистическую структуру обучающего набора, и генерируемые выборки наследуют эти свойства. Как если бы сеть перешла в спящий режим, а активность самого высокого уровня создавала нечто похожее на сны.Развитие нейронных сетей шло быстро, однако консервативным ученым-когнитивистам было трудно их принять.
Рис. 7.6. Многослойная машина Больцмана для распознавания и формирования рукописных цифр. Размер изображения – 28×28=784 пикселей, которые могут быть белыми и черными. Цель – определить цифру на основе 10 выходных единиц (0–9)
За пределами лаборатории параллельной распределенной обработки в Ла-Хойя и нескольких отдельных исследовательских групп, обработка символов по-прежнему оставалась единственным методом.
Рис. 7.7. Шаблоны входного слоя, генерируемые многослойной машиной Больцмана, обученной распознавать рукописные цифры. Каждая линия была создана фиксацией одного из 10 выходных блоков, и входной слой непрерывно изменялся от примера к примеру, показанных выше. Ни одной из этих цифр не было в тренировочном наборе – ими «бредила» внутренняя часть обученной сети