Революция обучения глубоких сетей — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Революция обучения глубоких сетей

2020-04-03 223
Революция обучения глубоких сетей 0.00 из 5.00 0 оценок
Заказать работу

— А как повернулось дело? — задумчиво пробормотал он. — Трах-та-бабах! Революция!

Ему стало весело. Он глотал пахнувший росой и яблоками воздух и думал: «Столб, хлеб, дом, рожь, больница, базар — слова все знакомые, а то вдруг — Революция! Бейте, барабаны!»

А. Гайдар. Бумбараги

Прежде всего, спросим себя, положив руку на сердце:

— Да есть ли у нас сейчас революция?..

Разве та гниль, глупость, дрянь, копоть и мрак, что происхо­дит сейчас, — разве это революция? Революция — сверкающая прекрасная молния, революция — божественно красивое лицо, озаренное гневом Рока, революция — ослепительно яркая ра­кета, взлетевшая радугой среди сырого мрака!.. Похоже на эти сверкающие образы то, что сейчас происходит?..

А. Аверченко. Дюжина ножей в спину революции Десять лет назад, в середине 2000-х годов, в машинном обучении началась револю­ция. В 2005-2006 годах группы исследователей под руководством Джеффри Хин­тона (Geoffrey Hinton) в университете Торонто и Йошуа Бенджи (Yoshua Bengio) в университете Монреаля научились обучать глубокие нейронные сети. И это пе­ревернуло весь мир машинного обучения! Теперь в самых разнообразных пред­метных областях лучшие результаты получаются с помощью глубоких нейронных сетей. Одним из первых громких промышленных успехов стало распознавание ре­чи: разработанные группой Хинтона глубокие сети очень быстро радикально улуч­шили результаты распознавания по сравнению с оттачивавшимися десятилетиями классическими подходами, и сегодня любой распознаватель, включая голосовые помощники вроде Apple Siri и Google Now, работает исключительно на глубоких нейронных сетях. А сейчас, к 2017 году, люди научились обучать самые разные ар­хитектуры глубоких нейронных сетей, и те решают абсолютно разные задачи: от распознавания лиц до вождения автомобилей и игры в го.

Но идеи большинства таких моделей появились еще в 80-90-х годах XX ве­ка, а то и раньше. Искусственные нейронные сети стали предметом исследований очень давно; скоро мы увидим, что они были одной из первых хорошо оформ­ленных идей искусственного интеллекта, когда и слов-то таких — «искусствен­ный интеллект» — еще никто не слышал. Но с начала 90-х годов XX века до се­редины нулевых этого[1] нейронные сети были, мягко говоря, не в моде. Известный исследователь нейронных сетей Джон Денкер (John Denker) в 1994 году сказал: «Нейронные сети — это второй лучший способ сделать практически что угодно». И действительно, на тот момент уже было известно, что нейронная сеть теоретиче­ски может приблизить любую функцию и обучиться решать любую задачу, а глубо­кая нейронная сеть способна еще и более эффективно решить гораздо больше раз­ных задач... Но обучать глубокие сети никому не удавалось, другие методы на кон­кретных практических примерах работали лучше. Из общих методов машинного обучения это были сначала «ядерные методы» (kernel methods), в частности метод опорных векторов, а затем байесовские сети и в целом графические вероятностные модели. Но вообще Денкер вел речь о том, что более простая вероятностная мо­дель, разработанная специально с учетом специфики конкретной задачи, обычно работала лучше, чем нейронная сеть «общего назначения», даже если выбрать ей подходящую для задачи архитектуру. А глубокие нейронные сети обучаться никак не хотели; о том, почему именно, мы подробно поговорим в разделе 3.5.

Решение, предложенное группой Хинтона в середине 2000-х годов, пришло в виде предобучения без учителя, когда сеть сначала обучается на большом наборе данных без разметки, а потом уже дообучается на размеченных данных, используя это приближение. Например, если мы хотим распознавать человеческие лица, то давайте сначала пообучаем нейронную сеть на фотографиях с людьми вообще, без разметки (таких фотографий можно легко набрать сколь угодно много), а уже по­том, когда сеть «насмотрится» на неразмеченные фотографии, дообучим ее на име­ющемся размеченном наборе данных. Оказалось, что при этом конечный результат становится намного лучше, а хорошие и интересные признаки сеть начинает выде­лять еще на этапе предобучения без учителя. Именно таким образом произошел, в частности, прорыв в распознавании речи. Конечно, здесь пока совершенно непо­нятно, что сеть собственно должна делать с этими неразмеченными фотографиями, и в этом и заключался прорыв середины нулевых годов. Мы немного поговорим об этих методах в разделе 4.2, однако без подробностей, потому что сегодня эти мето­ды уже практически не используются.

