Чтение онлайн

на главную - закладки

Жанры

Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:

Несколько слов о самой сети AlexNet. Сеть состоит из пяти двумерных (на самом деле сами тензоры при этом трёхмерные, поскольку к двум пространственным измерениям добавляется ещё наличие трёх цветовых каналов, однако число каналов в изображении равно числу каналов в ядрах свёртки, поэтому сама свёртка является двумерной) свёрточных и трёх полносвязных слоёв. Причём на выходах из первого, второго и пятого слоёв в целях сокращения размерности применяется максимизирующий пулинг [1847] .

1847

Krizhevsky A., Sutskever I., Hinton G. E. (2012). ImageNet Classification with Deep Convolutional Neural Networks / Advances in Neural Information Processing Systems 25 (NIPS 2012) // https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

Рис. 118. Схема сети AlexNet

Первая особенность AlexNet, отличающая её от разных версий LeNet, применявшихся на MNIST, заключается в том, что, поскольку сеть должна работать с цветными изображениями, все её свёрточные ядра не двумерные, а трёхмерные. Третьим измерением становится число цветовых каналов, в данном случае три — красный, зелёный и синий [1848] .

Вторая интересная особенность AlexNet — использование в качестве функции активации:
f(x) = max(0,x)
. По-английски такая функция называется rectifier — выпрямитель.

1848

Bai K. (2019). A Comprehensive Introduction to Different Types of Convolutions in Deep Learning: Towards intuitive understanding of convolutions through visualizations / Towards Data Science, Feb 12, 2019 // https://towardsdatascience.com/a-comprehensive-introduction-to-different-types-of-convolutions-in-deep-learning-669281e58215

В наши дни для обозначения элемента нейронной сети, выполняющего подобное преобразование, обычно используют аббревиатуру ReLU (rectified linear unit, выпрямляющий линейный блок). Эта функция активации для нейронных сетей была впервые предложена [1849] швейцарским исследователем Рихардом Ханлозером и его коллегами в статье, опубликованной в Nature в 2000 г. В 2011 г. Ксавье Глоро, Антуан Борд и Йошуа Бенджио продемонстрировали [1850] , что использование этой функции активации позволяет более эффективно обучать глубокие нейронные сети по сравнению с более популярными ранее логистической функцией и гиперболическим тангенсом. И в наши дни ReLU остаётся самой популярной функцией активации в глубоких нейронных сетях, хотя с тех пор было изобретено немало [1851] интересных альтернатив, таких, например, как LReLU, CReLU, PReLU, SELU и даже ReLU-6.

1849

Hahnloser R. H. R., Sarpeshkar R., Mahowald M. A., Douglas R. J., Seung S. (2000). Digital selection and analogue amplification coexist in a cortex-inspired silicon circuit / Nature, Vol. 405, pp. 947—951 // https://doi.org/10.1038/35016072

1850

Glorot X., Bordes A., Bengio Y. (2011). Deep Sparse Rectifier Neural Networks. / Journal of Machine Learning Research 15 (2011), pp. 315-323 // https://proceedings.mlr.press/v15/glorot11a/glorot11a.pdf

1851

Liu D. (2017). A Practical Guide to ReLU: Start using and understanding ReLU without BS or fancy equations // https://medium.com/@danqing/a-practical-guide-to-relu-b83ca804f1f7

Мне кажется, что замена логистической функции на ReLU концептуально более всего похожа на выпуск Илоном Маском автомобиля Tesla Cybertruck.

Среди радикальных преимуществ ReLU — вычислительная «дешевизна» этой активационной функции «в стиле панк». Бонусом к ней идёт простота имплементации этой операции на GPU.

Рис. 119. Различные функции активации

Веса AlexNet были инициализированы белым гауссовским шумом, после чего сеть обучалась при помощи стохастического градиентного спуска на двух GPU Nvidia GTX 580 в течение примерно недели [1852] .

