NVIDIA Deep Learning.

86
DEEP LEARNING Дмитрий Коробченко Инженер в области глубокого обучения NVIDIA Обучение глубоких нейронных сетей

Transcript of NVIDIA Deep Learning.

Page 1: NVIDIA Deep Learning.

DEEP LEARNING

Дмитрий Коробченко

Инженер в области глубокого обучения

NVIDIA

Обучение глубоких нейронных сетей

Page 2: NVIDIA Deep Learning.

МАШИННОЕ ОБУЧЕНИЕ

Page 3: NVIDIA Deep Learning.

МАШИННОЕ ОБУЧЕНИЕ

Машинное

обучение

Математическая

оптимизация

Статистика

Информатика

Page 4: NVIDIA Deep Learning.

МАШИННОЕ ОБУЧЕНИЕ

Данные

модель

Ответ

Page 5: NVIDIA Deep Learning.

МАШИННОЕ ОБУЧЕНИЕ

Данные

модель

ПараметрыОтвет

Page 6: NVIDIA Deep Learning.

МАШИННОЕ ОБУЧЕНИЕ

Данные

модель

ПараметрыОтвет

Обучение

Page 7: NVIDIA Deep Learning.

МАШИННОЕ ОБУЧЕНИЕ

Данные

Обучение

без учителя

unsupervised

Обучение

с подкреплением

reinforcement

Обучение

с учителем

supervised

Неразмеченные

данные

Данные о

вознаграждении

Данные

с метками

Page 8: NVIDIA Deep Learning.

Регрессия

y

x

?

Классификация

МАШИННОЕ ОБУЧЕНИЕ: ЗАДАЧИ

?

?

?

Page 9: NVIDIA Deep Learning.

Регрессия

y

x

Классификация

МАШИННОЕ ОБУЧЕНИЕ: ЗАДАЧИ

Page 10: NVIDIA Deep Learning.

Регрессия

y

x

Классификация

МАШИННОЕ ОБУЧЕНИЕ: ЗАДАЧИ

Page 11: NVIDIA Deep Learning.

НЕЙРОННЫЕ СЕТИ

Page 12: NVIDIA Deep Learning.

Вход Выход

НЕЙРОННЫЕ СЕТИ

Page 13: NVIDIA Deep Learning.

Нейрон

НЕЙРОННЫЕ СЕТИ

𝒙𝟏

𝒙𝒏

𝒘𝟏

𝑏

𝒘𝒏

𝒙𝒊 𝒘𝒊

Page 14: NVIDIA Deep Learning.

Нейрон

НЕЙРОННЫЕ СЕТИ

𝑦 = 𝑓

𝑖

𝑤𝑖𝑥𝑖 + 𝑏

𝒙𝒏

𝒘𝟏

𝑦

𝒘𝒏

𝒙𝒊 𝒘𝒊

𝒙𝟏

𝑏

Page 15: NVIDIA Deep Learning.

Функция активацииНейрон

НЕЙРОННЫЕ СЕТИ

f(a)

a

f(a)

a

Sigmoid

ReLU

𝑦 = 𝑓

𝑖

𝑤𝑖𝑥𝑖 + 𝑏

𝒙𝒏

𝒘𝟏

𝑦

𝒘𝒏

𝒙𝒊 𝒘𝒊

𝒙𝟏

𝑏

Page 16: NVIDIA Deep Learning.

Многослойный персептронНейрон

𝑦 = 𝑓

𝑖

𝑤𝑖𝑥𝑖 + 𝑏

НЕЙРОННЫЕ СЕТИ

𝐻 = 𝑓 𝑊1𝑋 + 𝐵1

𝑾𝟏 𝑾𝟐

𝑋

𝐻

𝑌

𝑌 = 𝑓 𝑊2𝐻 + 𝐵2

𝒙𝒏

𝒘𝟏

𝑦

𝒘𝒏

𝒙𝒊 𝒘𝒊

𝑩𝟏 𝑩𝟐𝒙𝟏

𝑏

Page 17: NVIDIA Deep Learning.

𝑋𝑘 = 𝑓 𝑊𝑘𝑋𝑘−1 + 𝐵𝑘

Прямое распространение

𝑿𝟎 𝑿𝟏

Слой 1

𝑿𝟐

Слой 2

𝑿𝟑

Слой 3

𝑿𝟒

Слой 4

НЕЙРОННЫЕ СЕТИ

𝑩𝟏

𝑾𝟏

𝑩𝟏

𝑾𝟏

𝑩𝟏

𝑾𝟏

𝑩𝟏

𝑾𝟏

Page 18: NVIDIA Deep Learning.

