Архитектура - Часть 2

Более глубокие архитектуры

Навигация

Это конспекты лекции FAU Глубокое обучение на YouTube. Это полный текст лекции и соответствующие слайды. Надеемся, вам понравится это не меньше, чем видео. Конечно, эта стенограмма была создана с помощью методов глубокого обучения в значительной степени автоматически, и были внесены лишь незначительные изменения вручную. Если вы заметили ошибки, сообщите нам об этом!

использованная литература

Предыдущая лекция / Посмотрите это видео / Верхний уровень / Следующая лекция

Добро пожаловать обратно в глубокое обучение! Сегодня я хочу поговорить о второй части архитектуры. Теперь мы хотим углубиться во вторую часть: модели Deeper. Итак, мы видим, что углубление действительно было очень полезно для количества ошибок. Итак, вы можете увидеть результаты на ImageNet здесь. В 2011 году, когда мы использовали неглубокую машину опорных векторов, вы видите, что уровень ошибок был действительно высоким - 25%. AlexNet уже почти сократил его вдвое в 2012 году. Затем Zeiler в 2013 году был следующим победителем с снова восемью слоями. ВГГ в 2014 г .: 19 слоев. GoogleNet в 2014 году: 22 слоя, также почти такая же производительность. Итак, вы можете видеть, что чем больше мы увеличиваем глубину, тем лучше становится производительность. Мы видим, что осталось совсем немного запаса, чтобы превзойти человеческие возможности.

Кажется, что глубина играет ключевую роль в построении хороших сетей. Почему это могло быть так? Одна из причин, по которой эти более глубокие сети могут быть очень эффективными, - это то, что мы называем экспоненциальным повторным использованием функций. Итак, здесь вы можете увидеть, было ли у нас только две функции. Если мы сложим нейроны сверху, вы увидите, что количество возможных путей экспоненциально увеличивается. Итак, с двумя нейронами у меня есть два пути. С другим слоем нейронов у меня есть ²² путей. С тремя слоями ²³ paths, ² paths и так далее. Таким образом, более глубокие сети, кажется, каким-то образом могут повторно использовать информацию из предыдущих уровней. Мы также можем увидеть это, если посмотрим на то, что они делают. Если мы создадим эти визуализации, мы увидим, что они все чаще строят более абстрактные представления. Итак, мы каким-то образом видим, что происходит своего рода модуляризация. Мы думаем, что глубокое обучение работает, потому что мы можем размещать разные части функции на разных позициях. Итак, мы каким-то образом разбиваем обработку на более простые шаги, а затем, по сути, обучаем программу с несколькими шагами, которая способна описывать все более и более абстрактные представления. Итак, здесь мы видим первые слои, возможно, края и пятна. Скажем, слой номер три обнаруживает эти текстуры. Слой номер пять воспринимает части объекта, а слой номер восемь уже классы объектов. Эти изображения здесь созданы на основе визуализаций AlexNet. Итак, вы можете видеть, что это каким-то образом действительно происходит в сети. Это также, вероятно, ключевая причина того, почему глубокое обучение работает. Мы можем распутать функцию, пытаясь вычислить разные вещи в разных положениях.

Что ж, мы хотим углубиться, и одна технология, которая была реализована там, снова - это начальные модули. Улучшенные модули Inception теперь по существу заменяют те фильтры, которые мы видели со свертками 5x5 и 3x3, на множественные из этих заключений. Вместо свертки 5x5 вы выполняете две свертки 3x3 подряд. Это уже сэкономит вам пару вычислений, и вы сможете заменить фильтры 5x5, сложив фильтры сверху. Мы видим, что это действительно работает для самых разных ядер, которые вы можете разделить на несколько этапов за другим. Итак, вы можете их каскадировать. Это каскадирование фильтров - это то, что вы также можете обсудить в типичном классе компьютерного зрения.

Итак, в Inception V2 уже было 42 слоя. По сути, они начинаются с сверток 3x3 и трех модифицированных начальных модулей, подобных тому, который мы только что рассмотрели. Затем на следующем уровне вводится эффективное уменьшение размера сетки с использованием чередующихся сверток. Итак, у вас есть свертки 1x1 для сжатия каналов, свертки 3x3 с шагом 1, за которыми следует свертка 3x3 с шагом 2. Это по существу эффективно заменяет различные операции объединения. Следующая идея заключалась в том, чтобы пять раз ввести модули плоских сверток. Здесь идея состоит в том, чтобы выражать свертки больше не в виде двумерных сверток, а вместо этого вы разделяете их на свертки в направлениях x и y. Вы попеременно производите эти 2 свертки. Как видите, мы начинаем со сверток 1x1 в левой ветви. Затем мы выполняем свертку 1x n, за которой следует свертка n x1, за которой следует свертка 1x n и так далее. Это позволяет нам по существу разбить ядра на два направления. Итак, вы знаете, что, поскольку вы попеременно меняете ориентацию свертки, вы, по сути, разбиваете двумерные свертки с помощью принудительно разделяемых вычислений. Мы также видим, что разделение сверточных фильтров работает для самых разных фильтров. Конечно, это ограничение, поскольку оно не позволяет выполнять все возможные вычисления. Но помните, что в предыдущих слоях у нас есть полные свертки 3x3. Таким образом, они уже могут научиться применять на более поздних уровнях. В результате они могут обрабатываться разделяемыми свертками.

