остаточная сеть

глубокое обучение

остаточная сеть

Остаточная сеть (остаточная сеть, именуемая ResNet) была предложена в 2015 году вслед за тремя классическими сетями CNN Alexnet Googlenet VGG и вышла на первое место в задаче классификации конкурса ImageNet Широко используются области обнаружения, сегментации, распознавания и других.
Можно сказать, что ResNet является самой новаторской работой в области компьютерного зрения и глубокого обучения за последние несколько лет.Он эффективно решает проблему снижения точности обучающего набора по мере углубления сети, как показано на следующем фигура:

image.png
image.png

Fig. 1
На рисунке производительность обычной нейронной сети с 56 слоями на обучающем наборе значительно хуже, чем у 20-слойной, что приводит к относительно низкой производительности на тестовом наборе.

Студенты, прошедшие глубокое обучение, должны знать, что по мере увеличения количества слоев сети одной из причин ухудшения эффекта обучения является проблема градиентного рассеивания и градиентного взрыва (исчезающих/взрывающихся градиентов), что тормозит сходимость неглубоких сетевые параметры. . Однако эта проблема лучше решается некоторыми методами инициализации параметров.Заинтересованные студенты могут прочитать следующие статьи [2][3][4][5][6].
Но даже в этом случае, когда глубина сети высока (например, 56-уровневая сеть на рисунке), все еще будет проблема низкой производительности.Мы можем видеть в предыдущих трех моделях Alexnet Googlenet VGG, что глубина сеть на картинке. Она играет решающую роль в распознавании . Чем глубже глубина, тем больше функций на разных уровнях может быть изучено автоматически. Так в чем же причина более плохого эффекта?
Сторонник ResNet сделал предположение, что если глубокую сеть можно обучить как мелкую сеть плюс при обучении кучу сетей сопоставления удостоверений, то результирующая глубокая сеть будет иметь ошибку обучения, она не будет выше, чем у этой мелкой сети , поэтому корень проблемы может заключаться в том, что, когда глубина сети больше, многослойная нелинейная сеть сталкивается с трудностями при подгонке карты идентичности, поэтому предлагается разработать модель «быстрых соединений», чтобы помочь подгонке нейронной сети. , как показано на следующем рисунке:
image.png

Рис. 2
Предположение
функция, которую мы окончательно подгоним, то пусть
в
представляет функцию, соответствующую обычной сети с накоплением,
является входом, а функция активации обычной сети использует функцию ReLU. Очень простая структура, вся сеть — это обычная сеть плюс сопоставление идентификаторов, обычная сеть — это только часть всей сети (
), откуда и произошло название Residual. Из вышеприведенной структуры можно получить формулу:
, , , , , , , ,

здесь
это выход,
вход,
- функция, которую должна выполнять сеть между начальной и конечной точками «короткого замыкания» на рисунке,

первый
Матрица коэффициентов слоя. На рисунке используется обычная сеть, но также применима структура сверточной сети. Одна вещь, которую следует отметить в отношении этой формулы, заключается в том, что вход и выход здесь могут иметь разную размерность, и для решения этой проблемы необходимо линейное отображение:
     
       

здесь
также является матрицей коэффициентов.
Давайте посмотрим на сравнение между структурой 34-слойной ResNet, разработанной автором, и структурой сети VGG (сеть, используемая в конкурсе, достигла 152 слоев):
image.png

Fig. 3
Расчетный объем модели VGG с 19 слоями слева составляет 19,6 млрд FLOP, а расчетный объем обычной сверточной сети с 34 слоями в середине составляет 3,6 млрд FLOP.
Справа — расчет ResNet для 34 слоев, что составляет 3,6 млрд FLOP.Сплошная стрелка на рисунке — прямое сопоставление без размерных изменений, а пунктирная линия — сопоставление с размерными изменениями. Для сравнения видно, что, хотя VGG имеет небольшое количество слоев, объем вычислений все еще очень велик.Позже мы можем увидеть на основе экспериментальных данных, что производительность 34-слойного ResNet будет лучше, чем у 19-слойный.
Более подробная структура показана ниже (включая некоторые ResNets с большим количеством слоев):
image.png

Fig. 4

Хотя остаточная сеть очень проста по структуре и принципу, она хорошо работает и решает проблему, заключающуюся в том, что эффект ухудшается с увеличением глубины.Ниже приведены экспериментальные данные:
image.png
Рис. 5
Это сравнение между обычной сетью (слева) и остаточной сетью (справа).Тонкая линия на рисунке представляет ошибку обучения, толстая линия представляет ошибку теста, синяя — 18 слоев, а красная — 34 слоя. . Из рисунка видно, что у обычной сети есть проблема, заключающаяся в том, что более глубокая сеть менее эффективна, чем мелкая сеть, но остаточная сеть заключается в том, что чем больше количество слоев, тем лучше эффект.
image.png

