Upload
skolkovo-robotics-center
View
102
Download
0
Embed Size (px)
Citation preview
DEEP LEARNING
Дмитрий Коробченко
Инженер в области глубокого обучения
NVIDIA
Обучение глубоких нейронных сетей
МАШИННОЕ ОБУЧЕНИЕ
МАШИННОЕ ОБУЧЕНИЕ
Машинное
обучение
Математическая
оптимизация
Статистика
Информатика
МАШИННОЕ ОБУЧЕНИЕ
Данные
модель
Ответ
МАШИННОЕ ОБУЧЕНИЕ
Данные
модель
ПараметрыОтвет
МАШИННОЕ ОБУЧЕНИЕ
Данные
модель
ПараметрыОтвет
Обучение
МАШИННОЕ ОБУЧЕНИЕ
Данные
Обучение
без учителя
unsupervised
Обучение
с подкреплением
reinforcement
Обучение
с учителем
supervised
Неразмеченные
данные
Данные о
вознаграждении
Данные
с метками
Регрессия
y
x
?
Классификация
МАШИННОЕ ОБУЧЕНИЕ: ЗАДАЧИ
?
?
?
Регрессия
y
x
Классификация
МАШИННОЕ ОБУЧЕНИЕ: ЗАДАЧИ
Регрессия
y
x
Классификация
МАШИННОЕ ОБУЧЕНИЕ: ЗАДАЧИ
НЕЙРОННЫЕ СЕТИ
Вход Выход
НЕЙРОННЫЕ СЕТИ
Нейрон
НЕЙРОННЫЕ СЕТИ
∑
𝒙𝟏
𝒙𝒏
𝒘𝟏
𝑏
𝒘𝒏
𝒙𝒊 𝒘𝒊
Нейрон
НЕЙРОННЫЕ СЕТИ
𝑦 = 𝑓
𝑖
𝑤𝑖𝑥𝑖 + 𝑏
∑
𝒙𝒏
𝒘𝟏
𝑦
𝒘𝒏
𝒙𝒊 𝒘𝒊
𝒙𝟏
𝑏
Функция активацииНейрон
НЕЙРОННЫЕ СЕТИ
f(a)
a
f(a)
a
Sigmoid
ReLU
𝑦 = 𝑓
𝑖
𝑤𝑖𝑥𝑖 + 𝑏
∑
𝒙𝒏
𝒘𝟏
𝑦
𝒘𝒏
𝒙𝒊 𝒘𝒊
𝒙𝟏
𝑏
Многослойный персептронНейрон
𝑦 = 𝑓
𝑖
𝑤𝑖𝑥𝑖 + 𝑏
НЕЙРОННЫЕ СЕТИ
𝐻 = 𝑓 𝑊1𝑋 + 𝐵1
𝑾𝟏 𝑾𝟐
𝑋
𝐻
𝑌
𝑌 = 𝑓 𝑊2𝐻 + 𝐵2
∑
𝒙𝒏
𝒘𝟏
𝑦
𝒘𝒏
𝒙𝒊 𝒘𝒊
𝑩𝟏 𝑩𝟐𝒙𝟏
𝑏
𝑋𝑘 = 𝑓 𝑊𝑘𝑋𝑘−1 + 𝐵𝑘
Прямое распространение
𝑿𝟎 𝑿𝟏
Слой 1
𝑿𝟐
Слой 2
𝑿𝟑
Слой 3
𝑿𝟒
Слой 4
НЕЙРОННЫЕ СЕТИ
𝑩𝟏
𝑾𝟏
𝑩𝟏
𝑾𝟏
𝑩𝟏
𝑾𝟏
𝑩𝟏
𝑾𝟏
𝑋𝑘 = 𝑓 𝑊𝑘𝑋𝑘−1 + 𝐵𝑘
Прямое распространение
𝑿𝟎 𝑿𝟏
Слой 1
𝑿𝟐
Слой 2
𝑿𝟑
Слой 3
𝑿𝟒
Слой 4
НЕЙРОННЫЕ СЕТИ
𝑩𝟏
𝑾𝟏
𝑩𝟏
𝑾𝟏
𝑩𝟏
𝑾𝟏
𝑩𝟏
𝑾𝟏
𝑋𝑁 = 𝐺𝑊 𝑋0
НЕЙРОННЫЕ СЕТИ
?
𝒙𝟏
𝒙𝟐
𝒙𝟑
НЕЙРОННЫЕ СЕТИ
?
𝒙𝟏
𝒙𝟐
𝒙𝟑𝒙𝟏
𝒙𝟐
𝒙𝟑𝒚𝟐
𝒚𝟏
НЕЙРОННЫЕ СЕТИ
?
𝒙𝟏
𝒙𝟐
𝒙𝟑𝒙𝟏
𝒙𝟐
𝒙𝟑𝒚𝟐
𝒚𝟏
НЕЙРОННЫЕ СЕТИ
?
𝒙𝟏
𝒙𝟐
𝒙𝟑𝒙𝟏
𝒙𝟐
𝒙𝟑𝒚𝟐
𝒚𝟏 𝒑𝟏
𝒑𝟐
НЕЙРОННЫЕ СЕТИ
?
𝒙𝟏
𝒙𝟐
𝒙𝟑𝒙𝟏
𝒙𝟐
𝒙𝟑𝒚𝟐
𝒚𝟏 𝒑𝟏
𝒑𝟐
𝑷
𝑐𝑙𝑎𝑠𝑠
Выход сети - распределение вероятностей
принадлежности к классу
ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ
• Обучение с учителем (на примерах)
𝒁𝟏 , 𝑫𝟏
…
Обучающая
выборка
𝒁𝟐 , 𝑫𝟐
𝒁𝑷 , 𝑫𝑷
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Обучение с учителем (на примерах)
𝒁𝟏 , 𝑫𝟏
…
Обучающая
выборка
𝒁𝟐 , 𝑫𝟐
𝒁𝑷 , 𝑫𝑷
Обучение
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Обучение с учителем (на примерах)
𝒁𝟏 , 𝑫𝟏
…
Обучающая
выборка
𝒁𝟐 , 𝑫𝟐
𝒁𝑷 , 𝑫𝑷
Обучение
Найти 𝑊:
𝒁𝒊 𝑫𝒊
𝐺𝑊
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Обучение с учителем (на примерах)
𝒁𝟏 , 𝑫𝟏
…
Обучающая
выборка
𝒁𝟐 , 𝑫𝟐
𝒁𝑷 , 𝑫𝑷
Обучение
Найти 𝑊:
𝒁𝒊 𝑫𝒊
𝐺𝑊
𝑊∗ = argmin𝑊
𝐸(𝑊)
𝐸 = 𝐷 − 𝐺𝑊(𝑍)2
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Градиентный спуск
• Итерационный процесс
𝑊∗
𝐸
𝑊
−𝜕𝐸
𝜕𝑊
𝑊𝑡+1 = 𝑊𝑡 − 𝛼𝜕𝐸
𝜕𝑊𝑊𝑡
𝑊𝑡
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
На итерации t:
𝒁𝒕
𝑫𝒕
Образец
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Стохастический градиентный спуск
На итерации t:
𝒁𝒕
𝑫𝒕
Образец 𝑊𝑡
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Стохастический градиентный спуск
На итерации t:
𝒁𝒕
𝑫𝒕
Образец
𝐺𝑊(𝑍𝑡)
𝑊𝑡
Предсказание
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Стохастический градиентный спуск
На итерации t:
𝒁𝒕
𝑫𝒕
Образец
𝐸 = 𝐷𝑡 − 𝐺𝑊 𝑍𝑡2Как сильно мы ошиблись?
𝐺𝑊(𝑍𝑡)
𝑊𝑡
Предсказание
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Стохастический градиентный спуск
На итерации t:
𝒁𝒕
𝑫𝒕
Образец
𝑊𝑡+1 = 𝑊𝑡 − 𝛼𝜕𝐸
𝜕𝑊𝑊𝑡
𝐸 = 𝐷𝑡 − 𝐺𝑊 𝑍𝑡2Как сильно мы ошиблись?
𝐺𝑊(𝑍𝑡)
𝑊𝑡
Предсказание
Поправить веса!
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Стохастический градиентный спуск
𝑬𝜕𝐸
𝜕𝑋4
𝜕𝐸
𝜕𝑊4
𝜕𝐸
𝜕𝑋3
𝜕𝐸
𝜕𝑊3
𝜕𝐸
𝜕𝑋2
𝜕𝐸
𝜕𝑊2
𝜕𝐸
𝜕𝑋1
𝜕𝐸
𝜕𝑊1
Слой 1 Слой 2 Слой 3 Слой 4
НЕЙРОННЫЕ СЕТИ: ОБУЧЕНИЕ
• Обратное распространение ошибки
?
?
?
?
Данные легко разделимы
НЕЙРОННЫЕ СЕТИ
СЛОЖНЫЕ ЗАДАЧИ
Описание
Семантическая
информация
Изображение
Или
Видео
КОМПЬЮТЕРНОЕ ЗРЕНИЕ
“Котик”
Классификация
КОМПЬЮТЕРНОЕ ЗРЕНИЕ: ЗАДАЧИ
• Человек
• Собака
• Стул“Котик”
Классификация Детектирование объектов
КОМПЬЮТЕРНОЕ ЗРЕНИЕ: ЗАДАЧИ
Семантическая сегментация
КОМПЬЮТЕРНОЕ ЗРЕНИЕ: ЗАДАЧИ
ТРУДНОСТИ
???
ТРУДНОСТИ
R
G
B
=
Много неструктурированной информации
ТРУДНОСТИ
ПРИЗНАКИ
Признаки
ПРИЗНАКИ
“Lenna”
Признаки
ПРИЗНАКИ
“Lenna”
Признаки
ПРИЗНАКИ + НЕЙРОННАЯ СЕТЬ
СВЕРТКА
𝑾
*
СВЕРТКА
𝑾
𝑿
*
СВЕРТКА
𝑾
𝑿
*
𝑦 =
𝑖
𝑤𝑖𝑥𝑖
СВЕРТКА
𝑾
𝑿
*
𝑦 =
𝑖
𝑤𝑖𝑥𝑖
СВЕРТКА
*
𝑾
𝑦 =
𝑖
𝑤𝑖𝑥𝑖
“Lenna”
СВЁРТОЧНАЯ НЕЙРОННАЯ СЕТЬ
…
Обучаемые
признаки
Легко“шесть”
ПРОБЛЕМЫ НЕ ЗАКОНЧИЛИСЬ
Сложно
Легко“шесть”
= ?
ПРОБЛЕМЫ НЕ ЗАКОНЧИЛИСЬ
Пиксели ГраницыФрагменты Объекты
ИЕРАРХИЯ ПРИЗНАКОВ
Пиксели ГраницыФрагменты Объекты
Выделение признаков + Классификация
“Котик”
ИЕРАРХИЯ ПРИЗНАКОВ
ГЛУБОКИЕ НЕЙРОННЫЕ СЕТИ
DEEP LEARNING
Обучение иерархии признаковых
представлений
• Свёрточный слой
*
ТИПЫ СЛОЕВ
• Локальное усреднение
• Локальный максимум
• Понижение размерности (pooling)
ТИПЫ СЛОЕВ
• Полносвязный слой
ТИПЫ СЛОЕВ
Свертка СверткаPooling Pooling Полно-связный
ВходВыход
ПРИМЕР СВЁРТОЧНЫЙ НЕЙРОННОЙ СЕТИ
ПРИЛОЖЕНИЯ
Brad Pitt
Идентификация Пол, возраст
РАСПОЗНАВАНИЕ ЛИЦ
УМНЫЕ УСТРОЙСТВА
ДОПОЛНЕННАЯ РЕАЛЬНОСТЬ
Диагностика Хирургия
МЕДИЦИНА
АВТОПИЛОТ
ДРУГИЕ НЕЙРОННЫЕ СЕТИ
РЕКУРЕНТНЫЕ НЕЙРОННЫЕ СЕТИ
𝑿𝒕 𝒀𝒕
𝑯𝒕
РЕКУРЕНТНЫЕ НЕЙРОННЫЕ СЕТИ
𝑿𝒕 𝒀𝒕
𝑯𝒕
𝐻𝑡 = 𝑓 𝑊1𝑋𝑡 +𝑊ℎ𝐻𝑡−1 + 𝐵1
𝑌𝑡 = 𝑓 𝑊2𝐻𝑡 + 𝐵2
РЕКУРЕНТНЫЕ НЕЙРОННЫЕ СЕТИ
𝑿𝒕 𝒀𝒕
𝑯𝒕
𝐻𝑡 = 𝑓 𝑊1𝑋𝑡 +𝑊ℎ𝐻𝑡−1 + 𝐵1
𝑌𝑡 = 𝑓 𝑊2𝐻𝑡 + 𝐵2
Умная клавиатура Чат боты
ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА
Мама мыла раму …
Машинный перевод
Siri
Ok, Google
П… …Р И В Е Т
РАСПОЗНАВАНИЕ РЕЧИ
“A woman drinking
something near a TV”
ИЗОБРАЖЕНИЕ В ТЕКСТ
ОБУЧЕНИЕ С ПОДКРЕПЛЕНИЕМ
ОТ РАСПОЗНАВАНИЯ К СИНТЕЗУ
WaveNet
“Сегодня отличная погода, на правда ли?”
СИНТЕЗ РЕЧИ И МУЗЫКИ
Photoshop Deep Learning
СВЕРХ-РАЗРЕШЕНИЕ
ПЕРЕНОС СТИЛЯ
G
Признаки
Текстурные признаки
СОСТЯЗАТЕЛЬНЫЕ СЕТИ (GAN)
Генератор Дискриминатор
?
ТЕКСТ В КАРТИНКУ
Текст Картинки
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
КАРТИНКА В КАРТИНКУ
СПАСИБО