Затем это приводит к Inception V3. Для третьей версии Inception они использовали по существу Inception V2 и представили RMSprop для процедуры обучения, пакетную нормализацию также в полностью связанных слоях вспомогательных классификаторов и регуляризацию сглаживания меток.

Регуляризация сглаживания меток - действительно крутой трюк. Итак, давайте потратим еще пару минут на изучение этой идеи. Теперь, если вы подумаете о том, как обычно выглядят наши векторы меток, у нас есть один вектор горячего кодирования. Это означает, что наш лейбл по сути является дистрибутивом Дирака. По сути, это говорит о том, что один элемент правильный, а все остальные неправильные. Обычно мы используем softmax. Это означает, что наши активации имеют тенденцию стремиться к бесконечности. Это не так уж и здорово, потому что мы продолжаем изучать все большие и большие веса, делая их все более и более экстремальными. Итак, мы можем предотвратить это, если воспользуемся снижением веса. Это предотвратит резкий рост нашего веса. Мы также можем дополнительно использовать сглаживание этикеток. Идея сглаживания меток заключается в том, что вместо использования только импульса Дирака мы как бы размазываем вероятностную массу на другие классы. Это очень полезно, в частности, в таких вещах, как ImageNet, где у вас довольно шумные метки. Итак, вы помните случаи, которые были не совсем понятны. В этих зашумленных случаях с этикетками вы можете видеть, что это сглаживание этикеток действительно может помочь. Идея состоит в том, что вы умножаете свое распределение Дирака на единицу минус небольшое число. Затем вы распределяете ϵ, которые вы вычли из правильного класса, на все другие классы в равной степени. Итак, вы можете видеть, что это просто 1 / K, где K - количество классов. Хорошая вещь в этом сглаживании ярлыков заключается в том, что вы, по сути, препятствуете принятию очень сложных решений. Это действительно помогает в случае шумных этикеток. Это очень хороший трюк, который может помочь вам в построении более глубоких моделей.

В следующий раз мы хотим заняться построением этих действительно глубоких моделей. С учетом того, что мы видели до сих пор, мы бы спросили: почему бы просто не сложить еще больше слоев поверх? Что ж, есть несколько проблем, которые могут возникнуть, если вы попытаетесь это сделать, и мы рассмотрим их причины в следующем видео. Мы также предложим несколько решений для действительно глубокого погружения. Итак, большое спасибо за внимание и до встречи в следующем видео.

Если вам понравился этот пост, вы можете найти больше эссе здесь, больше учебных материалов по машинному обучению здесь или взглянуть на нашу Лекцию Глубокое обучение. Я также был бы признателен за подписку на YouTube, Twitter, Facebook или LinkedIn, если вы хотите получать информацию о новых эссе, видео и исследованиях в будущем. Эта статья выпущена под лицензией Creative Commons 4.0 Attribution License и может быть перепечатана и изменена при наличии ссылки.

