Программа курса
«Нейронные сети на Python»
Программа курса, короткое и полное расписание,
даты курсовой работы, дипломной работы, устного экзамена
Программа обучения
Краткая программа обучения: даты, темы занятий

Или посмотрите подробную программу
В ней есть описания занятий и задания к каждому занятию
Подробная программа обучения
С описаниями занятий и заданий
25 мая
12:00 мск
25 мая
12:00 мск
Модель нейронной сети. Библиотеки Keras и TensorFlow. Платформа Google Colaboratory
Описание занятия: Первое занятие по нейронным сетям - введение в нишу, путь разработчика в области машинного обучения, математическая модель нейрона, принципы обучения нейронной сети и обучение первой нейронной сети на примере распознавания цифр.
Демонстрация кода в Google Colaboratory

Задание: Распознавание рукописных цифр MNIST
25 мая
15:00 мск
25 мая
15:00 мск
Основы Python: структуры данных и функции
Описание занятия: Знакомство с терминалом, установка Anaconda на Windows, Linux, macOS; запуск JupyterNotebook. Базовые операции: Python как калькулятор; переменные и типы, преобразование типов; базовые конструкции, циклы

Задание: Установка Anaconda, задача на условный оператор, использование циклов
01 июня
12:00 мск
01 июня
12:00 мск
Оценка качества обучения сети. Переобучение. Обучающая, проверочная и тестовая выборки. Визуализация качества обучения сети
Описание занятия: Вторая тема, ключевая в обучении нейронных сетей - обучающая и тестовая выборка, определение качества обучения нейронной сети. Разбирать тему будем на примере распознавания рукописных цифр

Задание: Оценка качества обучения системы распознавания рукописных цифр MNIST
01 июня
15:00 мск
01 июня
15:00 мск
Python: научные вычисления с NumPу
Описание занятия: Знакомство с функциями; структура np.ndarray; отказ от циклов и базовые статистические функции

Задание: Прочитать заранее подготовленные одномерные данные с помощью соответствующей функции в NumPy
Написать несколько простых функций, которые совершают заданные арифметические операции с данными
08 июня
12:00 мск
08 июня
12:00 мск
Свёрточные нейронные сети. Классификация объектов на изображениях
Описание занятия: Свёрточные нейронные сети применяются для обработки изображений, сейчас это самый мощный инструмент для работы с любыми изображениями, их принцип работы построен аналогично с работой зрительной системы человека. Мы разберём свёрточные сети на примере распознавания различных объектов

Задание: Распознавание объектов из набора данных CIFAR-10
08 июня
15:00 мск
08 июня
15:00 мск
Python: обработка данных с Pandas
Описание занятия: Структуры pd.Series и pd.DataFrame; базовая функциональность; чтение данных из файлов разных типов; подвыборки; индексация, типы индексов, мультииндексация; встроенные статистические функции

Задание: Прочитать заранее подготовленные данные с использованием соответствующей функции в библиотеке Pandas Вывести на экран подвыборку датасета, которая соответствует заданным условиям
15 июня
12:00 мск
15 июня
12:00 мск
Предварительно обученные свёрточные нейронные сети
Описание занятия: В нейронных сетях вы можете использовать часть сети, которая была предварительно обучена другими разработчиками, часто это компании-гиганты типа Google. Использование предобученной нейронной сети значительно упрощает разработку и скорость обучения вашей собственной сети

Задание: Распознавание котов и собак на изображениях
15 июня
15:00 мск
15 июня
15:00 мск
Python: визуализация данных
Описание занятия: Отображение двумерных данных c Matplotlib; Свойства графика; диаграммы, гистограммы; Seaborn

