Глубокие нейронные сети в настоящее время являются одним из самых популярных методов интеллектуального анализа данных. Почти во всех предметных областях они показывают более качественные результаты, по сравнению с другими методами машинного обучения.

Отличительная особенность курса заключается в том, что он ориентирован на практическое использование нейронных сетей, а не изучение их внутреннего устройства. Для понимания курса не требуется глубокое знание математики. Курс рассчитан на программистов, способных успешно применять существующие библиотеки глубоких нейронных сетей для решения практических задач анализа изображений и текстов.

Обновление от 10.11.2017. Бэкенд Keras заменен на TensorFlow в связи с объявлением об прекращении разработки Theano. Все примеры кода теперь используют бэкенд TensorFlow. Рекомендуется заменить Theano на TensorFlow, а для новой установки сразу использовать TensorFlow.

Структура курса

Курс состоит из видеолекций и практических работ.

В лекциях изложены теоретические основы работы глубоких нейронных сетей и особенности их обучения, описаны популярные в настоящее время типы глубоких нейронных сетей (сверточные сети, сети долго-краткосрочной памяти (LSTM)), библиотеки для языка Python, реализующие глубокие нейронные сети (Keras, TensorFlow, Theano), а также методы использования глубоких нейронных сетей для анализа изображений и текстов.

Практические работы содержат задания для самостоятельного выполнения на анализ открытых наборов данных (MNIST, CIFAR-10 и IMDB Movie Review Dataset) с использованием глубоких нейронных сетей и примеры программ, которые можно использовать в качества образца.

Материалы курса

Основы обучения глубоких нейронных сетей

  1. Введение.
  2. Лекция “Искусственные нейронные сети”.
  3. Лекция “Обучение нейронных сетей”.
  4. Лекция “Библиотеки для глубокого обучения”.
  5. Лекция “Распознавание рукописных цифр”.
  6. Лекция “Анализ качества обучения нейронной сети”.
  7. Практическая работа “Распознование рукописных цифр из набора данных MNIST на Keras” (ноутбук в Colaboratory).
  8. Лекция “Решение задачи регрессии” (ноутбук в Colaboratory).
  9. Лекция “Сохранение обученной нейронной сети”.
  10. Лекция “Сверточные нейронные сети”.
  11. Лекция “Распознавание объектов на изображениях”.
  12. Практическая работа “Распознавание объектов на изображениях с помощью Keras” (ноутбук в Colaboratory).
  13. Лекция “Рекуррентные нейронные сети”.
  14. Лекция “Анализ текстов с помощью рекуррентных нейронных сетей”.
  15. Практическая работа “Определение тональности отзывов на фильмы с помощью Keras” (ноутбук в Colaboratory).
  16. Лекция “Использование GPU для ускорения обучения нейронной сети”.

Глубокие нейронные сети для задач компьютерного зрения

  1. Лекция “Анализируем изображения с помощью нейронных сетей”.
  2. Лекция “Предварительно обученные нейронные сети в Keras”.
  3. Лекция “Как подготовить собственный набор изображений для обучения нейронной сети в Keras”.
  4. Лекция “Перенос обучения (Transfer Learning)”.
  5. Практика “Распознавание собак и кошек на изображениях”.
  6. Лекция “Тонкая настройка нейронной сети (Fine Tuning)”.
  7. Лекция “Анализ признаков, извлеченных нейросетью”.
  8. Лекция “Дополнение данных (Data Augmentation)”.
  9. Лекция “Визуализация сверточной нейронной сети”.
  10. Проект “Распознавание человека по лицу на фотографии”.
  11. Проект “Поиск объектов на изображениях”.

Анализ текстов с помощью глубоких нейронных сетей

Новый раздел, скоро будут подготовлены материалы.

Особенности работы Keras

  1. Обзор возможностей Keras.
  2. Визуализация качества обучения нейросети.
  3. Сохранение нейросети в процессе обучения.

Необходимое программное обеспечение

Используется библиотека Keras, а также TensorFlow или Theano в качестве вычислительного бэкенда. Все библиотеки распространяются бесплатно.

Примеры кода протестированы на Python 3 и TensorFlow. Инструкции по установке Keras:

Также для запуска примеров кода можно использовать платформу Google Colaboratory, где все необходимые библиотеки уже установлены. Google предоставляет Colaboratory бесплатно.

Практические примеры использования глубоких нейронных сетей

  1. Сверточная нейронная сеть для распознавания рукописных цифр MNIST.
  2. Соревнования по распознаванию рукописных цифр MNIST на Kaggle.

Примеры программ

https://github.com/sozykin/dlpython_course.

Дополнительные материалы

  1. Математика глубоких нейронных сетей. Список книг и статей для тех, кто хочет разобраться с математическими основами глубоких нейронных сетей.

Как помочь

Если курс вам показался полезным, то помогите, пожалуйста, распространить информацию о нем. Рекомендуйте своим друзьям в социальных сетях. Ставьте лайки и пишите комментарии к видео на YouTube, т.к. активность учитывается YouTube при показе видео в поиске и в похожих видео.

Если вы хотите поддержать развитие курса деньгами, то можно перевести их на мой Яндекс кошелек.

Благодарности

При реализации проекта используются средства поддержки, выделенные в качестве гранта на основании конкурса, проведенного Общероссийской общественно-государственной просветительской организации «Российское общество «Знание».