Основы машинного обучения, базовые понятия (например переобучение и способы его предотвращения), различные архитектуры сетей, и, в частности, сверточные сети. Так же рассмотрены методы оптимизации вычислений в подобных архитектурах: quantization, binary-net и другие.
4. Во многих ситуациях описать все
зависимости формально либо
невозможно, либо слишком трудозатратно
Это сподвигло на создание нового подхода
5. Машинное обучение
Математическая дисциплина, использующая разделы математической
статистики, численных методов оптимизации, теории вероятностей,
дискретного анализа, и извлекающая знания (зависимости) из данных
6. Задача машинного обучения
На примере классификации:
В клинику приходит пациент на обследование. По результатам обследования
необходимо дать диагноз - болен пациент раком или нет. У нас так же есть
исторические данные о всех пациентах, которые проходили обследование,
вместе с историей их болезни.
11. Проблема - подобные методы
очень сильно зависят от
представления данных
Например, логистическая регрессия не сможет использовать сами
изображения полученные в результате прохождения МРТ для диагноза. Очень
сложно найти зависимость между каждым отдельным пикселем и результатом
12. Глубокое обучение
Deep Learning
Решает проблему представления данных, так как представляет способ
представления сложных данных на основе более простых концептов
25. Метод обратного
распространения ошибки
a - активации слоя l (исходящие значения)
w - матрица весов слоя l
z - результат перемножения входящих значений на матрицу весов
f - активационная функция (логистическая или ReLU)
C - функция ошибки
26. Метод обратного
распространения ошибки
1. Входящие данные x: установить входящие данные как активации первого
слоя
2. Обработка данных: для каждого слоя l=2, 3,..,L вычислить и его
активации
3. Посчитать ошибку на выходе :
4. Распространить ошибку обратно: для каждого слоя l=L-1, L-2, .., 2
вычислить
5. Обновить все параметры:
29. Dropout
• В процессе обучения случайным образом какая то часть нейронов
“отключается” (обычно половина), при этом “вес” оставшихся нейронов
соответственно увеличивается.
• При использовании модели в работе все нейроны включаются.
• В результате вырабатываются избыточные связи и зависимости.
• Dropout, по сути, представляет собой ансамбль нескольких моделей которые
работают вместе.
30. Регуляризация
• Известно, что когда модель переобучается - веса становятся большими по
модулю и разными по знаку.
• Если минимизировать эти отклонения - до определенной степени можно
побороть переобучение.
• L2 и L2 регуляризация - это дополнительное слагаемое в функции ошибки:
37. Уменьшение разрядности
параметров и данных
• Известно, что нейросетевые модели шумоустойчивы.
• Если мы уменьшаем разрядность параметров и/или обрабатываемых данных -
мы всего лишь добавляем шум, с которым модель должна хорошо
справляться.
• Использование 8 разрядов достаточно, что бы сохранить точность модели (для
моделей уровня AlexNet).
• На данный момент понижение разрядности уже является частью основных
пакетов для машинного обучения (например TensorFlow).
38. BinaryNet и XNOR-Net
• Автор - Matthieu Courbariaux, руководитель - Yoshua Bengio (Университет
Монреаля)
• Уменьшить разрядность до 1 (бинарные значения) как для активаций, так и для
параметров модели
• Главное арифметическое действие в нейросетевых моделях - сумма
произведений. Её можно заменить на XNOR-count:
• XNOR - 1 если аргументы равны, 0 в противном случае.
• Popcount - количество 1 в аргументе.
• Результат:
• Ускорение в 7 раз на GPU с использованием специально разработанного
вычислительного ядра
• Уменьшение размера модели в 32 раза
39. FPGA
• Программи́ руемая по́ льзователем ве́ нтильная ма́ трица (ППВМ, англ. Field-
Programmable Gate Array, FPGA) — полупроводниковое устройство, которое
может быть сконфигурировано производителем или разработчиком после
изготовления. [Wikipedia]
• Схема может быть модифицирована пользователем в любой момент.
• Схема состоит из логических элементов (вентилей, gates).
• Можно программировать схему под конкретную задачу (в нашем случае под
конкретную нейтронную сеть)
• Это можно совместить с XNOR-Net для не только улучшения
производительности, но и энергоэффективности.
• Бонус - можно создать архитектуру отличную от стандартной архитектуры фон
Неймана
40. Что дальше?
• Виды нейросетей
• Recurrent Neural Networks
• Q-learning (Reinforcement learning)
• Generative Adversarial Networks
• …
• Различные модели
• VGG
• Inception
• …
• Методы улучшения производительности
• Pruning
• Slicing
• …
41. Домашнее задание
Реализовать нейросетевую модель на любом языке программирования без
использования специальных пакетов/библиотек.
1. Многослойный перцептрон (Например LeNet-300)
2. Сверточная сеть (LeNet-5)
3. Сверточная сеть с dropout и local response normalization (AlexNet)
43. Обучение
• Deep Learning Book by Ian Goodfellow
• https://yandexdataschool.ru/edu-process/courses/machine-learning
• https://www.coursera.org/specializations/machine-learning-data-analysis
• http://neuralnetworksanddeeplearning.com/
• https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap
• Udacity
• Coursera
• Kaggle
• OpenAI Gym
• OpenAI Universe
44. Ресурсы
• Deep Learning Book by Ian Goodfellow
• https://yandexdataschool.ru/edu-process/courses/machine-learning
• https://www.coursera.org/specializations/machine-learning-data-analysis
• http://neuralnetworksanddeeplearning.com/
• Courbariaux, M., & Bengio, Y. (2016). BinaryNet: Training Deep Neural Networks with Weights and
Activations Constrained to +1 or -1. arXiv, 9. Retrieved from http://arxiv.org/abs/1602.02830
• Rastegari, M., Ordonez, V., Redmon, J., & Farhadi, A. (2016). XNOR-Net: ImageNet Classification Using
Binary Convolutional Neural Networks. arXiv Preprint, 1–17. https://doi.org/10.1007/978-3-319-46493-0
• Courbariaux, M., Bengio, Y., & David, J. (2015). BinaryConnect: Training Deep Neural Networks with binary
weights during propagations. Nips, 1–9. https://doi.org/arXiv: 1412.7024
• Lin, Z., Courbariaux, M., Memisevic, R., & Bengio, Y. (2015). Neural Networks with Few Multiplications. Iclr,
1–8. https://doi.org/10.1017/CBO9781107415324.004
• Li, F., & Liu, B. (2016). Ternary Weight Networks. Computer Vision and Pattern Recognition. Retrieved from
http://arxiv.org/abs/1605.04711
• Goodfellow, I., Pouget-Abadie, J., & Mirza, M. (2014). Generative Adversarial Networks. arXiv Preprint arXiv:
…, 1–9. Retrieved from http://arxiv.org/abs/1406.2661
• Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D., & Riedmiller, M. (2013). Playing
Atari with Deep Reinforcement Learning. arXiv Preprint arXiv: …, 1–9. https://doi.org/10.1038/nature14236
• Umuroglu, Y., Fraser, N. J., Gambardella, G., & Blott, M. (2017). FINN : A Framework for Fast , Scalable
Binarized Neural Network Inference. Fpga, (February). https://doi.org/10.1145/1235