Почему? Потому что все неплохо работает и без них! Оказалось, что сейчас мы можем успешно обучать нейронные сети, в том числе глубокие, фактически теми же методами, которыми раньше это сделать никак не удавалось. Методы предобу­чения без учителя оказались лишь «спусковым крючком» для революции глубо­кого обучения. Второй важнейшей причиной стал, собственно, прогресс в вычис­лительной технике и в размерах доступных для обучения наборов данных. С раз­витием Интернета данных становилось все больше: например, классический на­бор данных MNIST, о котором мы начнем подробный разговор в разделе 3.6 и на котором добрый десяток лет тестировались модели компьютерного зрения, — это 70 тысяч изображений рукописных цифр размером 23 х 23 пикселов, суммарно около 10 Мбайт данных; а современный стандартный датасет для моделей ком­пьютерного зрения ImageNet содержит уже около 1,2 Тбайт изображений. В части вычислений помогают и закон Мура[2], и важные новшества, которые позволяют обучать нейронные сети быстрее. Вся глава 4 будет посвящена таким новшествам. В основном мы, конечно, будем говорить о продвижениях в самих алгоритмах обу­чения, но будут и фактически чисто «железные» продвижения: обучение совре­менных нейронных сетей обычно происходит на графических процессорах (GPU, то есть по сути на видеокартах), что часто позволяет ускорить процесс в десятки раз... Эта идея появилась около 2006 года и стала важной частью революции глу­бокого обучения.

Но, конечно, содержание революции глубоких сетей не ограничивается тем, что компьютеры стали быстрее, а данных стало больше. Если бы это было так, можно было бы никаких книг не писать, а закончить разговор прямо сейчас. Техническое развитие позволило не только вернуться к идеям 80-90-х годов XX века, но и при­думать много новых идей.

Развивались и общие методы обучения нейронных сетей (о них мы поговорим в главе 4 и вообще в первой части книги), и классические архитектуры нейронных сетей, которым в основном посвящена вторая часть, — сверточные сети и автокоди­ровщики (глава 5), рекуррентные сети (глава 6). Но появлялись и совершенно но­вые архитектуры: порождающие состязательные сети (глава 8) сумели превратить нейронные сети в порождающие модели, нейронные сети в обучении с подкрепле­нием (глава 9) привели к невиданным ранее прорывам, нейробайесовские методы (глава 10) соединили нейронные сети и классический вероятностный вывод с по­мощью вариационных приближений, а нужды конкретных приложений привели в разработке таких новых архитектур, как сети с вниманием (раздел 8.1) и сети с памятью, которые уже находят и другие применения.

Прежде чем двигаться дальше, скажем пару слов об основных источниках. Книг по обучению глубоких сетей пока не так уж много. Некоторые считают, что эта об­ласть еще не вполне устоялась и систематизировать ее пока не обязательно. Как вы наверняка догадались, мы с этим не вполне согласны. Фактически сейчас есть только две известные книги об обучении глубоких сетей: в 2014 году вышла книга сотрудников Microsoft Research Ли Денга (Li Deng) и Донга Ю (Yu Dong) Deep Learning: Methods and Applications [ 117], в которой основной упор делается на при­ложения для обработки сигналов, то есть для анализа изображений и речи. А со­всем недавно, в конце 2016 года, вышла книга Иэна Гудфеллоу (Ian Goodfellow), Йошуа Бенджи и Аарона Курвилля (Aaron Courville) Deep Learning [184], в кото­рой дается подробное и идейное введение в тему. Хотя эта книга, формально гово­ря, наш прямой конкурент, мы ее всячески рекомендуем; кстати, русский перевод тоже уже существует. Кроме того, есть целый ряд важных больших обзоров, кото­рые до статуса книг не дотягивают, но дают очень широкое представление о глубо­ком обучении: ранний обзор Бенджи [38] показывает состояние дел на 2009 год, его же более поздний обзор рассматривает глубокое обучение как обучение представ­лений (representation learning) [39], обзор Ли Денга сделан с уклоном в обработ­ку сигналов [115], а обзор Юргена Шмидхубера (Jurgen Schmidhuber) [475] дает очень подробный анализ истории основных идей глубокого обучения.

Есть, конечно, и более специальные обзоры для конкретных областей: обработ­ки изображений [107], обработки естественных языков [182] и многих других. Из статей, в которых речь идет об обучении глубоких сетей «вообще», можно выде­лить программную статью в Nature трех главных представителей глубокого обуче­ния: Джеффри Хинтона, Йошуа Бенджи и Яна ЛеКуна (Yann LeCun) [314]. На бо­лее специализированные источники мы будем ссылаться на протяжении всей этой книги: область молодая, развивается она очень быстро, и в списке литературы, в ко­торый мы старались помещать только действительно важные статьи, источников уже накопилось немало. Кстати, следить за последними новостями глубокого обу­чения лучше всего на arXiv [3]: новые работы по обучению глубоких сетей появляют­ся там постоянно, и если вы не заходили на arXiv два-три месяца, может оказать­ся, что в вашей области уже произошла какая-нибудь очередная мини-революция, а вы и не заметили...

В этой книге мы поговорим о разных архитектурах нейронных сетей, разберем, как именно обучать нейронные сети, какие задачи можно ими решать. Более того, мы дойдем и до практики: почти каждый наш рассказ будет сопровождаться вполне рабочими примерами кода с использованием современных библиотек для обуче­ния нейронных сетей, главным образом TensorFlow и Keras. Подобные библиотеки сделали обучение нейронных сетей общедоступным и стали важной компонентой взрыва интереса и быстрого развития нашей области. Нас ждет очень много инте­ресного. А в этой, вводной, главе мы начнем с того, что поговорим о том, что вообще такое искусственный интеллект и машинное обучение, как они появились, как раз­вивались и как искусственные нейронные сети, которые мы рассматриваем в этой книге, связаны с естественными, с помощью которых вы эту книгу читаете.



Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.