ݺߣ

ݺߣShare a Scribd company logo
Глубокое обучение,
или как стать Data
Scientist'ом
Семинар компании NVIDIA
Университет ИТМО, 16 мая 2017 г.
Андрей Созыкин, www.asozykin.ru, sozykin@gmail.com
План
Кто такие Data Scientist'ы и как стать одним из них
Глубокое обучение – теория и применение
Демонстрация глубокого обучения нейронных
сетей:
• Распознавание объектов на изображениях
(Keras+Theano, MNIST и CIFAR-10)
• Сравнение фотографии паспорта и c Web-камеры
Глубокое обучение, или как стать Data Scientist'ом 2
Что такое Data Science?
Глубокое обучение, или как стать Data Scientist'ом 3
Data Science Process
Глубокое обучение, или как стать Data Scientist'ом 4
By Farcaster at English Wikipedia, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=40129394
Где здесь глубокое обучение?
Глубокое обучение, или как стать Data Scientist'ом 5
Machine Learning
Neural Networks
Deep
Learning
Применение глубоких нейронных сетей
Глубокое обучение, или как стать Data Scientist'ом 6
Prisma
Artisto
Применение глубоких нейронных сетей
Глубокое обучение, или как стать Data Scientist'ом 7
Ода Сбербанку
С улыбкой нежной и всеми наравне,
Когда во мне счастья ликованье,
Скажу, преодолев страх признанья:
Сбербанк — светило на века в стране!
…
Применение глубоких нейронных сетей
Глубокое обучение, или как стать Data Scientist'ом 8
Skype Translator
Переводчик Google
Применение глубоких нейронных сетей
Глубокое обучение, или как стать Data Scientist'ом 9
Сингапур
Питсбург, США
Лондон
Применение глубоких нейронных сетей
Глубокое обучение, или как стать Data Scientist'ом 10
Применение глубоких нейронных сетей
Глубокое обучение, или как стать Data Scientist'ом 11
Imperial College, London
Применение глубоких нейронных сетей
Глубокое обучение, или как стать Data Scientist'ом 12
Microsoft
Анализ медицинских изображений
Глубокое обучение, или как стать Data Scientist'ом 13
По данные Word Economic Forum для подготовки врачей
необходимой квалификации в нужном количестве в
мире требуется 300 лет.
Health Systems Leapfrogging in Emerging Economies.
Что должен знать Data Scientist?
Глубокое обучение, или как стать Data Scientist'ом 14
1. Машинное обучение
2. Статистика
3. Математика
4. Компьютерные науки
5. Визуализация данных
6. Коммуникации
7. Предметная область
Cathy O’Neil and Rachel Schutt. Doing Data Science
Columbia University, Data Science Institute
Что необходимо Data Scientist’у?
Глубокое обучение, или как стать Data Scientist'ом 15
1. Теоретические знания
2. Практический опыт
3. Независимое подтверждение своей квалификации
Теоретические знания
Глубокое обучение, или как стать Data Scientist'ом 16
На русском языке:
• Курс “Введение в машинное обучение”. Coursera, Высшая
школа экономики, Константин Воронцов
https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie
• Специализация “Машинное обучение и анализ данных” на
Coursera, 6 курсов, МФТИ и Яндекс
https://www.coursera.org/specializations/machine-learning-data-
analysis
На английском языке:
• Курс “Machine Learning”, Andrew Ng
https://www.coursera.org/learn/machine-learning
• Курс “Neural Networks for Machine Learning”, Geoffrey Hinton
https://www.coursera.org/learn/neural-networks
Практический опыт
Глубокое обучение, или как стать Data Scientist'ом 17
Сайт kaggle.com:
• Соревнования по анализу данных
• Открытые наборы данных
• Примеры решений
Практически-ориентированные
курсы от udacity.com:
• Цель обучения – реализация проекта
• Теоретические курсы нацелены
помочь реализовать проект
Российские чемпионаты по анализу данных:
• boosters.pro
• mlbootcamp.ru
• dataring.ru
Независимое подтверждение квалификации
Глубокое обучение, или как стать Data Scientist'ом 18
Сайт kaggle.com
Открытые репозитории с программами на GitHub
Публикации на конференциях по анализу данных
Статьи на Хабре и других подобных ресурсах
Novice Contributor Expert Master Grandmaster
Школа анализа данных Яндекса
Школа анализа данных Яндекс:
• 2 года очного обучения
Филиалы:
• Санкт-Петербург
• Екатеринбург
• Новосибирск
• Минск
Совместная магистратура Уральского федерального
университета и ШАД:
• Начало обучения 1 сентября 2017 г.
• Два диплома: УрФУ и ШАД
Глубокое обучение, или как стать Data Scientist'ом 19
Глубокое обучение
Глубокое обучение, или как стать Data Scientist'ом 20
Machine Learning
Neural Networks
Deep
Learning
Глубокие нейронные сети и глубокое обучение
Глубокие нейронные сети:
• Один из методов машинного обучения
• Сеть из простых вычислительных элементов –
искусственных нейронов
Традиционное машинное обучение:
• Выбор важных признаков из множества доступных
данных (feature engineering)
Глубокие нейронные сети:
• Автоматическое определение важных признаков в
процессе обучения
• Высокие вычислительные требования
Глубокое обучение, или как стать Data Scientist'ом 21
Почему сейчас???
Основные идеи нейронных сетей придумали в
прошлом веке
Рост производительности компьютеров:
• Многоядерные процессоры
• Графические ускорители GPU
Резкое увеличение количества накопленных
данных
Большое количество готовых к использованию
программных систем глубокого обучения
Глубокое обучение, или как стать Data Scientist'ом 22
Суперкомпьютер NVIDIA DGX-1
23
Доступен для заказа в России
Глубокое обучение, или как стать Data Scientist'ом
Суперкомпьютер NVIDIA DGX-1
Глубокое обучение, или как стать Data Scientist'ом 24
Суперкомпьютер NVIDIA DGX-1
Глубокое обучение, или как стать Data Scientist'ом 25
Нейрон головного мозга
Глубокое обучение, или как стать Data Scientist'ом 26
https://ru.wikipedia.org/wiki/Нейрон
Искусственный нейрон
Глубокое обучение, или как стать Data Scientist'ом 27
𝑎 = 𝜑(෍
𝑖=1
𝑁
𝑤𝑖 𝑥𝑖)
Маккалок Дж., Питтс У. Логические исчисления идей, относящихся к нервной деятельности //
Автоматы. М.: ИЛ, 1956
Функции активации
Глубокое обучение, или как стать Data Scientist'ом 28
• Функция Хевисайда
– 𝜃 𝑥 = ቊ
0, 𝑥 < 0
1, 𝑥 > 0
• Сигмоидальные функции
– 𝜎 𝑥 =
1
1+𝑒−𝑥 (логистическая)
– 𝑡ℎ 𝑥 =
𝑒2𝑥−1
𝑒2𝑥+1
(гиперболический тангенс)
Нейронные сети
Глубокое обучение, или как стать Data Scientist'ом 29
Входной
слой
Скрытый
слой
Выходной
слой
Сеть с прямым распространением сигналов
Глубокое обучение, или как стать Data Scientist'ом 30
Рекуррентная сеть
Глубокое обучение, или как стать Data Scientist'ом 31
Глубокая нейронная сеть
Глубокое обучение, или как стать Data Scientist'ом 32
Обучение нейронной сети
Глубокое обучение, или как стать Data Scientist'ом 33
Обучение нейронной сети – подбор весов
таким образом, чтобы сеть решала поставленную
задачу
Задачи
Глубокое обучение, или как стать Data Scientist'ом 34
Классификация
Регрессия
https://www.kaggle.com/c/dogs-vs-cats
Типы обучения
Глубокое обучение, или как стать Data Scientist'ом 35
С учителем
• Данные с правильными ответами
Без учителя
• Данные без информации о правильных ответах
Обучение с подкреплением
• Агент получает сигналы от внешней среды
Первые варианты обучения, правила Хэбба
Глубокое обучение, или как стать Data Scientist'ом 36
Биологические предпосылки:
• Если нейроны срабатывают вместе, то их связи
укрепляются
Правила обучения Хэбба, 1949 г.:
• Нейрон выдает сигналы {0, 1}
• Начальные веса назначаются случайным образом
• Если сигнал нейрона неверен и равен нулю, то
необходимо увеличить веса тех входов, на которые
была подана единица
• Если сигнал нейрона неверен и равен единице, то
необходимо уменьшить веса тех входов, на которые
была подана единица
Метод обратного распространения ошибки
Глубокое обучение, или как стать Data Scientist'ом 37
Выходной сигнал сети:
• Вещественное число
Мера ошибки:
• Среднеквадратичная
Обучение:
• Минимизация ошибки методом градиентного спуска
Линейный нейрон
Глубокое обучение, или как стать Data Scientist'ом 38
Выходное значение:
Среднеквадратичная ошибка:
𝑎 = ෍
𝑖=1
𝑁
𝑤𝑖 𝑥𝑖
𝜀 =
1
2
෍
𝑗=1
𝑀
(𝑎𝑗 − 𝑦𝑗)2
Линейный нейрон
Глубокое обучение, или как стать Data Scientist'ом 39
Линейный нейрон
Глубокое обучение, или как стать Data Scientist'ом 40
𝑤𝑖 = 𝑤𝑖 − 𝜂 ෍
𝑗=1
𝑀
𝑥𝑗
𝑖
(𝑎𝑗 − 𝑦𝑗)
𝜂 – параметр скорости обучения
Изменение весов
(дельта-правило):
Варианты реализации
Глубокое обучение, или как стать Data Scientist'ом 41
Полное обучение:
• Изменяем веса после обработки всех элементов
обучающей выборки
Онлайн обучение:
• Изменяем веса после обработки каждого объекта
Мини-выборки:
• Изменяем веса после обработки 10-100 объектов
Обратное распространение ошибки
Глубокое обучение, или как стать Data Scientist'ом 42
Обратное распространение ошибки
Глубокое обучение, или как стать Data Scientist'ом 43
Библиотеки глубокого обучения
Глубокое обучение, или как стать Data Scientist'ом 44
Набор данных MNIST
Глубокое обучение, или как стать Data Scientist'ом 45
Back-Propagation Applied to Handwritten Zip Code Recognition / Y. LeCun,
B. Boser, J. S. Denker et al. 1989
Mixed National Institute of Standards and Technology
database
Нейронная сеть для MNIST
Глубокое обучение, или как стать Data Scientist'ом 46
Входные значения сети
• Интенсивность пиксела в изображении
• Количество значений: 784 (28*28 пикселов)
Входной слой
• 800 нейронов
• Patrice Y. Simard; Dave Steinkraus; John C. Platt (2003).
«Best Practices for Convolutional Neural Networks Applied
to Visual Document Analysis»
• https://en.wikipedia.org/wiki/MNIST_database
Выходной слой
• 10 нейронов
• Вероятность того, что на изображении данная цифра
One Hot Encoding
Глубокое обучение, или как стать Data Scientist'ом 47
# 0 -> [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
# 2 -> [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
# 9 -> [0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Демонстрация MNIST
Глубокое обучение, или как стать Data Scientist'ом 48
Демонстрация распознавания рукописных цифр из
набора данных MNIST в Keras и Theano
Функции активации
Глубокое обучение, или как стать Data Scientist'ом 49
Rectified Linear Unit (ReLU)
SoftMax – нормализованная экспоненциальная
функция
• Используется для представления
вероятности
• Сумма всех выходных значений
нейронов равна 1
𝑓 𝑥 = max(0, 𝑥)
𝑓 𝑥 = ln(1 + 𝑒 𝑥)
Проблема переобучения
Глубокое обучение, или как стать Data Scientist'ом 50
Сеть может научиться распознавать особенности
выборки, а не данных
Наборы данных для обучения
Глубокое обучение, или как стать Data Scientist'ом 51
Обучающая выборка (training set) – набор
данных, который используется для обучения сети
Проверочная выборка (validation set) – набор
данных, который используется в процессе
обучения для оценки качества обучения
Тестовая выборка (test set) – набор данных,
который используется для оценки качества работы
сети после завершения обучения
Сверточные нейронные сети
Глубокое обучение, или как стать Data Scientist'ом 52
Принципы сверточных нейронных сетей (convolutional
neural networks):
• Локальное восприятие
• Разделяемые веса
• Уменьшение размерности
Операция свертки
Глубокое обучение, или как стать Data Scientist'ом 53
N(x,y) = 221 * (-1) +
198 * 0 +
149 * 1 +
205 * (-2) +
147 * 0 +
173 * 2 +
149 * (-1) +
170 * 0 +
222 * 1 = - 63
Ядро
свертки
Свертка изображений
Глубокое обучение, или как стать Data Scientist'ом 54
Размытие
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
Выделение границ
0 -1 0
-1 4 -1
0 -1 0
Повышение четкости
0 -1 0
-1 5 -1
0 -1 0
Свертка изображений
Глубокое обучение, или как стать Data Scientist'ом 55
Размытие
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
Выделение границ
0 -1 0
-1 4 -1
0 -1 0
Повышение четкости
0 -1 0
-1 5 -1
0 -1 0
В нейронных сетях ядра
свертки определяются
автоматически в процессе
обучения
Разделяемые веса
Глубокое обучение, или как стать Data Scientist'ом 56
Уменьшение размерности
Глубокое обучение, или как стать Data Scientist'ом 57
Распознавание объектов вне зависимости от
масштаба
Факт наличия признака важнее знания места его
точного положения на изображении
Слои подвыборки (subsampling):
• Усреднение
• Выбор максимального значения
Сверточная нейронная сеть
Глубокое обучение, или как стать Data Scientist'ом 58
Фукушима. Неокогнитрон
Сверточная сеть LeNet-5
Глубокое обучение, или как стать Data Scientist'ом 59
Back-Propagation Applied to Handwritten Zip Code Recognition / Y. LeCun,
B. Boser, J. S. Denker et al. 1989
Распознавание лиц сверточными сетями
Глубокое обучение, или как стать Data Scientist'ом 60
Honglak Lee, Roger Grosse, Rajesh Ranganath, and Andrew Y. Ng.
Unsupervised Learning of Hierarchical Representations with
Convolutional Deep Belief Networks (2011)
Набор данных CIFAR-10
Глубокое обучение, или как стать Data Scientist'ом 61
Самолет
Автомобиль
Птица
Кот
Олень
Собака
Лягушка
Лошадь
Корабль
Грузовик
Набор данных CIFAR-10
Глубокое обучение, или как стать Data Scientist'ом 62
Открытый набор данных:
• https://www.cs.toronto.edu/~kriz/cifar.html
• Alex Krizhevsky, Learning Multiple Layers of Features from
Tiny Images, 2009.
Изображения в CIFAR-10:
• Размер 32х32
• Цветные изображения (коды интенсивности RGB)
• Набор данных для обучения – 50 000 (5 000 для каждого
класса)
• Набор данных для тестирования – 10 000
• На каждом изображении только один объект
• Нет пересечений
Сверточная сеть для распознавания CIFAR-10
Глубокое обучение, или как стать Data Scientist'ом 63
Демонстрация CIFAR-10
Глубокое обучение, или как стать Data Scientist'ом 64
Демонстрация распознавания объектов на
изображениях CIFAR-10 в Keras и Theano
Сравнение фото
Глубокое обучение, или как стать Data Scientist'ом 65
Паспорт Web-камера
Transfer Learning
Глубокое обучение, или как стать Data Scientist'ом 66
Подход Transfer Learning:
• Использование предварительно обученной сети для
других задач
Соревнования ImageNet:
• Набор данных 14 млн. изображений
• 1000 классов объектов
Обученные нейронные сети на ImageNet
Глубокое обучение, или как стать Data Scientist'ом 67
AlexNet (2012):
• Разработчик Алекс Крижевский, 9 слоев
VGG16 (2014):
• Oxford Visual Geometry Group, 16 слоев
Inception (GoogLeNet, 2014):
• Google, 22 слоя
ResNet (2015):
• Microsoft, 152 слоя
Keras Applications
Глубокое обучение, или как стать Data Scientist'ом 68
Предварительно обученные модели:
• https://keras.io/applications/
Модели в Keras:
• Xception
• VGG16
• VGG19
• ResNet50
• InceptionV3
Архитектура VGG16
Глубокое обучение, или как стать Data Scientist'ом 69
Выделение признаков Классификация
Разные фото одного человека будут иметь похожие признаки
Сравнение фотографий
Глубокое обучение, или как стать Data Scientist'ом 70
Загружаем предварительно обученную сеть VGG16
«Отрезаем» последние три уровня
Для каждой фотографии получаем вектор признаков
Оцениваем расстояние между векторами признаков
Демонстрация сравнения фото
Глубокое обучение, или как стать Data Scientist'ом 71
Демонстрация сравнения фотографий в Keras и
Theano
Дополнительная информация
NVIDIA Deep Learning Institute:
• http://www.nvidia.ru/dli
Примеры кода из демонстраций:
• https://github.com/sozykin/dlpython_course
• Курс с видео и упражнениями -
https://www.asozykin.ru/courses/nnpython
Суперкомпьютерная академия МГУ:
• http://academy.hpc-russia.ru/
• Трек Уральского Федерального Университета
(Екатеринбург) по нейронным сетям –
http://youthscience.urfu.ru/scacademy/
Глубокое обучение, или как стать Data Scientist'ом 72

