Выполнение этой процедуры – ввод изображения, вычисление ошибки на выходе, коррекция весов – для всех изображений из тренировочного множества называется “эпохой” тренировки. Тренировка сверточной нейронной сети требует множества эпох, в каждой из которых сеть снова и снова обрабатывает каждое изображение. Сначала сеть очень плохо распознает собак и кошек, но постепенно, корректируя веса на протяжении многих эпох, она начинает справляться с задачей все лучше. Наконец в какой-то момент сеть “сходится”: ее веса перестают сильно изменяться от эпохи к эпохе, и она (в принципе!) очень хорошо распознает собак и кошек на изображениях из тренировочного множества. Но мы не узнаем, хорошо ли сеть в целом справляется с этой задачей, пока не проверим, может ли она применять все то, чему научилась, к изображениям, не входившим в тренировочное множество. Любопытно, что программисты не ориентируют сверточные нейронные сети на выявление конкретных признаков, но при тренировке на больших множествах настоящих фотографий они выстраивают иерархию детекторов, подобную той, которую Хьюбел и Визель обнаружили в зрительной системе мозга.
В следующей главе я расскажу о бурном развитии сверточных нейронных сетей, которые сначала пребывали в тени, но теперь практически безраздельно господствуют в сфере машинного зрения. Эта трансформация стала возможной благодаря сопутствующей технологической революции – революции “больших данных”.
Глава 5
Сверточные нейронные сети и ImageNet
Изобретатель сверточных нейронных сетей Ян Лекун всю жизнь работал над нейронными сетями: начав еще в 1980-х, он пережил немало зим и весен ИИ. Во время аспирантуры и постдокторантуры он восхищался перцептронами Розенблатта и неокогнитроном Фукусимы, но отмечал, что последнему не хватает хорошего алгоритма обучения с учителем. Вместе с другими учеными (в частности, с научным руководителем его постдокторантуры Джеффри Хинтоном) Лекун принял участие в разработке такого метода обучения – по сути, того же самого метода обратного распространения ошибки, который сегодня используется в сверточных нейронных сетях[107].
В 1980-х и 1990-х годах, работая в Лабораториях Белла, Лекун обратился к проблеме распознавания рукописных цифр и букв. Совместив идеи неокогнитрона с алгоритмом обратного распространения ошибки, он создал
Лекун, Хинтон и другие сторонники нейронных сетей полагали, что усовершенствованные, более масштабные вариации СНС и других глубоких сетей сумеют завоевать сферу компьютерного зрения, если предоставить им достаточный объем тренировочных данных. Все 2000-е годы они упорно работали в тени, но в 2012 году факел исследователей сверточных нейронных сетей вдруг озарил целый мир, когда их разработка победила в соревновании по компьютерному зрению на базе данных изображений
Создание ImageNet
Исследователи ИИ склонны к соперничеству, а потому нет ничего удивительного в том, что они любят проводить соревнования, чтобы двигать науку вперед. В сфере зрительного распознавания объектов давно проводятся ежегодные конкурсы, которые помогают специалистам определить, чья программа справляется с задачей лучше всего. На каждом соревновании используются “эталонные данные”, куда входят фотографии с присвоенными людьми метками, описывающими объекты на снимках.
В 2005–2010 годах самым престижным был ежегодный конкурс PASCAL[109]
В рамках этого соревнования в “классификации”[110] соперничали программы компьютерного зрения, которые брали фотографию в качестве входного сигнала (не видя присвоенную ей человеком метку) и на выходе определяли для каждой из двадцати категорий, присутствует ли на изображении относящийся к ней объект.