1852

Krizhevsky A., Sutskever I., Hinton G. E. (2012). ImageNet Classification with Deep Convolutional Neural Networks (Slides) // http://image-net.org/challenges/LSVRC/2012/supervision.pdf

На самом деле, очень многое зависит от того, как именно инициализируются значения синаптических весов.

Казалось бы, почему просто не присваивать весам на старте нулевые значения? Ну или заполнять их случайным образом, не заботясь о параметрах распределения? Оказывается, соотношения значений весов в различных слоях существенно влияют на поведение градиентов при использовании метода обратного распространения ошибки, на их тенденцию исчезать или, напротив, «взрываться». Для того чтобы добиться наиболее благоприятной для последующего обучения ситуации с градиентами, было придумано несколько различных схем инициализации синаптических весов [1853] . Например, инициализация Ксавье [Xavier] (она же инициализация Глоро [Glorot], поскольку названа в честь Ксавье Глоро) [1854] , инициализация Хе [1855] (в честь Каймина Хе), а также инициализация Каймина [Kaiming] (как несложно догадаться, также в честь Каймина Хе, но, в отличие от Глоро, Хе удалось изобрести два разных способа инициализации, поэтому инициализация Хе — это не то же самое, что инициализация Каймина!) [1856] . Разные способы инициализации являются оптимальными в зависимости от различных функций активации, применяемых в слоях нейронной сети [1857] . В наши дни для инициализации синаптических весов искусственных нейронных сетей нередко используют и более «интеллектуальные» алгоритмы, такие, например, как предложенный в 2021 г. GradInit [1858] , который пересчитывает параметры распределения случайных значений в каждом из слоёв сети таким образом, чтобы первый шаг оптимизации привёл к максимальному улучшению значения целевой функции.

1853

Godoy D. (2018). Hyper-parameters in Action! Part II — Weight Initializers / Towards Data Science, Jun 18, 2018 // https://towardsdatascience.com/hyper-parameters-in-action-part-ii-weight-initializers-35aee1a28404

1854

Glorot X., Bengio Y. (2010). Understanding the difficulty of training deep feedforward neural networks / Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics, Journal of Machine Learning Research, Vol. 9, pp. 249—256 // http://www.jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf

1855

He K., Zhang X., Ren S., Sun J. (2015). Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification / Proceedings of the 2015 IEEE International Conference on Computer Vision (ICCV), pp. 1026—1034 // https://doi.org/10.1109/ICCV.2015.123

1856

Liang X. (2019). Understand Kaiming Initialization and Implementation Detail in PyTorch: Initialization Matters! Know how to set the fan_in and fan_out mode with kaiming_uniform_ function / Towards Data Science, Aug 7, 2019 // https://towardsdatascience.com/understand-kaiming-initialization-and-implementation-detail-in-pytorch-f7aa967e9138

1857

Godoy D. (2018). Hyper-parameters in Action! Part II — Weight Initializers / Towards Data Science, Jun 18, 2018 // https://towardsdatascience.com/hyper-parameters-in-action-part-ii-weight-initializers-35aee1a28404

1858

Zhu C., Ni R., Xu Z., Kong K., Huang W. R., Goldstein T. (2021). GradInit: Learning to Initialize Neural Networks for Stable and Efficient Training // https://arxiv.org/abs/2102.08098

AlexNet

содержит порядка 650 000 искусственных нейронов, примерно 630 млн соединений между ними и около 60 млн параметров [1859] , [1860] . Рецептивный слой сети содержит 227 x 227 x 3 нейронов. Для обучения сети каждое изображение из базы ImageNet сначала было уменьшено таким образом, чтобы его меньшее измерение стало равно 256 пикселям, а затем из центра получившейся картинки вырезался фрагмент размером 256 x 256. Из полученного набора квадратных картинок при обучении сети на её вход передавался случайно выбранный фрагмент изображения размером 227 x 227 пикселей. Также для увеличения количества прецедентов применялось горизонтальное отражение изображений. В оригинальных слайдах Крижевского к его докладу, сделанному по результатам ILSVRC-2012, размер окна указан равным 224 x 224 пикселей, а также указано неправильное количество нейронов в первом свёрточном слое (253 440 вместо 290 400). По всей видимости, это стало следствием банальных опечаток, но в итоге в будущем внесло смятение в молодые умы начинающих специалистов в области глубокого обучения [1861] , [1862] .

