Deep Learning and Convolutional Networks
Dr. Artem Nikonorov
SSAU
IPSI RAS
2/39
Потребность в новых подходах и алгоритмах
Принципиально новые проблемы HPC –
1. Отсутствие общего подхода к формальному описанию, алгебры
недостаточно
2. Нужны новые алгоритмы – более долгие, но более точные
Решения:
1. Попытки создания общего подхода к описанию
Теория взаимодействующих процессов, Хоар, 1986
TLA - temporal logic of action, Lamport, 2006, Microsoft Research
2. Анализ существующих алгоритмов и их проблем
- Математика 18 века рассчитана на ручные вычисления, вычисляется мгновенно
- Нужны алгоритмы точность которых зависит от времени вычислений
Примеры проблем:
Минимизация Аппроксимация (регрессия)
f(x)->min * arg min ( , )f a x a y
Новые алгоритмы – генетический алгоритм
Очевидное решение – Полный перебор
Очень долго!
Монте-Карло - лучше
Желательна комбинация стохастики и регулярности
Минимизация
f(x)->min
Генетический алгоритм:
Бинаризация x –
Генетический код особи
RANSAC
RANdom SAmples Consensus
Другие методы:
Conditional Random Fields
MCMC – Markov Chain Monte-Carlo – Алгоритм Метрополиса-Гастингса
Bayesian Evidence
Цель - подобрать параметры
модельной функции так, чтобы
число выбросов (аутлаеров) было
минимально
MACHINE LEARNING – Data Driven Approach
Обучение – нахождение зависимостей в данных,
Цель - построение прогноза по имеющимся данным
Варианты:
Unsupervised, Semi-supervised
Y – вещественное – регрессия
натуральное – классификация
0,1 – двухклассовая классификация
Классификация, или распознавание
основано на признаках (features)
Обучающая выборка( ) , 1..i i if i N x y
1 1) ?(N Nf   x Прогноз
Supervised Learning / Обучение с учителем
Метод опорных векторов
Двухклассовое распознавание
Метод опорных векторов
Support Vector Machine, Вапник
Линейная разделимость
Отсутствие разделимости
Ядерное сглаживание
Kernel regression
SVM основан на скалярном
произведении (x,y)
С учетом ядра –
(X,Y) ~ (xKy)
Сравнение классификаторов
Сравнение классификаторов
Распознавание объектов
Как это видит машина
Нейронные сети
Неправильная нейробиологическая аналогия
Перцептрон Розенблата
Нейронные сети
Неправильная нейробиологическая аналогия Перцептрон Розенблата
Многослойные сети, error backpropogation
Многослойная сеть Функция активации
Обратное распространение
ошибки пример
Нейронные сети
Аппроксимация и обобщение
Регуляризация,
Контрастирование,
learning rate
Overfit
Сверточные сети
Сверточные сети – Convolutional Neural Nets, CNN
Первые публикации – 1989
Популярность – AlexNet, 2012
Yann LeCun
Сверточные сети
Иллюстрация сверточного слоя
Выделение признаков + классификация Решаемые проблемы
- Переобучение
- Привыкание к данным
- Выделение признаков перестало
быть искусством
Сверточные сети – Базовые слои
Convolution – Свёрточный слой
RELU – Линейный с насыщением
POOL – Pooling, DropOut
FC – Полносвязный слой
LRN – Нормировка данных
Примеры конфигураций:
INPUT -> FC
INPUT -> CONV -> RELU -> FC
INPUT -> [CONV -> RELU -> POOL]*2 -> FC -> RELU -> FC
INPUT -> [CONV -> RELU -> CONV -> RELU -> POOL]*3 -> [FC -> RELU]*2 -> FC
Сверточные сети. Слои развернуто
Pooling
RELU
Сверточные сети. Ресурсы. Фреймворки. Caffe
Лучший курс. Стэнфорд. Анрей Карпатный
http://cs231n.github.io/
Фреймворки
Python
Theano
Torch (LUA)
C++
MS CNTK
Caffe - http://caffe.berkeleyvision.org/
Примеры.
Сегментация
http://www.robots.ox.ac.uk/~szheng/crfasrnndemo
+ Bag of Words
= Neural Talk
Еще -
Восстановление изображений
Автопилот
Сегментация медицинских данных
And so on…
Caffe
Работа построена на конфигурационных файлах.
1. Конфигурация сети
2. Солвер – конфигурация обучения
3. Бинарный файл обученной сети
4. Model Zoo
Caffe
Определение сети.
Caffe
Определение сети.
Заключение
Заключение - вопрос
Сильный и слабый ИИ
Насколько это возможно?
Ваши вопросы?
Dr. Arem Nikonorov
artniko@gmail.com

Deep Learning and Convolutional Networks

  • 1.
    Deep Learning andConvolutional Networks Dr. Artem Nikonorov SSAU IPSI RAS
  • 2.
    2/39 Потребность в новыхподходах и алгоритмах Принципиально новые проблемы HPC – 1. Отсутствие общего подхода к формальному описанию, алгебры недостаточно 2. Нужны новые алгоритмы – более долгие, но более точные Решения: 1. Попытки создания общего подхода к описанию Теория взаимодействующих процессов, Хоар, 1986 TLA - temporal logic of action, Lamport, 2006, Microsoft Research 2. Анализ существующих алгоритмов и их проблем - Математика 18 века рассчитана на ручные вычисления, вычисляется мгновенно - Нужны алгоритмы точность которых зависит от времени вычислений Примеры проблем: Минимизация Аппроксимация (регрессия) f(x)->min * arg min ( , )f a x a y
  • 3.
    Новые алгоритмы –генетический алгоритм Очевидное решение – Полный перебор Очень долго! Монте-Карло - лучше Желательна комбинация стохастики и регулярности Минимизация f(x)->min Генетический алгоритм: Бинаризация x – Генетический код особи
  • 4.
    RANSAC RANdom SAmples Consensus Другиеметоды: Conditional Random Fields MCMC – Markov Chain Monte-Carlo – Алгоритм Метрополиса-Гастингса Bayesian Evidence Цель - подобрать параметры модельной функции так, чтобы число выбросов (аутлаеров) было минимально
  • 5.
    MACHINE LEARNING –Data Driven Approach Обучение – нахождение зависимостей в данных, Цель - построение прогноза по имеющимся данным Варианты: Unsupervised, Semi-supervised Y – вещественное – регрессия натуральное – классификация 0,1 – двухклассовая классификация Классификация, или распознавание основано на признаках (features) Обучающая выборка( ) , 1..i i if i N x y 1 1) ?(N Nf   x Прогноз Supervised Learning / Обучение с учителем
  • 6.
  • 7.
    Метод опорных векторов SupportVector Machine, Вапник Линейная разделимость Отсутствие разделимости Ядерное сглаживание Kernel regression SVM основан на скалярном произведении (x,y) С учетом ядра – (X,Y) ~ (xKy)
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    Многослойные сети, errorbackpropogation Многослойная сеть Функция активации Обратное распространение ошибки пример
  • 14.
    Нейронные сети Аппроксимация иобобщение Регуляризация, Контрастирование, learning rate Overfit
  • 15.
    Сверточные сети Сверточные сети– Convolutional Neural Nets, CNN Первые публикации – 1989 Популярность – AlexNet, 2012 Yann LeCun
  • 16.
    Сверточные сети Иллюстрация сверточногослоя Выделение признаков + классификация Решаемые проблемы - Переобучение - Привыкание к данным - Выделение признаков перестало быть искусством
  • 17.
    Сверточные сети –Базовые слои Convolution – Свёрточный слой RELU – Линейный с насыщением POOL – Pooling, DropOut FC – Полносвязный слой LRN – Нормировка данных Примеры конфигураций: INPUT -> FC INPUT -> CONV -> RELU -> FC INPUT -> [CONV -> RELU -> POOL]*2 -> FC -> RELU -> FC INPUT -> [CONV -> RELU -> CONV -> RELU -> POOL]*3 -> [FC -> RELU]*2 -> FC
  • 18.
    Сверточные сети. Слоиразвернуто Pooling RELU
  • 19.
    Сверточные сети. Ресурсы.Фреймворки. Caffe Лучший курс. Стэнфорд. Анрей Карпатный http://cs231n.github.io/ Фреймворки Python Theano Torch (LUA) C++ MS CNTK Caffe - http://caffe.berkeleyvision.org/ Примеры. Сегментация http://www.robots.ox.ac.uk/~szheng/crfasrnndemo + Bag of Words = Neural Talk Еще - Восстановление изображений Автопилот Сегментация медицинских данных And so on…
  • 20.
    Caffe Работа построена наконфигурационных файлах. 1. Конфигурация сети 2. Солвер – конфигурация обучения 3. Бинарный файл обученной сети 4. Model Zoo
  • 21.
  • 22.
  • 23.
    Заключение Заключение - вопрос Сильныйи слабый ИИ Насколько это возможно? Ваши вопросы? Dr. Arem Nikonorov artniko@gmail.com