Шрифт:
Интервал:
Закладка:
Если сеть составить только из описанных выше свёрточных слоёв, то каждый следующий слой будет содержать всё большее и большее количество нейронов, ведь входу каждого свёрточного слоя размером w × h нейронов (где w — ширина, а h — высота слоя) будет соответствовать выход размером w × h × d (где d — количество каналов карты признаков). Понимая это, Фукусима использовал также специальные слои сети для понижения размерности данных, так называемые C-слои. Каждый C-нейрон, так же как и S-нейрон, получал сигналы от нейронов в квадратной по форме зоне предыдущего слоя, однако эти соединимые области C-нейронов не пересекались между собой. Далее C-нейрон усреднял сигналы, полученные им на вход, и передавал в следующий слой полученное усреднённое значение. Производимая им операция напоминает понижение размера картинки в графическом редакторе: уменьшая картинку размером 100 × 100 пикселей до размера 50 × 50, графический редактор обычно просто разделяет исходную картинку на квадратики размером 2 × 2 пикселя, усредняет цвет внутри квадратика и этот усреднённый цвет делает цветом соответствующего пикселя результирующего изображения. Сегодня такие слои называют слоями «пулинга» [pooling] или «субдискретизации» [subsampling]. Вместо функции усреднения в наши дни чаще всего используют операцию «максимизирующего пулинга» [max pooling], при котором C-нейрон не усредняет входные значения, а отбирает среди них максимальное, а разновидность пулинга, использованная Фукусимой, сегодня называется «усредняющим пулингом» [mean pooling].
На момент изобретения неокогнитрона Фукусима не был знаком с методом обратного распространения ошибки. Фокус его исследований был сосредоточен на собственном методе обучения сети без учителя — и это, конечно, серьёзно ограничивало возможности новой модели.
5.2.4.3 Ян Лекун: внедрение метода обратного распространения ошибки для обучения свёрточных нейронных сетей
Первые применения метода обратного распространения ошибки для обучения свёрточных нейронных сетей относятся ко второй половине 1980-х. В области компьютерного зрения первым исследователем, которому удалось совместить две решающие новации в одной модели, стал франко-американский исследователь Ян Лекун, в ту пору являвшийся сотрудником Исследовательского подразделения адаптивных систем в AT&T Bell Laboratories в Холмделе (Нью-Джерси, США). Именно здесь Лекун разработал ряд новых моделей машинного обучения, созданных под влиянием данных об устройстве биологических систем. К числу этих моделей относились и свёрточные нейронные сети, постепенное совершенствование которых в последующем и привело к прорыву в области компьютерного зрения. В 2018 г. вклад Яна Лекуна в дело революции глубокого обучения был отмечен престижной премией Тьюринга, которую Лекун разделил с Джеффри Хинтоном и Йошуа Бенджио. Премия была вручена с формулировкой «За концептуальные и инженерные прорывы, которые сделали глубокие нейронные сети критически важным компонентом вычислений»[1472].
Ян Лекун родился в коммуне Суази-су-Монморанси, в 15 км от Парижа. Его фамилия в прошлом писалась раздельно — Le Cun — и произошла от старой бретонской формы Le Cunff, что буквально означало «хороший парень»[1473]. В англоязычных источниках фамилия Лекун обычно записывается с заглавной буквой C в середине — LeCun, но русский язык не любит таких вольностей, поэтому в русскоязычных источниках он стал просто Лекуном. Окончив Высшую инженерную школу (École Supérieure d’Ingénieurs en Électrotechnique et Électronique, ESIEE) в Париже, Лекун в 1983 г. поступил на программу углубленного обучения [d’etudes approfondies] в Университет Пьера и Марии Кюри (Université Pierre et Marie Curie), где в 1987 г. получил степень доктора философии по информатике. Его диссертация была посвящена разработке одной из ранних разновидностей метода обратного распространения ошибки. С 1987 по 1988 г. Лекун был постдокторантом в Университете Торонто, где работал под началом Джеффри Хинтона, после чего устроился на работу в AT&T Bell Laboratories[1474]. Лекун так в шутку формулирует своё кредо: «Я воплощаю в себе всё, что так раздражает религиозных правых: учёный, атеист, левый (по американским меркам, по крайней мере), профессор университета и француз»[1475].
Руководителем подразделения, в котором оказался Лекун, был Лоуренс Джекел — один из разработчиков системы для распознавания цифр в рукописных почтовых индексах. Основой этой системы, воплощённой в виде отдельной специализированной СБИС, был «экстрактор признаков», напоминавший неокогнитрон, свёрточные ядра которого (размером 7 × 7) подбирались создателями системы вручную. Выходы экстрактора признаков изначально анализировались при помощи классических алгоритмов кластеризации, таких как метод k‑ближайших соседей и метод окна Парзена — Розенблатта. Однако затем создатели системы заменили выход экстрактора признаков на небольшую полносвязную нейронную сеть, которая справлялась с задачей классификации цифр значительно лучше. Создателям системы удалось достичь уровня ошибки в 6% на тестовом наборе данных[1476], что стало небольшим, но всё же улучшением предшествующего результата.
Лекун совершил ещё один шаг вперёд — он сделал все веса нейронной сети изменяемыми в процессе обучения, отказавшись от вручную подобранных свёрточных ядер, и применил для вычисления синаптических весов метод стохастического градиентного спуска, основанный на методе обратного распространения ошибки. В результате уровень ошибки на тестовой выборке снизился ещё на один процентный пункт — до 5%[1477].
В 1998 г. в результате исследований Лекуна, Леона Ботту, Йошуа Бенджио и Патрика Хаффнера увидела свет архитектура свёрточной нейронной сети LeNet-5, ставшая классической. Эта сеть состоит из трёх свёрточных слоёв, перемежаемых слоями максимизирующего пулинга, и завершается на выходе двумя полносвязными слоями. Данная сеть оказалась способна распознавать рукописные цифры размером 32 × 32 пикселя, достигнув уровня ошибки в 0,8% на тестовой выборке при использовании датасета MNIST[1478].
Основным «классическим» конкурентом LeNet-5 на тот момент был метод опорных векторов [support vector machines или support vector method, SVM], а точнее — его разновидность под названием V-SVM, разработанная Бернхардом Шёлькопфом и его коллегами. В основе SVM лежит идея построения оптимальной разделяющей гиперплоскости, предложенная в 1963 г. Владимиром Вапником и Алексеем Червоненкисом. В 1992 г. Бернхард Босер, Изабель Гийон и Вапник придумали способ создания нелинейного классификатора за счёт объединения этой идеи с идеей перехода от скалярных произведений к произвольным ядрам[1479]. Последняя идея известна в наши дни под названием kernel trick, она была предложена впервые Марком Айзерманом, Эммануилом Браверманом и Львом Розоноэром для метода потенциальных функций[1480]. Звезда SVM взошла в середине 1990-х гг. — новый метод обучения с учителем, благодаря своей математической изящности