Что такое transfer learning, или как перестать бояться и начать...
TRANSCRIPT
![Page 1: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/1.jpg)
Transfer LearningКак перестать бояться и начать
использовать сверхточные нейронные сети?
Талипов Руслан findmeals.com
![Page 2: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/2.jpg)
План
• Кто мы и с какой проблемой столкнулись
• Теоретические зарисовки о CNN
• Наше решение
![Page 3: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/3.jpg)
Покупайте продукты для рецептов
![Page 4: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/4.jpg)
Специфика
Покупатель принимает решениеоценивая «по одёжке».
![Page 5: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/5.jpg)
Аренда жилья
![Page 6: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/6.jpg)
Знакомства
![Page 7: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/7.jpg)
Выбор блюд
![Page 8: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/8.jpg)
Рецепт
![Page 9: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/9.jpg)
Векторное представление изображения
• Помогает классифицировать
• Помогает фильтровать контент
![Page 10: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/10.jpg)
USE DEEP LEARNING!
![Page 11: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/11.jpg)
Deep Learning?
![Page 12: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/12.jpg)
И как нам его использовать?
![Page 13: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/13.jpg)
Страшная правда
• Deep Learning – BaseWord (Big Data, NoSQL, Growth Hacking)
• Deep Learning = Нейронные сети.
• Deep = Большое количество слоёв.
![Page 14: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/14.jpg)
Тренды
![Page 15: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/15.jpg)
Причины роста интереса
![Page 16: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/16.jpg)
Данные
![Page 17: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/17.jpg)
GPU
![Page 18: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/18.jpg)
GPU
![Page 19: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/19.jpg)
Причины роста интереса
Эти модели работают
![Page 20: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/20.jpg)
Машинное обучение
![Page 21: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/21.jpg)
Простой классификатор
БородаУсыПлечиГрудьТалияБёдраРост
М/Ж
Волосы
![Page 22: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/22.jpg)
Признаки сами по себе
![Page 23: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/23.jpg)
Скрытый слойБородаУсыПлечиГрудьТалияБёдраРост
М/Ж
Волосы
![Page 24: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/24.jpg)
CNN
• Convolutional Neural Network = Свёрточная нейронная сеть
![Page 25: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/25.jpg)
Задачи• Классификация изображений ( Image
Classification, какому классу принадлежит изображение)
• Верификация изображений ( Image verification, изображено ли на картинках одно и тоже? )
• Поиск изображений ( image retrieval, поиск похожих картинок)
• Всё остальное
![Page 26: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/26.jpg)
Проблема при работе с изображениями
Признаки на входе = Пиксели.RGB пиксель – это 3 значения
![Page 27: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/27.jpg)
Линейный классификатор на датасете CIFAR-10
Распускаем RGB картинку 32х32х3 в 1 длинный вектор размерностью 3072.Оцениваем важность каждой координаты для классификации.
![Page 28: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/28.jpg)
Составим из весов изображения
Собака Лягушка Лошадка Корабль Грузовик
Самолёт Автомоб. Птица Котик Олень
http://cs231n.github.io/linear-classify/
![Page 29: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/29.jpg)
Недостатки
• Не учитывает соседство пикселей
• Большая размерность
• Неустойчив к изменениям фона и освещения, перекрытиям, деформациям, изменению угла обзора
![Page 30: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/30.jpg)
Свёртка
![Page 31: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/31.jpg)
Пулинг
![Page 32: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/32.jpg)
LeNet 1989
![Page 33: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/33.jpg)
ILSVRC ImageNet
• 1000 классов по 1000 изображений в каждом
• Несколько задач: – выявление объектов (классификация) – локализация объектов (указать где находится объект)
![Page 34: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/34.jpg)
Примеры Top5 error
http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
![Page 35: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/35.jpg)
Некоторые победители
![Page 36: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/36.jpg)
AlexNet 2012
2 GTX 580 3GB GPUs 5 - 6 дней обучения16.4% Top5 error
papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
![Page 37: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/37.jpg)
VGG 2014
4 GTX Titan Black2 - 3 недели обучения7.3% Top5 error
http://arxiv.org/pdf/1409.1556.pdf
![Page 38: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/38.jpg)
GoogleNet 2014
Несколько Tesla K80Долго6.6% Top5 errorhttp://www.cs.unc.edu/~wliu/papers/GoogLeNet.pdf
![Page 39: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/39.jpg)
ResNet 2015
3.6% Top5 error2-3 Недели8 Tesla K80
http://arxiv.org/pdf/1512.03385v1.pdf
![Page 40: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/40.jpg)
!!!!!!!!!!!!!!!!!• Это КРУТО.
• Но, у меня нет времени
• Но, мои навыки разработки под GPU отстой
• Но, у меня нет достаточного количества размеченных данных
• Вот.
![Page 41: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/41.jpg)
И ЧО?
• У меня другая задача. Мне не нужно отличать клеща от сухогруза.
![Page 42: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/42.jpg)
Что происходит на сверхточных слоях?
![Page 46: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/46.jpg)
Слои 4 и 5
• >
http://arxiv.org/pdf/1311.2901v3.pdfhttps://habrahabr.ru/company/nordavind/blog/253859/
![Page 47: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/47.jpg)
Наблюдение
• Признаки на первых слоях достаточно общие
• Признаки на глубоких слоях более конкретные, но всё равно активны на различных изображениях
• Классификатор обучается на признаках полученных с последнего сверхточного слоя.
![Page 48: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/48.jpg)
Вопросы в голове…• Зачем обучать сеть с нуля, если в процессе обучения получаются аналогичные визуальные признаки?
• Для разработки приложений мы используем фреймворки с готовыми компонентами…
• Можем ли мы использовать обученные слои в качестве таких компонентов?
![Page 49: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/49.jpg)
Transfer Learning
• Берём обученные слои хорошей модели
• Добавляем их в свою модель
• Обучаем получившегося гибрида (Fine-tune)
• PROFIT
![Page 50: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/50.jpg)
Transfer Learning
Learning visual representations - Andrea Vedaldi, University of Oxford https://events.yandex.ru/lib/talks/2793/
![Page 51: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/51.jpg)
Признаки?
• Для контроля требуется векторное представление изображения
• Используем для этого признаки с глубоких слоёв сети.
![Page 52: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/52.jpg)
Железки
• 8 GB RAM
• 1 TB HDD
• GeForce GTX 960 2GB
![Page 53: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/53.jpg)
Данные
• Набор данных Food-101 https://www.vision.ee.ethz.ch/datasets_extra/food-101/
• 101 класс 1000 изображений в каждом
![Page 54: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/54.jpg)
Архитектура модели
http://www.robots.ox.ac.uk/~vgg/research/very_deep/
База VGG 19 Не обучается
4096
101
![Page 55: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/55.jpg)
Проблемы• Модели для ImageNet проектируются и обучаются для множества классов/примеров
• Сложная модель на простой задаче с недостатком данных приводит к…
![Page 56: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/56.jpg)
Переобучение
• Аугментация данных(кропы 224х224 с отражениями)
• Нормализация (Dropout 0.6 - 0.8)
• L1 и L2
![Page 57: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/57.jpg)
Реализация
• Python3.4, CUDA 7.5 (cuDNN)
• Theano (Базовые классы и функции)
• Lasagne (Слои, Нелинейные функ., Методы оптимизации)
![Page 58: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/58.jpg)
Глубокое обучение
![Page 59: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/59.jpg)
Другие варианты
• Caffe
• TensorFlow
• Torch
• CNTK
![Page 60: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/60.jpg)
Результаты
![Page 61: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/61.jpg)
Классификация
![Page 62: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/62.jpg)
Макаруны vs Макароны
![Page 63: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/63.jpg)
Макаруны vs Макароны
![Page 64: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/64.jpg)
Суши, Пицца, Салат, Оладья.
![Page 65: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/65.jpg)
Суши, Пицца, Салат, Оладья.
![Page 66: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/66.jpg)
Суши, Пицца, Салат, Оладья, Крылышки, Мороженое.
![Page 67: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/67.jpg)
Суши, Пицца, Салат, Оладья, Крылышки, Мороженое.
![Page 68: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/68.jpg)
Применение
Классификация
Фильтрация контента
![Page 69: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/69.jpg)
Выводы
• Свёрточные сети работают и могут повторно использоваться.
• Чтобы не умереть от старости обучая сеть нужно использовать GPU
• В мире Нейронных сетей только появляются инструменты такие как PHP в мире Web
![Page 70: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/70.jpg)
Вакансия
![Page 71: Что такое Transfer Learning, или как перестать бояться и начать использовать свёрточные нейронные сети, Руслан](https://reader034.vdocuments.site/reader034/viewer/2022052312/58808b2a1a28ab35718b69a1/html5/thumbnails/71.jpg)
Спасибо
Вопросы? https://vk.com/roosh_roosh
https://telegram.me/roosh_roosh