Антология машинного обучения. Важнейшие исследования в области ИИ за последние 60 лет - Терренс Дж. Сейновски
Шрифт:
Интервал:
Так как вычислительные мощности компьютеров росли по экспоненте, стало возможным обучать более крупные сети. Считалось, что широкие нейронные сети с большим числом скрытых единиц эффективнее, чем глубокие сети с большим количеством слоев, но выяснилось, что это не относится к сетям, которые обучаются слой за слоем[214]. Отчасти причиной была проблема исчезающего градиента ошибки, которая замедляла обучение вблизи входного слоя[215]. Когда ее решили, появились условия для обучения глубоких сетей обратного распространения ошибки, которые показывали прекрасные результаты на тестах[216]. Сети глубокого обучения продемонстрировали, насколько в перспективе может улучшиться качество распознавания речи[217].
Глубокие сети обратного распространения ошибки бросили вызов традиционным подходам к компьютерному зрению. То, что внимание вновь было обращено к нейросетям, подняло шумиху на Конференции NIPS в 2012 году. Джеффри Хинтон и два студента, Алекс Крижевский и Илья Суцкевер, представили доклад о методе распознавания объектов на изображениях, использованный ими для обучения AlexNet – глубокой сверточной сети, которая будет в центре внимания в этой главе. В области компьютерного зрения последние 20 лет шел устойчивый, но медленный прогресс, и на тестах производительность росла на доли процента в год. Методы улучшались неспешно, поскольку каждая новая категория объектов требует, чтобы эксперт предметной области определил для нее неизменяющиеся признаки, по которым их можно отличить от других объектов.
Важную роль в сопоставлении различных методов играют контрольные показатели. Эталоном, который использовала команда из Университета Торонто, была база данных ImageNet, содержащая свыше 15 миллионов изображений с высоким разрешением более чем в 22 тысячах категорий. AlexNet добилась беспрецедентного снижения частоты ошибок на 18 процентов.[218] Этот скачок производительности поразил специалистов по машинному зрению и задал курс его развития, так что в настоящее время компьютерное зрение почти достигло уровня человеческого. К 2015 году частота ошибок в базе данных ImageNet снизилась до 3,6 процента[219]. Используемую сеть глубокого обучения, во многом напоминающую зрительную кору головного мозга, представил Ян Леку, и первоначально она называлась Le Net.
Рис. 9.2. Сравнение зрительной коры и сверточной сети для распознавания объектов на изображениях. Вверху: иерархия слоев зрительной коры, от входов V1 с сетчатки и таламуса (LGN) до нижней височной коры (PIT, CIT, AIT), показывающая соответствие между кортикальными областями и слоями сверточной сети. Внизу: входные данные с изображения слева проецируются на первый сверточный слой, состоящий из нескольких слоев признаков, каждый из которых представляет собой фильтр, как ориентированные простые клетки, найденные в зрительной коре. Фильтры с заданными границами объединяются параллельно первому слою и дают одинаковый отклик на определенном участке, подобно сложным клеткам в зрительной коре. Эта операция повторяется на каждом сверточном слое сети. Выходной слой полностью обменивается данными с последним сверточным слоем. (Yamins DLK, DiCarlo JJ. Using goaldriven deep learning models to understand sensory cortex. Nat. Neurosci. 19: 356–65, 2016)
Ян Лекун (рис. 9.1) был студентом, когда мы с Джеффри Хинтоном впервые встретились с ним в 1980-х годах во Франции. Он заинтересовался ИИ еще в девять лет, вдохновленный HAL 9000 – вымышленным компьютером из фильма «Космическая одиссея 2001 года»[220]. В 1987 году Лекун, когда писал свою кандидатскую диссертацию, самостоятельно выявил метод обратного распространения ошибки[221], после чего переехал в Торонто, чтобы работать с Хинтоном. Позже он перешел в Bell Labs в Холмделе, где обучил сеть читать рукописные почтовые индексы на письмах, используя набор данных MNIST[222] – маркированный эталон из почтового отделения Буффало. Ежедневно приходится направлять в почтовые ящики миллионы писем, и сегодня это полностью автоматизировано. Та же технология позволяет банкоматам считывать сумму на банковском чеке. Интересно, что сложнее всего найти место, где на чеке записаны цифры, так как у каждого чека свой формат. Еще в 1980-х годах было очевидно, что у Лекуна огромный талант брать доказанный учеными принцип и заставлять его работать в реальном мире.
Сверточные нейронные сети
Когда Ян Лекун в 2003 году перешел на работу в Нью-Йоркский университет, он продолжал развивать свою «видящую» сеть, сейчас известную как сверточная нейронная сеть (рис. 9.2). Она основана на свертке, которую можно рассматривать как скользящий фильтр, пропускающий через себя все изображение и создающий параллельно ему новый информационный слой. Например, фильтр, предназначенный для определения контуров, как тот, о котором говорилось в главе 5, имеет большой выходной сигнал только тогда, когда окно находится над краем верно ориентированного объекта на изображении или так же ориентированной текстуры внутри объекта. Окно на первом слое – лишь небольшой фрагмент изображения, при этом может быть много фильтров и, следовательно, много характеристик, представленных в каждом фрагменте. Фильтры в первом слое, который связан с изображением, похожи на то, что Хьюбел и Визель называли простыми клетками первичной зрительной коры (рис. 9.3)[223]. Фильтры в более высоких слоях реагируют на еще более сложные характеристики[224].
В более ранних версиях сверточной сети выходные данные каждого фильтра пропускались через нелинейную функцию, плавно увеличивающуюся от 0 до 1, называемую сигмоидной (S-образной) функцией, которая подавляла вывод слабо активированных блоков. Окно во втором слое, которое получает входные данные от первого слоя, охватывает бо́льшую область поля зрения, так что после нескольких слоев появляются блоки, получающие входные данные со всего изображения. Этот верхний слой схож с верхушкой иерархии зрительной коры, которая у приматов называется нижневисочной корой и имеет рецептивные поля, покрывающие значительную часть поля зрения. Затем верхний слой подается в слой классификации, который использовался для обучения всей сети, чтобы классифицировать объекты на изображении с помощью обратного распространения ошибки.
Рис. 9.3. Фильтры из первого слоя сверточной сети. Каждый фильтр расположен на определенном участке в поле зрения. Предпочтительные входные сигналы некоторых фильтров ориентированы как простые клетки в зрительной коре. Предпочтительные входные сигналы на втором слое более вытянутые и имеют сложные формы [Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, ImageNet Classification with Deep Convolutional Neural Networks, Advances in Neural Information Processing Systems 25 (NIPS 2012)]
За прошедшие годы в сверточные сети внесли множество улучшений (см. рис. 9.3). Важным дополнением стало объединение каждого признака по областям, получившее название пулинг (pooling). Оно обеспечивает
Поделиться книгой в соц сетях:
Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!