Машинное обучение. Нейронные сети глубокого обучения. К.В. Воронцов, Школа анализа данных, Яндекс.
58 пунктов из 89 мин видео · читать 5 мин
Смотреть видео на YouTube →Кратко
В этом видео рассматриваются основы глубокого обучения и нейронных сетей, включая свёрточные и рекуррентные сети. Лекция предназначена для студентов и специалистов в области искусственного интеллекта.
Главные мысли
- Глубокие нейронные сети значительно улучшили качество распознавания изображений и обработки данных.
Введение в глубокое обучение0:30
История распознавания изображений1:12
- Методы, которые использовались для распознавания изображений, начиная с пятидесятых годов прошлого века, основаны на инженерном подходе к извлечению признаков.1:12
- Под каждое приложение люди придумывали признаки, которые наиболее адекватным образом позволяли бы перевести бинарное растровое изображение в вектор фиксированного размера.1:36
- Яркости пикселей на изображениях тоже являются признаками, но они слишком сырые и неудобные для работы.1:50
- Пиксель очень сильно зависит от его ближайших соседей, и если эти зависимости учесть, то можно применять обычное машинное обучение.2:02
- Как учесть взаимозависимости признаков и свернуть их в один вектор — это очень нетривиальный вопрос, который десятилетиями исследовался в компьютерном зрении.2:23
Свёрточные нейронные сети3:16
- Свёрточная нейронная сеть использует свёртку для анализа изображений, что является одной из старых идей.3:16
- Свёртка заключается в усреднении яркости пикселей вокруг отдельного пикселя.3:29
- Исходное изображение обозначается как и и джита, где пиксели определяют взвешенную сумму окрестных точек.3:50
- Весовые коэффициенты дубль вэ а б определяют, с какими весами берутся соседние пиксели.4:24
- Весовые коэффициенты можно посчитать как гаусскую шапочку, которая убывает с расстоянием от центрального пикселя.4:30
- Дубль вэ а б представляет собой матрицу параметров в свёртке.4:50
Пулинг и его применение6:31
- Пулинг, или объединяющий слой, является необучаемой свёрткой, которая агрегирует значения в более крупные блоки, применяя функцию усреднения.6:31
- Можно использовать среднее арифметическое, но очень хорошо использовать максимум, что делает макс-пулинг эффективным.6:53
- Размерность вектора, который хранится в каждом пикселе, может быть увеличена за счёт количества свёрток, которые мы применяем.8:30
- Пулинг резко уменьшает размерность картинки, но размерность вектора в каждом пикселе остаётся.8:59
Архитектура нейронных сетей9:46
- Конструкция, изображённая на слайде, представляет собой один слой нейронной сети.9:46
- В 2012 году Джеффри Хинтон и его аспиранты предложили использовать глубокую нейронную сеть с семью слоями на конкурсе ImageNet.10:20
- Размерность вектора, сидящего в каждом пикселе, последовательно увеличивается, в то время как размер изображения уменьшается.10:43
- Исходное изображение размером 224 на 224 уменьшается до 13 на 13.11:00
- Векторное описание имеет размерность 4096 и подаётся на полносвязную нейронную сеть из двух или трёх слоёв.11:14
Конкурс ImageNet и его значение13:16
- Исходная идея ImageNet заключалась в разметке порядка миллиона изображений для обучения нейронных сетей, аналогично тому, как ребенок учится распознавать объекты.13:16
- В 2011 году стартовал конкурс ImageNet с миллионом размеченных изображений, который сейчас включает уже около 20 миллионов изображений.14:21
- Уровень ошибок в начале конкурса составлял порядка 25-30%, но благодаря работе Джеффри Хинтона и AlexNet удалось снизить его почти в два раза.15:09
- На данный момент уровень ошибок в распознавании изображений алгоритмами составляет около 2%, что лучше, чем у человека, который ошибается в 5% случаев.16:04
Глубокие нейронные сети и их преимущества17:14
- Человеческий мозг содержит примерно 10-20 слоёв, что объясняет глубину естественных нейронных сетей.17:14
- Дополнительные слои в нейронных сетях необходимы для обработки сложноустроенных сырых данных, таких как изображения или звуковые сигналы.17:40
- Двухслойная нейронная сеть может аппроксимировать любую функцию, но дополнительные слои помогают превратить сырые сигналы в признаки для решения задач.18:04
Рекуррентные нейронные сети18:41
- Свёрточная нейронная сеть является математической моделью функционирования сетчатки глаза и зрительного нерва.18:41
- Количество параметров, которые обучались в свёрточной нейронной сети, составило 60 миллионов.19:58
- Использование Dropout и Batch Normalization способствует улучшению обучения нейронных сетей.20:53
- Augmentation позволяет радикально упростить задачу создания инвариантных признаков, генерируя множество преобразований изображений.23:28
- Свёрточные нейронные сети могут использоваться для обработки текстов, где каждое слово сопоставляется вектору числовой заданной размерности.26:15
- В свёрточных нейронных сетях для изображений и текстов используются специфические архитектуры, отражающие локальность связей в задаче.27:45
Обучение рекуррентных сетей29:57
- Когда происходит свёртывание, мы заменяем центр локальной окрестности вместе со всей локальной окрестностью одной точкой, обогащая векторное описание.29:57
- Размерность вектора, который сидит в каждом элементе, увеличивается от слоя к слою, пока всё изображение не сожмётся в одну точку.30:31
- Идея свёрточных сетей может быть распространена на любые объекты, если на них вводится понятие окрестности.31:28
- Макс-пулинг выбирает максимальный элемент из окрестности, что вводит инвариантность относительно сдвигов в архитектуру сети.34:31
- Предобученные сети, такие как те, что обучены по ImageNet, используются для извлечения информативных признаков из изображений.36:51
- Transfer Learning позволяет использовать часть архитектуры нейронной сети для решения других задач без изменений.43:26
Векторные представления слов43:59
- Рекуррентная нейронная сеть (RNN) предназначена для обработки последовательностей данных.43:59
- Скрытое состояние h_t в RNN описывает всю предысторию до момента времени t.45:44
- Модель RNN должна учитывать всю предысторию, которая была вплоть до момента времени t.45:39
- Оптимизационная задача для обучения RNN заключается в минимизации функции потерь на всей обучающей выборке.50:28
- Для обучения RNN используется метод, похожий на стохастический градиент, но с фиксированным порядком обработки последовательности.51:53
- Рекуррентные сети применяются в прогнозировании временных рядов, управлении технологическими процессами и анализе текстов.52:35
- LSTM (Long Short Term Memory) — это разновидность рекуррентных нейронных сетей, которая сохраняет важную информацию о долгой предыстории.58:54
- LSTM использует два вектора состояния: h_t для текущего состояния и c_t для хранения важной информации.1:00:45
- Гипотеза дистрибутивности утверждает, что смысл слова определяется всеми контекстами, в которых это слово появляется.1:14:50
- Word2Vec — это программа, разработанная Томасом Миколовым из Гугла, для создания векторных представлений слов.1:23:04
Заключение и вопросы1:26:02
- ОАТ это штуковина, которая формирует выходной сигнал, фильтр выходных данных.1:26:02
- HT, который формируется на выходе, ограничен от минус единицы до плюс единицы.1:26:30
- Output gate является классификатором, который говорит, какие координаты вектора CT передать в HT, а какие сделать близкими к нулю.1:27:35
- Если OT на выходе сигмоидной функции получается число, стремящееся к нулю, это означает, что мы соответствующую координату в векторе CT начинаем игнорировать.1:27:55
- Информация о том, какие части вектора надо игнорировать, должна быть заложена в F от T и от T.1:28:10
- Output gate, если он обнулил какую-то координату, на самом деле, эта информация не потеряна навсегда, она на следующей итерации будет использована.1:28:54
Выводы
- Глубокие нейронные сети не только улучшают качество распознавания, но и позволяют извлекать более сложные признаки из данных.
Что сделать
- Изучить архитектуры свёрточных и рекуррентных нейронных сетей для применения в своих проектах.