Fig. 6
Это остаточная сеть, VGG и GoogleNet измеряются в наборе данных ImageNet, первая ошибка представляет вероятность неправильной классификации в 1000 категориях, а первая 5 ошибка представляет собой наиболее вероятный класс, полученный сетью в 1000 категориях. до сих пор нет правильного класса из 5 классов. 34 слоя A, B и C на рисунке относятся к трем решениям, принятым, когда размеры между сверточными слоями становятся высокими в вышеупомянутой проблеме несогласованных входных и выходных размеров, A - заполнить все увеличенные размеры 0 . . . (заполнение нулями) B должен сохранить исходный ввод, а добавленное измерение заполняется линейной картой. C заключается в линейном отображении всех входных данных и добавлении их к выходным данным.
Из рисунка видно, что по эффекту 34-слойная остаточная сеть лучше, чем VGG и GoogleNet.Среди трех схем A, B и C наилучший эффект имеет схема C, но схемы B и C более требовательна к вычислительным ресурсам, чем схема А. Она намного больше, а эффект очень мал, поэтому автор статьи предполагает, что практичнее использовать схему А.
Ниже мы представляем структуру остаточных сетей со слоями 50 и выше: более глубокие архитектуры узких мест. Эта структура разработана автором для сокращения времени обучения, сравнение структур показано на следующем рисунке:
image.png

Fig. 7
Левая сторона рисунка — это общая структура, используемая 34 слоями ResNet, а правая сторона — структура узкого места, используемая 50 слоями и выше.
Структура узкого места здесь имеет два 1X1, но количество каналов 64 и 256, первое — уменьшить входную размерность с 256 каналов до 64 каналов, а вторая — увеличить размерность с 64 каналов до 256 каналов. Посередине — обычная сверточная сеть 3X3, а конечная общая сумма вычислений аналогична сумме слева. Преимущество такой структуры заключается в том, что адаптация размеров завершается одновременно со сверткой, а входные данные могут быть напрямую добавлены к выходным, что может сократить объем вычислений почти вдвое. На рисунке 5 представлена ​​вся структура 50-уровневой сети, а общее количество вычислений составляет 3,8 миллиарда FLOP, что всего на 0,2 миллиарда больше, чем у 34-уровневой сети.
Точно так же на Рисунке 4 и Рисунке 5 видно, что 101-уровневая и 152-уровневая остаточные сети также используют эту структуру для вычисления меньшей, чем 16-уровневая VGG, и гораздо более высокой, чем VGG по точности.

Суммировать:

ResNet решает проблему деградации глубоких сетей за счет остаточного обучения, позволяя нам обучать более глубокие сети, что можно считать историческим прорывом в глубоких сетях. Возможно, скоро появится лучший способ тренировать более глубокие сети, давайте с нетерпением ждем этого вместе!
В настоящее время вы можетеПлатформа моделирования ИИ MoНайдите пример реализации 34-уровневой остаточной сети (ResNet) на основе тензорного потока. Набор данных — CIFAR-10 (набор данных десяти классов CIFAR). Точность этого образца на тестовом наборе составляет 90%, а точность на проверочный набор 90% 98%. Основная программа находится в ResNet_Operator.py, блочная структура сети — в ResNet_Block.py, а обученная модель сохраняется в папке результатов.
Адрес исходного кода проекта:Тихо потяните. Может ли 1 из /explore/5...


использованная литература:
[1]K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385,2015.
[2] Ю. ЛеКун, Л. Ботту, Г. Б. Орр и К.-Р. Мюллер, Эффективное обратное распространение, Нейронные сети: хитрости торговли, стр. 9–50, Springer, 1998.
[3] X. Glorot and Y. Bengio. Understanding the difficulty of training deep feedforward neural networks. In AISTATS, 2010.
[4] A. M. Saxe, J. L. McClelland, and S. Ganguli. Exact solutions to the nonlinear dynamics of learning in deep linear neural networks.arXiv:1312.6120, 2013.
[5] К. Хе, X. Чжан, С. Рен и Дж. Сун. Углубление в выпрямители: Превзойти производительность на уровне человека в классификации imagenet, В ICCV, 2015.
[6] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015.

о нас

Mo(URL:momodel.cn) поддерживает PythonПлатформа онлайн-моделирования искусственного интеллекта, который помогает быстро разрабатывать, обучать и развертывать модели.


Клуб искусственного интеллекта МоЭто клуб, созданный командой разработчиков и разработчиков веб-сайта и посвященный снижению порога для разработки и использования искусственного интеллекта. Команда имеет опыт обработки и анализа больших данных, визуализации и моделирования данных, реализовывала многодисциплинарные интеллектуальные проекты и обладает полным спектром возможностей проектирования и разработки от начала до конца. Основными направлениями исследований являются анализ управления большими данными и технологии искусственного интеллекта, и их использование для продвижения научных исследований, основанных на данных.

В настоящее время клуб каждую субботу проводит офлайн-мероприятия технического салона на тему машинного обучения в Ханчжоу, а также время от времени проводит обмен документами и академические обмены. Я надеюсь собрать друзей из всех слоев общества, которые интересуются искусственным интеллектом, продолжать общаться и расти вместе, а также способствовать демократизации и популяризации искусственного интеллекта.

image.png