𝑋𝑘 = 𝑓 𝑊𝑘𝑋𝑘−1 + 𝐵𝑘

Прямое распространение

𝑿𝟎 𝑿𝟏

Слой 1

𝑿𝟐

Слой 2

𝑿𝟑

Слой 3

𝑿𝟒

Слой 4

НЕЙРОННЫЕ СЕТИ

𝑩𝟏

𝑾𝟏

𝑩𝟏

𝑾𝟏

𝑩𝟏

𝑾𝟏

𝑩𝟏

𝑾𝟏

𝑋𝑁 = 𝐺𝑊 𝑋0

Page 19: NVIDIA Deep Learning.

НЕЙРОННЫЕ СЕТИ

?

𝒙𝟏

𝒙𝟐

𝒙𝟑

Page 20: NVIDIA Deep Learning.

НЕЙРОННЫЕ СЕТИ

?

𝒙𝟏

𝒙𝟐

𝒙𝟑𝒙𝟏

𝒙𝟐

𝒙𝟑𝒚𝟐

𝒚𝟏

Page 21: NVIDIA Deep Learning.

НЕЙРОННЫЕ СЕТИ

?

𝒙𝟏

𝒙𝟐

𝒙𝟑𝒙𝟏

𝒙𝟐

𝒙𝟑𝒚𝟐

𝒚𝟏

Page 22: NVIDIA Deep Learning.

НЕЙРОННЫЕ СЕТИ

?

𝒙𝟏

𝒙𝟐

𝒙𝟑𝒙𝟏

𝒙𝟐

𝒙𝟑𝒚𝟐

𝒚𝟏 𝒑𝟏

𝒑𝟐

Page 23: NVIDIA Deep Learning.

НЕЙРОННЫЕ СЕТИ

?

𝒙𝟏

𝒙𝟐

𝒙𝟑𝒙𝟏

𝒙𝟐

𝒙𝟑𝒚𝟐

𝒚𝟏 𝒑𝟏

𝒑𝟐

𝑷

𝑐𝑙𝑎𝑠𝑠

Выход сети - распределение вероятностей

принадлежности к классу

Page 24: NVIDIA Deep Learning.

ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ

Page 25: NVIDIA Deep Learning.

• Обучение с учителем (на примерах)

𝒁𝟏 , 𝑫𝟏

Обучающая

выборка

𝒁𝟐 , 𝑫𝟐

𝒁𝑷 , 𝑫𝑷

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

Page 26: NVIDIA Deep Learning.

• Обучение с учителем (на примерах)

𝒁𝟏 , 𝑫𝟏

Обучающая

выборка

𝒁𝟐 , 𝑫𝟐

𝒁𝑷 , 𝑫𝑷

Обучение

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

Page 27: NVIDIA Deep Learning.

• Обучение с учителем (на примерах)

𝒁𝟏 , 𝑫𝟏

Обучающая

выборка

𝒁𝟐 , 𝑫𝟐

𝒁𝑷 , 𝑫𝑷

Обучение

Найти 𝑊:

𝒁𝒊 𝑫𝒊

𝐺𝑊

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

Page 28: NVIDIA Deep Learning.

• Обучение с учителем (на примерах)

𝒁𝟏 , 𝑫𝟏

Обучающая

выборка

𝒁𝟐 , 𝑫𝟐

𝒁𝑷 , 𝑫𝑷

Обучение

Найти 𝑊:

𝒁𝒊 𝑫𝒊

𝐺𝑊

𝑊∗ = argmin𝑊

𝐸(𝑊)

𝐸 = 𝐷 − 𝐺𝑊(𝑍)2

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

Page 29: NVIDIA Deep Learning.

• Градиентный спуск

• Итерационный процесс

𝑊∗

𝐸

𝑊

−𝜕𝐸

𝜕𝑊

𝑊𝑡+1 = 𝑊𝑡 − 𝛼𝜕𝐸

𝜕𝑊𝑊𝑡

𝑊𝑡

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

Page 30: NVIDIA Deep Learning.

На итерации t:

𝒁𝒕

𝑫𝒕

Образец

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

• Стохастический градиентный спуск

Page 31: NVIDIA Deep Learning.

На итерации t:

𝒁𝒕

𝑫𝒕

Образец 𝑊𝑡

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

• Стохастический градиентный спуск

Page 32: NVIDIA Deep Learning.

На итерации t:

𝒁𝒕

𝑫𝒕

Образец

𝐺𝑊(𝑍𝑡)

𝑊𝑡

Предсказание

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

• Стохастический градиентный спуск

Page 33: NVIDIA Deep Learning.

