Русский
Русский
English
Статистика
Реклама

Глубокие нейросети с прямой связью

Эта лекция часть курсаГлубокое обучение, который мы делаем вместе с организаторамитехнологическогоконкурса UpGreat ПРО//ЧТЕНИЕ. Профессор Университета прикладных наук итальянской Швейцарии, пионер в области искусственного интеллекта Юрген Шмидхубер рассказывает о совершенныхискусственных нейросетях и механизмах глубокого обучения.Наша вторая лекция будет посвящена глубоким нейронным сетям с прямой связью, в которых нет рекуррентных связей. В ранних сетях с прямой связью, где применялось обучение с учителем, в 1950-х годах, был только один слой нейронов, один слой входных нейронов и один выходных. По сути они были модифицированной моделью линейной регрессии, которая восходит к работам Гаусса и Лежандра начала XIX века.Гаусс реализовал первый пример распознавания закономерностей. Тогда астрономы наблюдали Цереру, но затем она скрылась за Солнцем, и снова обнаружить ее предсказать, где именно она появится, было большой проблемой. Гаусс обобщил данные о небесной механике в предсказательный аппарат, в который он ввел уже известные параметры, а затем применил метод наименьших квадратов, открытие которого приписывается и Лежандру, и Гауссу, чтобы скорректировать эти параметры (по сути чтобы научиться их вычислять из прошлых наблюдений). Это позволило ему предсказать, в какой точке можно будет наблюдать Цереру, что прославило его еще в очень молодом возрасте. Персептрон Розенблатта, предложенный в 1950-х годах, очень похож на эту модель линейной регрессии.Глубокое обучение начали разрабатывать в 1965 году на Украине тогда это была территория СССР, который лидировал во многих областях науки и технологии: они положили начало космической эре, они посадили на Луну первый искусственный аппарат, они создали мощнейшую бомбу; они провели первый пилотируемый космический полет и первыми организовали полет женщины в космос. Но что еще важнее, у них были многие из лучших в мире математиков, двое из которых Ивахненко и Лапа разработали первые глубокие сети, способные к обучению.В 1965 году Ивахненко и Лапа опубликовали первый общий алгоритм обучения с учителем для глубоких многослойных персептронов. Их метод до сих пор широко применяется и в новом тысячелетии. Они использовали полиномиальную активацию узлов, то есть полиномиальную функцию активации нейронов, сочетающую операции сложения и умножения, так называемый полином Колмогорова Габора. Кроме того, они использовали регрессию для подстройки переменных: выходы нейронов первого слоя становились входом для нейронов второго и так далее.В 1971 году Ивахненко уже описал глубокую нейронную сеть с восемью слоями (это много даже по меркам нового тысячелетия), обученную таким способом он используется и в 2000-х годах.Как он работает? При наличии тренировочного сета, состоящего из векторов входного сигнала с соответствующими целевыми выходными сигналами, слои постепенно начинают расти: сначала первый, затем второй и так далее. Они обучаются посредством регрессионного анализа, а затем с помощью отдельного контрольного сета проводится прунинг, когда регуляризация применяется как детектор избыточных признаков в текущем слое.Таким образом, при помощи контрольного сета можно локализовать избыточные нейроны, которые затем удаляются. Число слоев и число нейронов в слое можно установить опытным путем в зависимости от задачи.Как и более поздние глубокие нейросети, сети Ивахненко и Лапы также умеют создавать внутренние распределенные иерархические отображения поступающих на вход данных. Они еще не применяли метод обратного распространения ошибки или обучение с учителем через чистый градиентный спуск: Ивахненко использовал пошаговую регрессию для подбора весов.Альтернативный вариант был описан примерно в то же время. Если вы хотите применить градиентный спуск для анализа целевой функции (например, суммарной ошибки классификации на данном тренировочном сете, состоящем из входных образов и соответствующих меток), используется метод обратного распространения ошибки, который был предложен финским магистрантом Сеппой Линнайнмаа из Хельсинки в 1970 году.Современная версия метода обратного распространения ошибки для слабо связанных сетей, включая реализацию на Фортране, обязана своим появлением Линнайнмаа. Любопытно, что Финляндия расположена на границе с СССР, где в 1965 году появились первые работы по глубокому обучению.Линнайнмаа развил ранние работы Келли, созданные в 1960-х годах, где уже использовались основные идеи метода обратного распространения ошибки. Здесь хорошо то, что сложность вычислений производная выходной ошибки от каждого веса пропорциональна числу весов.В результате прямой ход по сложности пропорционален числу весов, и обратный ход тоже пропорционален числу весов. Этот метод используется до сих пор.Вербос в 1982 году первым приложил его к нейросетям, поскольку это общий метод, который можно применять для решения самых разных задач например, в TensorFlow от Google и аналогичном софте. Метод обратного распространения ошибки используется для корректировки параметров в любом графе вычислений с дифференцируемыми узлами.С 1980-х по 1990-е годы компьютеры стали в 10 тысяч раз мощнее, чем компьютеры в 19601970-х, когда был создан и разработан метод обратного распространения ошибки. Этих мощностей стало достаточно, чтобы начать проводить первые эксперименты с этим методом на дешевых или сравнительно дешевых персональных компьютерах, которые появились только в середине 1980-х.Румельхарт с коллегами показали, что таким образом можно научиться представлять объекты в скрытых слоях. К 2003 году глубокие нейросети прямого распространения, основанные на методе обратного распространения ошибки, глубиной вплоть до семи слоев, уже успешно применялись для классификации многомерных данных на это в 2003 году указывают Виейра и Баррадас.В 1970-е годы в Японии также была разработана архитектура сверточной нейронной сети (convolutional neural network, CNN). Она была предложена Фукусимой в 1979 году, он назвал ее неокогнитроном. На создание такой архитектуры его вдохновили нейрофизиологические открытия Хьюбела и Визеля. Сегодня она широко применяется в компьютерном зрении.Как она работает? Мы выделяем рецептивное поле (поле восприятия) нейрона, обычно прямоугольное; любому такому нейрону на первом слое сети присвоен весовой вектор, связанный с этим рецептивным полем. Поле представляет собой фильтр, который шаг за шагом перемещается по изображению двумерному массиву входных значений, так что сеть системно воспринимает все пиксели изображения.Обычно создается множество таких фильтров. Полученный в итоге массив активаций этого узла затем может играть роль входных данных для узлов более высокого уровня.В процессе вы снова и снова копируете веса этих фильтров в следующие экземпляры того же фильтра, и из-за этой масштабной репликации весов сравнительно немного параметров требуется для описания поведения таких сверточных слоев, которые обычно передают данные в так называемые слои с понижающей дискретизацией. В таких случаях у вас есть большой слой, который передает данные в меньший в слой с понижающей дискретизацией. Это значит, что вы получаете ту же информацию, что и на предыдущем слое, но с более низким разрешением.Существуют связи с постоянными весами, которые исходят от соседних нейронов с нижних сверточных слоев: эти нейроны находятся внутри слоя с понижающей дискретизацией.Нейроны с понижающей дискретизацией применяют пространственное усреднение, чтобы активироваться, если хотя бы один из их входов активен, и тогда их выход нечувствителен к небольшим сдвигам изображения, что очень полезно для многих приложений компьютерного зрения.Ванг в 1993 году заменил пространственное усреднение Фукусимы на широко применяемую сегодня операцию подвыборки, которая является центральным компонентом многих CNN. В данном случае двухмерный слой, или массив значений активации нейронов, разделяется на небольшие прямоугольные подмассивы, очень простые, и каждый из них в слое с понижающей дискретизацией заменяется на значение активации наиболее активного узла в его составе.В 1987 году Вайбель объединил архитектуру сверточных нейронных сетей с технологией совместного использования весов и методом обратного распространения ошибки Фукусима его не использовал, он прибегал к другим способам корректирования параметров системы. Вайбель впервые объединил эти две идеи: градиентный спуск, реализованный через обратное распространение ошибки, и свертки. Это также было осуществлено и в Японии.Всего десять лет назад, в 2010 году, многие полагали, что глубокие нейросети мало чему могут научиться, если не применять предобучение без учителя технологию, которую я предложил в 1991 году и которую впоследствии подхватили другие специалисты.Предобучение без учителя значит, что вы обрабатываете данные, чтобы они стали компактнее; тогда последующее обучение с учителем становится проще.В 2007 году один известный исследователь сказал, что никто в здравом уме и твердой памяти не предложит использовать для обучения глубокой нейросети градиентный спуск, реализованный через обратное распространение ошибки. Не будем упоминать этого известного ученого по имени скажем только, что это был доктор Хинтон.Но моя команда, в которую входил мой выдающийся научный сотрудник Дан Кирешан, в 2010 году доказала, что это возможно: реально обучить действительно глубокие сети методом обратного распространения ошибки, не обращаясь к предобучению без учителя.Тогда наша команда побила известный рекорд, который держался на протяжении десятилетий. Мы смогли добиться такого результата, значительно ускорив традиционные многослойные персептроны на параллельных графических процессорах, развив важную работу о графических процессорах Чона и О, которые в 2004 году первыми реализовали нейронные сети на графических процессорах.В 2010 году они стали достаточно мощными для обучения глубоких сетей, которые раньше считались необучаемыми. В одном обзоре говорилось, что это пробудило сообщество разработчиков машинного обучения от спячки, и после этого все занялись этой темой. В 2010 году эта революция в глубоком обучении быстро охватила Европу, Северную Америку и Азию. Полученный нами результат подготовил почву для последующего десятилетия разработок в области глубокого обучения. В 2011 году наша команда перенесла этот подход на глубокие сверточные нейронные сети, о которых мы говорили ранее, и это сильно улучшило результаты.Наша DanNet, названная в честь Дана Кирешана, ведущего автора этих публикаций, била один рекорд за другим. В мае 2011 DanNet стала первой глубокой сверточной сетью, которая выиграла соревнование по компьютерному зрению. В августе 2011 года она стала первой сверточной сетью, которая выиграла такое соревнование, продемонстрировав более высокий результат, чем человек. Наша команда, в составе которой был Дан Кирешан, Ули Майер и другие разработчики, и дальше побеждала на соревнованиях по компьютерному зрению в 2012 году в медицинской визуализации и других областях. Впоследствии многие исследователи переняли эту технологию.К маю 2015 года мы создали первую сверхглубокую нейронную сеть прямого распространения, в которой было не 10, не 20, не 30, а более 100 слоев. Это были магистральные сети (highway networks), реализованные моими студентами Рупешом Сриваставой и Клаусом Греффом. Частный случай такой сети называется ResNet она стала весьма популярной.Наш изначальный успех был основан на точном понимании работы графических процессоров, однако сегодня появился специальный софт, который позволяет пользователю обойтись без таких деталей. Сегодня вычисления обходятся в 100 раз дешевле, чем в 2010 году, когда нам посчастливилось положить начало этим разработкам.
Источник: postnauka.ru
К списку статей
Опубликовано: 16.11.2020 18:18:12
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Общее

Категории

Последние комментарии

© 2006-2020, umnikizdes.ru