1859

Krizhevsky A., Sutskever I., Hinton G. E. (2012). ImageNet Classification with Deep Convolutional Neural Networks / Advances in Neural Information Processing Systems 25 (NIPS 2012) // https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

1860

Krizhevsky A., Sutskever I., Hinton G. E. (2012). ImageNet Classification with Deep Convolutional Neural Networks (Slides) // http://image-net.org/challenges/LSVRC/2012/supervision.pdf

1861

Karpathy A. CS231n Convolutional Neural Networks for Visual Recognition (Stanford CS class) // http://cs231n.github.io/convolutional-networks/

1862

Girard R. (2015). How does Krizhevsky's '12 CNN get 253,440 neurons in the first layer? / StackExchange // https://stats.stackexchange.com/questions/132897/how-does-krizhevskys-12-cnn-get-253-440-neurons-in-the-first-layer

Если когда-нибудь столкнётесь с чем-нибудь подобным, ни в коем случае не падайте духом!

Все изображения были также подвергнуты нормализации, для чего из каждой цветовой компоненты каждого пикселя картинки вычиталось среднее значение этой компоненты для всего датасета. Грубо говоря, авторы вычли из каждой конкретной картинки усреднённую картинку.

Для полносвязных слоёв сети при обучении применялась техника так называемого прореживания [dropout]. Суть этого метода заключается в том, что каждый из нейронов с некоторой вероятностью (в данном случае — 50%) отключается, то есть передаёт на выход нулевое значение. Эта методика позволяет обычно получать более устойчивые модели, а также избегать переобучения.

Переобучение [overfitting] — одна из типичных проблем, встречающихся при решении задач машинного обучения. Внешне ситуация выглядит следующим образом. По мере обучения вашей модели величина ошибки на обучающей выборке продолжает падать, однако на тестовой выборке начинает расти. Иногда говорят, что модель заучивает конкретные примеры из обучающей выборки вместо того, чтобы находить признаки, необходимые для успешной классификации. Причина переобучения обычно кроется в чрезмерном количестве параметров модели относительно имеющегося размера обучающей выборки. Исследованию проблемы переобучения посвящено множество работ, а для борьбы с ним, помимо прореживания, разработано множество методик, таких как, например, регуляризация (добавление к целевой функции некоторого штрафа за определённые свойства параметров модели: например, если за каждый ненулевой параметр модели начислять штраф, прямо пропорциональный абсолютному значению этого параметра, то такой метод называется «регуляризация L1», а если штраф пропорционален квадрату параметра, то это уже «регуляризация L2»); ранняя остановка (просто прекращаем обучение модели, если величина ошибки на тестовой выборке начала расти); аугментация (augmentation — увеличение, приумножение) обучающей выборки (дополняем обучающую выборку изображениями, повёрнутыми на некоторые случайные углы, дополненные некоторым шумом или изуродованные ещё каким-либо оригинальным образом, при условии что внесённые искажения не изменят метку класса) и так далее. Переобучению также посвящено множество мемов, популярных в сообществе специалистов по машинному обучению.

6.2.1.3 Предшественники AlexNet

Надо заметить, что AlexNet не была первой свёрточной сетью, для ускорения обучения которой использовались GPU. Более того, победа AlexNet на ILSVRC-2012 не была первой победой такой сети на соревнованиях по распознаванию изображений.