На итерации t:

𝒁𝒕

𝑫𝒕

Образец

𝐸 = 𝐷𝑡 − 𝐺𝑊 𝑍𝑡2Как сильно мы ошиблись?

𝐺𝑊(𝑍𝑡)

𝑊𝑡

Предсказание

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

• Стохастический градиентный спуск

Page 34: NVIDIA Deep Learning.

На итерации t:

𝒁𝒕

𝑫𝒕

Образец

𝑊𝑡+1 = 𝑊𝑡 − 𝛼𝜕𝐸

𝜕𝑊𝑊𝑡

𝐸 = 𝐷𝑡 − 𝐺𝑊 𝑍𝑡2Как сильно мы ошиблись?

𝐺𝑊(𝑍𝑡)

𝑊𝑡

Предсказание

Поправить веса!

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

• Стохастический градиентный спуск

Page 35: NVIDIA Deep Learning.

𝑬𝜕𝐸

𝜕𝑋4

𝜕𝐸

𝜕𝑊4

𝜕𝐸

𝜕𝑋3

𝜕𝐸

𝜕𝑊3

𝜕𝐸

𝜕𝑋2

𝜕𝐸

𝜕𝑊2

𝜕𝐸

𝜕𝑋1

𝜕𝐸

𝜕𝑊1

Слой 1 Слой 2 Слой 3 Слой 4

НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ

• Обратное распространение ошибки

Page 36: NVIDIA Deep Learning.

?

?

?

?

Данные легко разделимы

НЕЙРОННЫЕ СЕТИ

Page 37: NVIDIA Deep Learning.

СЛОЖНЫЕ ЗАДАЧИ

Page 38: NVIDIA Deep Learning.

Описание

Семантическая

информация

Изображение

Или

Видео

КОМПЬЮТЕРНОЕ ЗРЕНИЕ

Page 39: NVIDIA Deep Learning.

“Котик”

Классификация

КОМПЬЮТЕРНОЕ ЗРЕНИЕ: ЗАДАЧИ

Page 40: NVIDIA Deep Learning.

• Человек

• Собака

• Стул“Котик”

Классификация Детектирование объектов

КОМПЬЮТЕРНОЕ ЗРЕНИЕ: ЗАДАЧИ

Page 41: NVIDIA Deep Learning.

Семантическая сегментация

КОМПЬЮТЕРНОЕ ЗРЕНИЕ: ЗАДАЧИ

Page 42: NVIDIA Deep Learning.

ТРУДНОСТИ

Page 43: NVIDIA Deep Learning.

???

ТРУДНОСТИ

Page 44: NVIDIA Deep Learning.

R

G

B

=

Много неструктурированной информации

ТРУДНОСТИ

Page 45: NVIDIA Deep Learning.

ПРИЗНАКИ

Page 46: NVIDIA Deep Learning.

Признаки

ПРИЗНАКИ

Page 47: NVIDIA Deep Learning.

“Lenna”

Признаки

ПРИЗНАКИ

Page 48: NVIDIA Deep Learning.

“Lenna”

Признаки

ПРИЗНАКИ + НЕЙРОННАЯ СЕТЬ

Page 49: NVIDIA Deep Learning.

СВЕРТКА

𝑾

*

Page 50: NVIDIA Deep Learning.

СВЕРТКА

𝑾

𝑿

*

Page 51: NVIDIA Deep Learning.

СВЕРТКА

𝑾

𝑿

*

𝑦 =

𝑖

𝑤𝑖𝑥𝑖

Page 52: NVIDIA Deep Learning.

СВЕРТКА

𝑾

𝑿

*

𝑦 =

𝑖

𝑤𝑖𝑥𝑖

Page 53: NVIDIA Deep Learning.

СВЕРТКА

*

𝑾

𝑦 =

𝑖

𝑤𝑖𝑥𝑖

Page 54: NVIDIA Deep Learning.

“Lenna”

СВЁРТОЧНАЯ НЕЙРОННАЯ СЕТЬ

Обучаемые

признаки

Page 55: NVIDIA Deep Learning.

Легко“шесть”

ПРОБЛЕМЫ НЕ ЗАКОНЧИЛИСЬ

Page 56: NVIDIA Deep Learning.

Сложно

Легко“шесть”

= ?

ПРОБЛЕМЫ НЕ ЗАКОНЧИЛИСЬ

Page 57: NVIDIA Deep Learning.
Page 58: NVIDIA Deep Learning.

Пиксели ГраницыФрагменты Объекты

ИЕРАРХИЯ ПРИЗНАКОВ

Page 59: NVIDIA Deep Learning.