[1] Клаус Грефф, Рупеш К. Шривастава и Юрген Шмидхубер. «Магистральные и остаточные сети изучают развернутое итеративное оценивание». В: Международная конференция по обучающим представлениям (ICLR). Тулон, апрель 2017 г. arXiv: 1612.07771.
[2] Каймин Хэ, Сянъю Чжан, Шаоцин Рен и др. «Глубокое остаточное обучение для распознавания изображений». В: Конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), 2016 г. Лас-Вегас, июнь 2016 г., стр. 770–778. arXiv: 1512.03385.
[3] Каймин Хэ, Сянъю Чжан, Шаоцин Рен и др. «Отображения идентичности в глубоких остаточных сетях». В: Компьютерное зрение - ECCV 2016: 14-я Европейская конференция, Амстердам, Нидерланды, 2016, стр. 630–645. arXiv: 1603.05027.
[4] Дж. Ху, Л. Шен и Г. Сунь. «Сети сжатия и возбуждения». В: Электронные отпечатки ArXiv (сентябрь 2017 г.). arXiv: 1709.01507 [cs.CV].
[5] Гао Хуан, Ю Сун, Чжуан Лю и др. «Глубокие сети со стохастической глубиной». В: Computer Vision - ECCV 2016, Proceedings, Part IV. Чам: Springer International Publishing, 2016, стр. 646–661.
[6] Гао Хуан, Чжуан Лю и Килиан К. Вайнбергер. «Плотно связанные сверточные сети». В: Конференция IEEE 2017 года по компьютерному зрению и распознаванию образов (CVPR). Гонолулу, июль 2017 г. arXiv: 1608.06993.
[7] Алекс Крижевский, Илья Суцкевер и Джеффри Э. Хинтон. «Классификация ImageNet с глубокими сверточными нейронными сетями». В: Достижения в системах обработки нейронной информации 25. Curran Associates, Inc., 2012, стр. 1097–1105. arXiv: 1102.0183.
[8] Ян А. ЛеКун, Леон Ботту, Женевьев Б. Орр и др. «Эффективный BackProp». В: Neural Networks: Tricks of the Trade: Second Edition. Vol. 75. Берлин, Гейдельберг: Springer Berlin Heidelberg, 2012, стр. 9–48.
[9] Y LeCun, L Bottou, Y Bengio, et al. «Градиентное обучение применительно к распознаванию документов». В: Протоколы IEEE 86.11 (ноябрь 1998 г.), стр. 2278–2324. arXiv: 1102.0183.
[10] Минь Линь, Цян Чен и Шуйчэн Ян. «Сеть в сети». В кн .: Международная конференция по обучающимся представлениям. Банф, Канада, апрель 2014 г. arXiv: 1102.0183.
[11] Ольга Русаковская, Цзя Дэн, Хао Су и др. «Проблема визуального распознавания большого масштаба ImageNet». В: Международный журнал компьютерного зрения 115.3 (декабрь 2015 г.), стр. 211–252.
[12] Карен Симонян и Эндрю Зиссерман. «Очень глубокие сверточные сети для распознавания крупномасштабных изображений». В: Международная конференция по обучающим представлениям (ICLR). Сан-Диего, май 2015 года. arXiv: 1409.1556.
[13] Рупеш Кумар Шривастава, Клаус Грефф, Урген Шмидхубер и др. «Обучение очень глубоких сетей». В: Достижения в системах обработки нейронной информации 28. Curran Associates, Inc., 2015, стр. 2377–2385. arXiv: 1507.06228.
[14] Ч. Сегеди, Вэй Лю, Янцин Цзя и др. «Углубляясь в извилины». В: Конференция IEEE 2015 года по компьютерному зрению и распознаванию образов (CVPR). Июнь 2015 г., стр. 1–9.
[15] К. Сегеди, В. Ванхаук, С. Иоффе и др. «Переосмысление начальной архитектуры компьютерного зрения». В: Конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), 2016 г. Июнь 2016 г., стр. 2818–2826.
[16] Кристиан Сегеди, Сергей Иоффе и Винсент Ванхаук. «Inception-v4, Inception-ResNet и влияние остаточных соединений на обучение». В: Тридцать первая конференция AAAI по искусственному интеллекту (AAAI-17) Inception-v4, Сан-Франциско, февраль 2017 г. arXiv: 1602.07261.
[17] Андреас Фейт, Майкл Дж. Уилбер и Серж Белонжи. «Остаточные сети ведут себя как ансамбли относительно неглубоких сетей». В: Достижения в системах обработки нейронной информации 29. Curran Associates, Inc., 2016, стр. 550–558. А.
[18] Ди Се, Цзян Сюн и Шилян Пу. «Все, что вам нужно, - это не только хорошая инициатива: поиск лучшего решения для обучения чрезвычайно глубоких сверточных нейронных сетей с ортонормальностью и модуляцией». В: Конференция IEEE 2017 года по компьютерному зрению и распознаванию образов (CVPR). Гонолулу, июль 2017 г. arXiv: 1703.01827.
[19] Линси Се и Алан Юилль. Генетический CNN. Tech. респ. 2017. arXiv: 1703.01513.
[20] Сергей Загоруйко и Никос Комодакис. «Широкие остаточные сети». В: Труды Британской конференции по машинному зрению (BMVC). BMVA Press, сентябрь 2016 г., стр. 87.1–87.12.
[21] К. Чжан, М. Сун, X Хан и др. «Остаточные сети из остаточных сетей: многоуровневые остаточные сети». В: IEEE Transactions on Circuits and Systems for Video Technology PP.99 (2017), p. 1.
[22] Баррет Зоф, Виджай Васудеван, Джонатон Шленс и др. Изучение переносимых архитектур для масштабируемости

Архитектура - Часть 2