Немного расскажем о предшественниках сети AlexNet и их результатах.

Ещё в 2006 г. Кумар Челлапилла, Сидд Пьюри и Патрис Симар добились примерно четырёхкратного ускорения обучения сети по сравнению с CPU при помощи видеокарты Nvidia GeForce 7800 Ultra. Правда, применение для CPU библиотеки BLAS (basic linear algebra subroutines, базовые подпрограммы линейной алгебры), содержащей оптимизированные на низком уровне процедуры для выполнения операций линейной алгебры, позволяло достичь примерно троекратного прироста скорости и на CPU.

Эксперименты производились на датасетах MNIST и Latin. Последний содержал изображения 94 символов (заглавные и строчные буквы латинского алфавита, цифры, скобки, знаки препинания и арифметических операций, а также некоторые используемые в англоязычных текстах символы). В ходе экспериментов использовались различные размеры изображений, подаваемых на вход сети: 29 x 29, 37 x 37, 61 x 61 [1863] .

В 2009 г. свет увидела работа немецких учёных Фабиана Нассе, Гернота Финка (оба из Технического университета Дортмунда) и Кристиана Турау (из Фраунгоферовского института интеллектуального анализа и информационных систем, Fraunhofer-Institut fur Intelligente Analyse- und Informationssysteme, Fraunhofer IAIS) под названием «Определение лиц при помощи свёрточных нейронных сетей на базе GPU» (Face Detection Using GPU-Based Convolutional Neural Networks). В этой работе авторы использовали приближение гиперболического тангенса при помощи рядов Тейлора и в итоге, применив видеокарту Nvidia GeForce 8800 GT, смогли достичь ускорения обучения по сравнению с CPU в 11–13 раз. Эксперименты были поставлены на собственном датасете, содержавшем 12 000 изображений (на половине из них присутствовали лица). На вход сети подавались изображения размером 32 x 32 пикселя [1864] .

1863

Chellapilla K., Puri S., Simard P. (2006). High performance convolutional neural networks for document processing / International Workshop on Frontiers in Handwriting Recognition, 2006 // https://hal.inria.fr/inria-00112631

1864

Nasse F., Thurau C., Fink G. A. (2009). Face Detection Using GPU-Based Convolutional Neural Networks / International Conference on Computer Analysis of Images and Patterns, CAIP 2009 // https://doi.org/10.1007/978-3-642-03767-2_10

Поделиться:
Популярные книги

Недотрога для темного дракона

Панфилова Алина
Фантастика:
юмористическое фэнтези
фэнтези
сказочная фантастика
5.00
рейтинг книги
Недотрога для темного дракона

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Сын Тишайшего

Яманов Александр
1. Царь Федя
Фантастика:
попаданцы
альтернативная история
фэнтези
5.20
рейтинг книги
Сын Тишайшего

Стеллар. Заклинатель

Прокофьев Роман Юрьевич
3. Стеллар
Фантастика:
боевая фантастика
8.40
рейтинг книги
Стеллар. Заклинатель

Голодные игры

Коллинз Сьюзен
1. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.48
рейтинг книги
Голодные игры

Мифы Древней Греции

Грейвз Роберт Ранке
Большие книги
Старинная литература:
мифы. легенды. эпос
9.00
рейтинг книги
Мифы Древней Греции

Купчиха. Трилогия

Стриковская Анна Артуровна
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Купчиха. Трилогия

Правильный попаданец

Дашко Дмитрий Николаевич
1. Мент
Фантастика:
альтернативная история
5.75
рейтинг книги
Правильный попаданец

Законы Рода. Том 6

Андрей Мельник
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Идеальный мир для Лекаря 23

Сапфир Олег
23. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 23

Вечный. Книга V

Рокотов Алексей
5. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга V

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Изгой Проклятого Клана

Пламенев Владимир
1. Изгой
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Изгой Проклятого Клана

Идеальный мир для Лекаря 11

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11