Пиксели ГраницыФрагменты Объекты

Выделение признаков + Классификация

“Котик”

ИЕРАРХИЯ ПРИЗНАКОВ

ГЛУБОКИЕ НЕЙРОННЫЕ СЕТИ

Page 60: NVIDIA Deep Learning.

DEEP LEARNING

Обучение иерархии признаковых

представлений

Page 61: NVIDIA Deep Learning.

• Свёрточный слой

*

ТИПЫ СЛОЕВ

Page 62: NVIDIA Deep Learning.

• Локальное усреднение

• Локальный максимум

• Понижение размерности (pooling)

ТИПЫ СЛОЕВ

Page 63: NVIDIA Deep Learning.

• Полносвязный слой

ТИПЫ СЛОЕВ

Page 64: NVIDIA Deep Learning.

Свертка СверткаPooling Pooling Полно-связный

ВходВыход

ПРИМЕР СВЁРТОЧНЫЙ НЕЙРОННОЙ СЕТИ

Page 65: NVIDIA Deep Learning.

ПРИЛОЖЕНИЯ

Page 66: NVIDIA Deep Learning.

Brad Pitt

Идентификация Пол, возраст

РАСПОЗНАВАНИЕ ЛИЦ

Page 67: NVIDIA Deep Learning.

УМНЫЕ УСТРОЙСТВА

Page 68: NVIDIA Deep Learning.

ДОПОЛНЕННАЯ РЕАЛЬНОСТЬ

Page 69: NVIDIA Deep Learning.

Диагностика Хирургия

МЕДИЦИНА

Page 70: NVIDIA Deep Learning.

АВТОПИЛОТ

Page 71: NVIDIA Deep Learning.

ДРУГИЕ НЕЙРОННЫЕ СЕТИ

Page 72: NVIDIA Deep Learning.

РЕКУРЕНТНЫЕ НЕЙРОННЫЕ СЕТИ

𝑿𝒕 𝒀𝒕

𝑯𝒕

Page 73: NVIDIA Deep Learning.

РЕКУРЕНТНЫЕ НЕЙРОННЫЕ СЕТИ

𝑿𝒕 𝒀𝒕

𝑯𝒕

𝐻𝑡 = 𝑓 𝑊1𝑋𝑡 +𝑊ℎ𝐻𝑡−1 + 𝐵1

𝑌𝑡 = 𝑓 𝑊2𝐻𝑡 + 𝐵2

Page 74: NVIDIA Deep Learning.

РЕКУРЕНТНЫЕ НЕЙРОННЫЕ СЕТИ

𝑿𝒕 𝒀𝒕

𝑯𝒕

𝐻𝑡 = 𝑓 𝑊1𝑋𝑡 +𝑊ℎ𝐻𝑡−1 + 𝐵1

𝑌𝑡 = 𝑓 𝑊2𝐻𝑡 + 𝐵2

Page 75: NVIDIA Deep Learning.

Умная клавиатура Чат боты

ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА

Мама мыла раму …

Машинный перевод

Page 76: NVIDIA Deep Learning.

Siri

Ok, Google

П… …Р И В Е Т

РАСПОЗНАВАНИЕ РЕЧИ

Page 77: NVIDIA Deep Learning.

“A woman drinking

something near a TV”

ИЗОБРАЖЕНИЕ В ТЕКСТ

Page 78: NVIDIA Deep Learning.

ОБУЧЕНИЕ С ПОДКРЕПЛЕНИЕМ

Page 79: NVIDIA Deep Learning.

ОТ РАСПОЗНАВАНИЯ К СИНТЕЗУ

Page 80: NVIDIA Deep Learning.

WaveNet

“Сегодня отличная погода, на правда ли?”

СИНТЕЗ РЕЧИ И МУЗЫКИ

Page 81: NVIDIA Deep Learning.

Photoshop Deep Learning

СВЕРХ-РАЗРЕШЕНИЕ

Page 82: NVIDIA Deep Learning.

ПЕРЕНОС СТИЛЯ

G

Признаки

Текстурные признаки

Page 83: NVIDIA Deep Learning.

СОСТЯЗАТЕЛЬНЫЕ СЕТИ (GAN)

Генератор Дискриминатор

?

Page 84: NVIDIA Deep Learning.

ТЕКСТ В КАРТИНКУ

Текст Картинки

This flower has white petals and a

yellow stamen

The center is yellow surrounded

by wavy dark purple petals

This flower has lots of small

round pink petals

Page 85: NVIDIA Deep Learning.

КАРТИНКА В КАРТИНКУ

Page 86: NVIDIA Deep Learning.

СПАСИБО