More Related Content

Презентация на семинаре Nvidia в ИТМО 16 мая 2017 г.

  • 1. Глубокое обучение, или как стать Data Scientist'ом Семинар компании NVIDIA Университет ИТМО, 16 мая 2017 г. Андрей Созыкин, www.asozykin.ru, sozykin@gmail.com
  • 2. План Кто такие Data Scientist'ы и как стать одним из них Глубокое обучение – теория и применение Демонстрация глубокого обучения нейронных сетей: • Распознавание объектов на изображениях (Keras+Theano, MNIST и CIFAR-10) • Сравнение фотографии паспорта и c Web-камеры Глубокое обучение, или как стать Data Scientist'ом 2
  • 3. Что такое Data Science? Глубокое обучение, или как стать Data Scientist'ом 3
  • 4. Data Science Process Глубокое обучение, или как стать Data Scientist'ом 4 By Farcaster at English Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=40129394
  • 5. Где здесь глубокое обучение? Глубокое обучение, или как стать Data Scientist'ом 5 Machine Learning Neural Networks Deep Learning
  • 6. Применение глубоких нейронных сетей Глубокое обучение, или как стать Data Scientist'ом 6 Prisma Artisto
  • 7. Применение глубоких нейронных сетей Глубокое обучение, или как стать Data Scientist'ом 7 Ода Сбербанку С улыбкой нежной и всеми наравне, Когда во мне счастья ликованье, Скажу, преодолев страх признанья: Сбербанк — светило на века в стране! …
  • 8. Применение глубоких нейронных сетей Глубокое обучение, или как стать Data Scientist'ом 8 Skype Translator Переводчик Google
  • 9. Применение глубоких нейронных сетей Глубокое обучение, или как стать Data Scientist'ом 9 Сингапур Питсбург, США Лондон
  • 10. Применение глубоких нейронных сетей Глубокое обучение, или как стать Data Scientist'ом 10
  • 11. Применение глубоких нейронных сетей Глубокое обучение, или как стать Data Scientist'ом 11 Imperial College, London
  • 12. Применение глубоких нейронных сетей Глубокое обучение, или как стать Data Scientist'ом 12 Microsoft
  • 13. Анализ медицинских изображений Глубокое обучение, или как стать Data Scientist'ом 13 По данные Word Economic Forum для подготовки врачей необходимой квалификации в нужном количестве в мире требуется 300 лет. Health Systems Leapfrogging in Emerging Economies.
  • 14. Что должен знать Data Scientist? Глубокое обучение, или как стать Data Scientist'ом 14 1. Машинное обучение 2. Статистика 3. Математика 4. Компьютерные науки 5. Визуализация данных 6. Коммуникации 7. Предметная область Cathy O’Neil and Rachel Schutt. Doing Data Science Columbia University, Data Science Institute
  • 15. Что необходимо Data Scientist’у? Глубокое обучение, или как стать Data Scientist'ом 15 1. Теоретические знания 2. Практический опыт 3. Независимое подтверждение своей квалификации
  • 16. Теоретические знания Глубокое обучение, или как стать Data Scientist'ом 16 На русском языке: • Курс “Введение в машинное обучение”. Coursera, Высшая школа экономики, Константин Воронцов https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie • Специализация “Машинное обучение и анализ данных” на Coursera, 6 курсов, МФТИ и Яндекс https://www.coursera.org/specializations/machine-learning-data- analysis На английском языке: • Курс “Machine Learning”, Andrew Ng https://www.coursera.org/learn/machine-learning • Курс “Neural Networks for Machine Learning”, Geoffrey Hinton https://www.coursera.org/learn/neural-networks
  • 17. Практический опыт Глубокое обучение, или как стать Data Scientist'ом 17 Сайт kaggle.com: • Соревнования по анализу данных • Открытые наборы данных • Примеры решений Практически-ориентированные курсы от udacity.com: • Цель обучения – реализация проекта • Теоретические курсы нацелены помочь реализовать проект Российские чемпионаты по анализу данных: • boosters.pro • mlbootcamp.ru • dataring.ru
  • 18. Независимое подтверждение квалификации Глубокое обучение, или как стать Data Scientist'ом 18 Сайт kaggle.com Открытые репозитории с программами на GitHub Публикации на конференциях по анализу данных Статьи на Хабре и других подобных ресурсах Novice Contributor Expert Master Grandmaster
  • 19. Школа анализа данных Яндекса Школа анализа данных Яндекс: • 2 года очного обучения Филиалы: • Санкт-Петербург • Екатеринбург • Новосибирск • Минск Совместная магистратура Уральского федерального университета и ШАД: • Начало обучения 1 сентября 2017 г. • Два диплома: УрФУ и ШАД Глубокое обучение, или как стать Data Scientist'ом 19
  • 20. Глубокое обучение Глубокое обучение, или как стать Data Scientist'ом 20 Machine Learning Neural Networks Deep Learning
  • 21. Глубокие нейронные сети и глубокое обучение Глубокие нейронные сети: • Один из методов машинного обучения • Сеть из простых вычислительных элементов – искусственных нейронов Традиционное машинное обучение: • Выбор важных признаков из множества доступных данных (feature engineering) Глубокие нейронные сети: • Автоматическое определение важных признаков в процессе обучения • Высокие вычислительные требования Глубокое обучение, или как стать Data Scientist'ом 21
  • 22. Почему сейчас??? Основные идеи нейронных сетей придумали в прошлом веке Рост производительности компьютеров: • Многоядерные процессоры • Графические ускорители GPU Резкое увеличение количества накопленных данных Большое количество готовых к использованию программных систем глубокого обучения Глубокое обучение, или как стать Data Scientist'ом 22
  • 23. Суперкомпьютер NVIDIA DGX-1 23 Доступен для заказа в России Глубокое обучение, или как стать Data Scientist'ом
  • 24. Суперкомпьютер NVIDIA DGX-1 Глубокое обучение, или как стать Data Scientist'ом 24
  • 25. Суперкомпьютер NVIDIA DGX-1 Глубокое обучение, или как стать Data Scientist'ом 25
  • 26. Нейрон головного мозга Глубокое обучение, или как стать Data Scientist'ом 26 https://ru.wikipedia.org/wiki/Нейрон
  • 27. Искусственный нейрон Глубокое обучение, или как стать Data Scientist'ом 27 𝑎 = 𝜑(෍ 𝑖=1 𝑁 𝑤𝑖 𝑥𝑖) Маккалок Дж., Питтс У. Логические исчисления идей, относящихся к нервной деятельности // Автоматы. М.: ИЛ, 1956
  • 28. Функции активации Глубокое обучение, или как стать Data Scientist'ом 28 • Функция Хевисайда – 𝜃 𝑥 = ቊ 0, 𝑥 < 0 1, 𝑥 > 0 • Сигмоидальные функции – 𝜎 𝑥 = 1 1+𝑒−𝑥 (логистическая) – 𝑡ℎ 𝑥 = 𝑒2𝑥−1 𝑒2𝑥+1 (гиперболический тангенс)
  • 29. Нейронные сети Глубокое обучение, или как стать Data Scientist'ом 29 Входной слой Скрытый слой Выходной слой
  • 30. Сеть с прямым распространением сигналов Глубокое обучение, или как стать Data Scientist'ом 30
  • 31. Рекуррентная сеть Глубокое обучение, или как стать Data Scientist'ом 31
  • 32. Глубокая нейронная сеть Глубокое обучение, или как стать Data Scientist'ом 32
  • 33. Обучение нейронной сети Глубокое обучение, или как стать Data Scientist'ом 33 Обучение нейронной сети – подбор весов таким образом, чтобы сеть решала поставленную задачу
  • 34. Задачи Глубокое обучение, или как стать Data Scientist'ом 34 Классификация Регрессия https://www.kaggle.com/c/dogs-vs-cats
  • 35. Типы обучения Глубокое обучение, или как стать Data Scientist'ом 35 С учителем • Данные с правильными ответами Без учителя • Данные без информации о правильных ответах Обучение с подкреплением • Агент получает сигналы от внешней среды
  • 36. Первые варианты обучения, правила Хэбба Глубокое обучение, или как стать Data Scientist'ом 36 Биологические предпосылки: • Если нейроны срабатывают вместе, то их связи укрепляются Правила обучения Хэбба, 1949 г.: • Нейрон выдает сигналы {0, 1} • Начальные веса назначаются случайным образом • Если сигнал нейрона неверен и равен нулю, то необходимо увеличить веса тех входов, на которые была подана единица • Если сигнал нейрона неверен и равен единице, то необходимо уменьшить веса тех входов, на которые была подана единица
  • 37. Метод обратного распространения ошибки Глубокое обучение, или как стать Data Scientist'ом 37 Выходной сигнал сети: • Вещественное число Мера ошибки: • Среднеквадратичная Обучение: • Минимизация ошибки методом градиентного спуска
  • 38. Линейный нейрон Глубокое обучение, или как стать Data Scientist'ом 38 Выходное значение: Среднеквадратичная ошибка: 𝑎 = ෍ 𝑖=1 𝑁 𝑤𝑖 𝑥𝑖 𝜀 = 1 2 ෍ 𝑗=1 𝑀 (𝑎𝑗 − 𝑦𝑗)2
  • 39. Линейный нейрон Глубокое обучение, или как стать Data Scientist'ом 39
  • 40. Линейный нейрон Глубокое обучение, или как стать Data Scientist'ом 40 𝑤𝑖 = 𝑤𝑖 − 𝜂 ෍ 𝑗=1 𝑀 𝑥𝑗 𝑖 (𝑎𝑗 − 𝑦𝑗) 𝜂 – параметр скорости обучения Изменение весов (дельта-правило):
  • 41. Варианты реализации Глубокое обучение, или как стать Data Scientist'ом 41 Полное обучение: • Изменяем веса после обработки всех элементов обучающей выборки Онлайн обучение: • Изменяем веса после обработки каждого объекта Мини-выборки: • Изменяем веса после обработки 10-100 объектов
  • 42. Обратное распространение ошибки Глубокое обучение, или как стать Data Scientist'ом 42
  • 43. Обратное распространение ошибки Глубокое обучение, или как стать Data Scientist'ом 43
  • 44. Библиотеки глубокого обучения Глубокое обучение, или как стать Data Scientist'ом 44
  • 45. Набор данных MNIST Глубокое обучение, или как стать Data Scientist'ом 45 Back-Propagation Applied to Handwritten Zip Code Recognition / Y. LeCun, B. Boser, J. S. Denker et al. 1989 Mixed National Institute of Standards and Technology database
  • 46. Нейронная сеть для MNIST Глубокое обучение, или как стать Data Scientist'ом 46 Входные значения сети • Интенсивность пиксела в изображении • Количество значений: 784 (28*28 пикселов) Входной слой • 800 нейронов • Patrice Y. Simard; Dave Steinkraus; John C. Platt (2003). «Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis» • https://en.wikipedia.org/wiki/MNIST_database Выходной слой • 10 нейронов • Вероятность того, что на изображении данная цифра
  • 47. One Hot Encoding Глубокое обучение, или как стать Data Scientist'ом 47 # 0 -> [1, 0, 0, 0, 0, 0, 0, 0, 0, 0] # 2 -> [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] # 9 -> [0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
  • 48. Демонстрация MNIST Глубокое обучение, или как стать Data Scientist'ом 48 Демонстрация распознавания рукописных цифр из набора данных MNIST в Keras и Theano
  • 49. Функции активации Глубокое обучение, или как стать Data Scientist'ом 49 Rectified Linear Unit (ReLU) SoftMax – нормализованная экспоненциальная функция • Используется для представления вероятности • Сумма всех выходных значений нейронов равна 1 𝑓 𝑥 = max(0, 𝑥) 𝑓 𝑥 = ln(1 + 𝑒 𝑥)
  • 50. Проблема переобучения Глубокое обучение, или как стать Data Scientist'ом 50 Сеть может научиться распознавать особенности выборки, а не данных
  • 51. Наборы данных для обучения Глубокое обучение, или как стать Data Scientist'ом 51 Обучающая выборка (training set) – набор данных, который используется для обучения сети Проверочная выборка (validation set) – набор данных, который используется в процессе обучения для оценки качества обучения Тестовая выборка (test set) – набор данных, который используется для оценки качества работы сети после завершения обучения
  • 52. Сверточные нейронные сети Глубокое обучение, или как стать Data Scientist'ом 52 Принципы сверточных нейронных сетей (convolutional neural networks): • Локальное восприятие • Разделяемые веса • Уменьшение размерности
  • 53. Операция свертки Глубокое обучение, или как стать Data Scientist'ом 53 N(x,y) = 221 * (-1) + 198 * 0 + 149 * 1 + 205 * (-2) + 147 * 0 + 173 * 2 + 149 * (-1) + 170 * 0 + 222 * 1 = - 63 Ядро свертки
  • 54. Свертка изображений Глубокое обучение, или как стать Data Scientist'ом 54 Размытие 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 Выделение границ 0 -1 0 -1 4 -1 0 -1 0 Повышение четкости 0 -1 0 -1 5 -1 0 -1 0
  • 55. Свертка изображений Глубокое обучение, или как стать Data Scientist'ом 55 Размытие 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 Выделение границ 0 -1 0 -1 4 -1 0 -1 0 Повышение четкости 0 -1 0 -1 5 -1 0 -1 0 В нейронных сетях ядра свертки определяются автоматически в процессе обучения
  • 56. Разделяемые веса Глубокое обучение, или как стать Data Scientist'ом 56
  • 57. Уменьшение размерности Глубокое обучение, или как стать Data Scientist'ом 57 Распознавание объектов вне зависимости от масштаба Факт наличия признака важнее знания места его точного положения на изображении Слои подвыборки (subsampling): • Усреднение • Выбор максимального значения
  • 58. Сверточная нейронная сеть Глубокое обучение, или как стать Data Scientist'ом 58 Фукушима. Неокогнитрон
  • 59. Сверточная сеть LeNet-5 Глубокое обучение, или как стать Data Scientist'ом 59 Back-Propagation Applied to Handwritten Zip Code Recognition / Y. LeCun, B. Boser, J. S. Denker et al. 1989
  • 60. Распознавание лиц сверточными сетями Глубокое обучение, или как стать Data Scientist'ом 60 Honglak Lee, Roger Grosse, Rajesh Ranganath, and Andrew Y. Ng. Unsupervised Learning of Hierarchical Representations with Convolutional Deep Belief Networks (2011)
  • 61. Набор данных CIFAR-10 Глубокое обучение, или как стать Data Scientist'ом 61 Самолет Автомобиль Птица Кот Олень Собака Лягушка Лошадь Корабль Грузовик
  • 62. Набор данных CIFAR-10 Глубокое обучение, или как стать Data Scientist'ом 62 Открытый набор данных: • https://www.cs.toronto.edu/~kriz/cifar.html • Alex Krizhevsky, Learning Multiple Layers of Features from Tiny Images, 2009. Изображения в CIFAR-10: • Размер 32х32 • Цветные изображения (коды интенсивности RGB) • Набор данных для обучения – 50 000 (5 000 для каждого класса) • Набор данных для тестирования – 10 000 • На каждом изображении только один объект • Нет пересечений
  • 63. Сверточная сеть для распознавания CIFAR-10 Глубокое обучение, или как стать Data Scientist'ом 63
  • 64. Демонстрация CIFAR-10 Глубокое обучение, или как стать Data Scientist'ом 64 Демонстрация распознавания объектов на изображениях CIFAR-10 в Keras и Theano
  • 65. Сравнение фото Глубокое обучение, или как стать Data Scientist'ом 65 Паспорт Web-камера
  • 66. Transfer Learning Глубокое обучение, или как стать Data Scientist'ом 66 Подход Transfer Learning: • Использование предварительно обученной сети для других задач Соревнования ImageNet: • Набор данных 14 млн. изображений • 1000 классов объектов
  • 67. Обученные нейронные сети на ImageNet Глубокое обучение, или как стать Data Scientist'ом 67 AlexNet (2012): • Разработчик Алекс Крижевский, 9 слоев VGG16 (2014): • Oxford Visual Geometry Group, 16 слоев Inception (GoogLeNet, 2014): • Google, 22 слоя ResNet (2015): • Microsoft, 152 слоя
  • 68. Keras Applications Глубокое обучение, или как стать Data Scientist'ом 68 Предварительно обученные модели: • https://keras.io/applications/ Модели в Keras: • Xception • VGG16 • VGG19 • ResNet50 • InceptionV3
  • 69. Архитектура VGG16 Глубокое обучение, или как стать Data Scientist'ом 69 Выделение признаков Классификация Разные фото одного человека будут иметь похожие признаки
  • 70. Сравнение фотографий Глубокое обучение, или как стать Data Scientist'ом 70 Загружаем предварительно обученную сеть VGG16 «Отрезаем» последние три уровня Для каждой фотографии получаем вектор признаков Оцениваем расстояние между векторами признаков
  • 71. Демонстрация сравнения фото Глубокое обучение, или как стать Data Scientist'ом 71 Демонстрация сравнения фотографий в Keras и Theano
  • 72. Дополнительная информация NVIDIA Deep Learning Institute: • http://www.nvidia.ru/dli Примеры кода из демонстраций: • https://github.com/sozykin/dlpython_course • Курс с видео и упражнениями - https://www.asozykin.ru/courses/nnpython Суперкомпьютерная академия МГУ: • http://academy.hpc-russia.ru/ • Трек Уральского Федерального Университета (Екатеринбург) по нейронным сетям – http://youthscience.urfu.ru/scacademy/ Глубокое обучение, или как стать Data Scientist'ом 72