Задание: Построить 4 графика переменных из датасета как один объект в логарифмической шкале, подобрать размер шрифта, масштаб, подписать каждый график
22 июня
12:00 мск
22 июня
12:00 мск
Обработка текстов с помощью глубоких нейросетей. Подготовка текста, векторные представления
Описание занятия: Работа с текстами - одна из ключевых областей применения нейронных сетей, на этом занятии мы разберём пример категоризации новостей Reuters с помощью глубоких (но пока не рекуррентных) нейронных сетей

Задание: Распознавание писателей по текстам
29 июня
12:00 мск
29 июня
12:00 мск
Рекуррентные нейронные сети для обработки текстов
Описание занятия: Одна из важнейших тем в нейронных сетях, это предварительная обработка данных. На этом занятии вы узнаете о принципах предобработки изображений и текстовых данных.

Задание: Подготовка и очистка данных
06 июля
12:00 мск
06 июля
12:00 мск
Продвинутые темы работы с текстами
Описание занятия: Работа с текстами - одна из ключевых областей применения нейронных сетей, на этом занятии мы разберём пример категоризации новостей Reuters с помощью глубоких (но пока не рекуррентных) нейронных сетей

Задание: Определение категории новостей из набора данных Reuters
13 июля
12:00 мск
13 июля
12:00 мск
Нейронные сети для решения задачи регрессии
Описание занятия: Регрессия - это задача, когда итоговым ответом сети является не класс, а действительно число, например, прогноз погоды или оценка возраста человека по фотографии. Нейронные сети успешно решают задачи регрессии, мы разберём эту тему на примере оценки стоимости недвижимости

Задание: Оценка стоимости недвижимости / оценка зарплаты по резюме на hh.ru
20 июля
12:00 мск
20 июля
12:00 мск
Полносвязные и рекуррентные нейронные сети для прогнозирования временных рядов
Описание занятия: Прогнозирование временных рядом похоже на регрессию, только с добавлением нового измерения - времени. Для прогнозирования временных рядом можно применять практически все структуры нейронных сетей: полносвязные, свёрточные и рекуррентные. Вы уже будете знать все эти архитектуры, мы покажем, как применять их для прогнозирования временных рядов

Задание: Прогнозирование курса валют
27 июля
12:00 мск
27 июля
12:00 мск
Прямые и свёрточные нейронные сети для обработки аудио сигналов
Описание занятия: Работа с аудио-сигналами (голос, музыка) требует тех же нейросетевых архитектур, главное отличие - предобработка данных, использование спектра или треугольных фильтров. Мы разберём специфику работы с аудио-сигналом на примере распознавания диктора по голосу

Задание: Определение жанра музыки
03 августа
12:00 мск
03 августа
12:00 мск
Автокодировщики, вариационные автокодировщики, генеративные модели на базе автокодировщиков
Описание занятия: Автокодировщики сжимают данные в меньшее пространство и выступают нейросетевым аналогом архиватора, но они могут так же использоваться в качестве генеративной модели, например, генерировать рукописные цифры

Задание: Поиск мошеннических операций по картам / генерация рукописных цифр
10 августа
12:00 мск
10 августа
12:00 мск
Генеративные состязательные сети
Описание занятия: Генеративные нейронные сети используются для машинного творчества, генерации изображений, текстов, звука. Архитектура генеративных сетей принципиально отличается от всех остальных нейронных сетей, она состоит из двух конкурирующих друг с другом нейронных сетей. Будем разбирать тему на примере генерации изображений

Задание: Генерация изображений
17 августа
12:00 мск
17 августа
12:00 мск
Введение в генетические алгоритмы
Описание занятия: Генетические алгоритмы, это моделирование принципов эволюции - естественный отбор, скрещивание и мутации. Они позволяют нестандартным образом решать многие задачи искусственного интеллекта и составляют мощную конкуренцию нейронным сетям. Будем разбирать генетические алгоритмы на примере прохождения лабиринта

Задание: Обучение бота прохождению лабиринта
24 августа
12:00 мск
24 августа
12:00 мск
Генетические алгоритмы для обучения нейронных сетей
Описание занятия: Огромное преимущество генетических алгоритмов - с их помощью можно перебрать автоматические сотни и тысячи различных архитектур нейронных сетей выбрать лучшую. Генетический алгоритм сможет выбрать за вас, сколько должно быть слоёв в нейронной сети, сколько нейронов в слоях, какая функция активации - это будет совсем не то, что выбрали бы вы и это будет точно эффективнее

Задание: Автоматический подбор архитектуры нейронной сети
31 августа
12:00 мск
31 августа
12:00 мск
Интеграция нейронной сети в Production 1
Описание занятия: Вывод обученной сети в продуктив - один из самых важных вопросов и при отсутствии подготовленного процесса и инфраструктуры занимает значительно больше времени, чем разработка. В ходе занятия мы разберем 2 наиболее распространенных варианта вывода в продуктив: Реализация модели как Web-сервиса и Реализация модели на Кластере с большим объемом данных. Мы разберем все определения, особенности и ошибки на примере «игрушечного кода». Также обсудим рекомендации по лучшим практикам при выводе модели в продуктив

Задание: Реализация модели распознания рукописных цифр MNIST как Web-сервиса и нна Кластере Spark
07 сентября
12:00 мск
07 сентября
12:00 мск
Интеграция нейронной сети в Production 2
Описание занятия: В рамках занятия будет продолжена тема вывода Нейронных сетей и Моделей в продакшен. Будут рассмотрены варианты контейнеризации приложений с нейтронными сетями, оркестрации контейнеров и конвертами Keras моделей в C++ код

Задание: Упаковка обученной модели MNIST в контейнер, с сохранением всех зависимостей
14 сентября
12:00 мск
14 сентября
12:00 мск
Написание нейронных сетей с библиотекой PyTorch
Описание занятия: Изучение базовых операций и возможностей библиотеки Pytorch. Cоздание полносвязного перцептрона для распознавания рукописных цифр и оценка результатов. Создание сверточной нейронной сети для распознавания рукописных цифр и оценка результатов. Вычисления на GPU и CPU

Задание: Реализация модели распознания рукописных цифр MNIST как Web -сервиса. Задание Pro будет связано с реализацией этой же модели на Кластере Spark
21 сентября
12:00 мск
21 сентября
12:00 мск
Написание нейронных сетей с библиотекой Tensorflow
Описание занятия: В рамках занятия будет продолжена тема вывода Нейронных сетей и Моделей в продакшен. Будут рассмотрены варианты контейнеризации приложений с нейтронными сетями, оркестрации контейнеров и конвертами Keras моделей в C++ код

Задание: Упаковка обученной модели MNIST в контейнер, с сохранением всех зависимостей. Продвинутое задание будет предполагать запуск модели с помощью фреймворка tensorflow serving
28 сентября
12:00 мск
28 сентября
12:00 мск
Использование Word2vec
Описание занятия: Первая часть занятия будет посвящена предобученным embedding-слоям, которые создают крупные компании, а вторая часть - сегментации: выделению некоторых блоков внутри текста

Задание: Сегментация резюме на hh.ru
05 октября
12:00 мск
05 октября
12:00 мск
Алгоритмы кластеризации данных
Описание занятия: Изучение базовых алгоритмов кластеризации. Кластеризация текстовых данных при помощи K-Means. Алгоритмы спектральной и иерархической кластеризации на обучающих примерах.

Задание: Кластеризация рукописных цифр K-Means алгоритмом.
12 октября
12:00 мск
12 октября
12:00 мск
Object Detection (распознание и идентификация местоположения объекта на изображении)
Описание занятия: Наиболее востребованная тема в задачах обработки видеоданных с камер. мы рассмотрим истоки появления алгоритма selective search, и перейдем от него к таким современным реализациям как fater rcnn и yolo. Обсудим плюсы и минусы различных подходов и критерии выбора целевого подхода

Задание: Детектирование нескольких классов (в зависимости от типа задания) на изображении, на основе Open Image Dataset
19 октября
12:00 мск
19 октября
12:00 мск
Signal processing в задачах прогнозирования нейсправностей и предективного обсулуживания
Описание занятия: Тема предективного обслуживания является очень востребованной на любом промышленном предприятии, которое выпускает/эксплуатирует станки и машины, в последние годы активно развивается использование техник предиктивного обслуживания на транспорте. В ходе занятия будут разобраны основные определения и подходы в предиктивном обслуживании. мы разберем наиболее передовые методы предсказания Time to Failure (прим. время до поломки) с использованием нейронных сетей

Задание: Предсказание Time to Failure для реактивной турбины самолета на основе датчиков и встроенных сенсоров. Продвинутое задание будет включать тестирование различных архитектур и фичеинженеринг (создание релевантных признаков на основе данных сенсоров)
26 октября
12:00 мск
26 октября
12:00 мск
Алгоритмы препроцессинга данных
Описание занятия: Изучение алгоритмов для обработки данных. Нормализация и шкалирование данных. Отображение в Гауссово распределение. Использование метода главных компонент. Создание «полиномиальных» фич. Использование фреймворка tsfresh для генерации фич временного ряда

Задание: Отображение пространства главных компонент на примере инкрементального PCA
02 ноября
12:00 мск
02 ноября
12:00 мск
Перенос стиля изображения
Описание занятия: Занятие будет посвящено нейронным сетям, которые позволяют скопировать стиль с одного изображения на другое. Мы будем практиковаться на переносе стиля с картин на фотографии

Задание: Перенос стиля картин на фотографии
09 ноября
12:00 мск
09 ноября
12:00 мск
Распознавание речи
Описание занятия: тНа занятии разберем одну из самых популярных задач работы с речью - это превращение речи в текст, наподобие того, как работают сервисы Яндекс и Ок, Google

Задание: Распознавание русской речи (Ok, Google)
16 ноября
12:00 мск
16 ноября
12:00 мск
Свободная тема по выбору группы
Описание занятия: тему занятия выберем по итогам голосования группы - в завершении курса у участников всегда появляются либо пожелания по новым темам, либо потребность проработать определённые темы подробнее
Расписание курсовой работы, дипломной работы и устного экзамена
17 августа
17 августа
Публикация задания Курсовой работы
17 августа вы получаете задание Курсовой работы - это будет База данных и минимальная точность работы нейронной сети, которую вы должны будете получить.
Задание будет решаться одной или несколькими архитектурами нейронных сетей, которые вы пройдёте до этого
14 сентября
14 сентября
Сдача Курсовой работы
До 14 сентября вы должны выложить своё решение курсовой работы и показать необходимую точность работы нейронной сети.
До 14 сентября у вас будет неограниченное число попыток
21 сентября
21 сентября
Начало работы над Дипломным проектом
21 сентября вы должны заявить тему Дипломного проекта, короткое описание проекта и утвердить тему со своим куратором
16-30 ноября
16-30 ноября
Защита Дипломных проектов
С 16 по 30 ноября будут проходить защиты Дипломных проектов, вы должны получить не только хорошую точность работы нейронной сети, но и подробно описать процесс исследования - как собирали и обрабатывали данные, как выбирали и проверяли архитектуру нейронной сети - главным критерием защиты дипломного проекта будет то, что вы действительно качественно прошли процесс исследования и решения задачи
23 ноября
06 декабря
23 ноября
06 декабря
Устный экзамен в Skype
С 23 ноября по 06 декабря будет устный экзамен в Skype, экзамен будет проводиться по билетам, на нём вам нужно будет показать понимание всех архитектур нейронных сетей, процесса работы с данными, процесса исследования. В экзамен войдут все темы, которые мы будем разбирать на курсе, кроме занятие по Python