# К у р с "Нейронные сети и глубокое обучение" Самарского университета
Лектор [Артем Владимирович Никоноров ](https://ssau.ru/staff/66320001-nikonorov-artem-vladimirovich ), д.т.н., artniko@gmail.com
Ассистенты: [Виктория Витальевна Евдокимова ](https://ssau.ru/staff/304968209-evdokimova-viktoriya-vitalevna/edu ),
[Никита Александрович Фирсов ](https://ssau.ru/staff/441332557-firsov-nikita-aleksandrovich/edu )
Телеграмм группа курса:
https://t.me/DL_SamU_2022
К у р с основывается на предыдущих более обзорных лекциях и туториалах по глубокому обучению и е г о приложениях, в частности, вот [небольшая обзорная лекция ](https://youtu.be/Gpq1PFUee88 ) в Кавказском Математическом Центре. Также во многом этот курс является адаптацией известнейшего курса http://cs231n.stanford.edu/
Материалы курса за 2020-21 годы расположены [здесь ](https://github.com/da0c/DL_Course_SamU ).
К у р с 2022 года состоит из трех частей:
**Введение в глубокое обучение:** краткий обзор всех достижений машинного обучения до сверточных нейронных сетей, две лекции.
**Основы глубокого обучения:** собственно основной материал курса, порядка 8 лекций.
**Дополнительные главы глубокого обучения:** новинки и SOTA решения, трансформеры, метаобучение, zero shot learning и другое.
## График проведения курса 2022-2023
**Видеозаписи лекций 2020-21 годов можно найти по [ссылке ](https://github.com/da0c/DL_Course_SamU ).**
**Лекции раз в неделю по [четвергам ](https://ssau.ru/rasp?staffId=66320001&selectedWeek=3&selectedWeekday=1 ).
Начало в 19-00 по Самаре. Продолжительность лекции два астрономических часа.**
Первая лекция: 10.09.22 в 10:00 в Zoom.
**Следующая лекция: 13.10.22 в 19:00 по Самаре в Zoom.**
Подключиться к конференции Zoom
https://us02web.zoom.us/j/8366671872?pwd=NS9ZaXNWWG55Y0pESUZIZHlRa0U5dz09
Идентификатор конференции: 836 667 1872
Код доступа: 810019
## Лекционный план 2022-2023
**Часть первая. Введение в глубокое обучение.**
**Лекции 1,2. Классификация, основанная на данных**
Введение в курс.
Задача классификации изображений.
Подходы основанные на данных.
Основные идеи - От MLP до CNN.
[Видеозапись первой части ](https://youtu.be/pruCadZdhmQ )
[Видеозапись второй части ](https://youtu.be/bsdpRfQM-O8 )
Презентация - TBD.
**Часть вторая. Основы глубокого обучения.**
**Лекция 3. Функции потерь и оптимизация.**
Мультиклассовый SVM и е г о функция потерь.
Софтмакс и мультимодальная логистическая регрессия.
Оптимизация функции потерь.
Стохастический градиентный спуск (SGD).
Разбор задач к самостоятельной: функции потерь для SVM и софтмакса.
[Видеозапись третьей лекции ](https://youtu.be/9nUzJxCeKIc )
[Презентация к лекции 3 ](https://github.com/kvvik/DL_Course_SamU/blob/master/Lectures/Lecture_3_SGD_22.pdf )
[Python-ноутбук к лекции 3 ](https://github.com/kvvik/DL_Course_SamU/blob/master/Lectures/Lecture_3.ipynb )
**Лекция 4. Нейронные сети и обратное распространение ошибки.**
Классификация с точки зрения нейронной сети.
Многослойный перцептрон.
Представление сети в виде вычислительного графа.
Алгоритм обратного распространения ошибки на вычислительном графе.
Разбор задач к самостоятельной: прямое и обратное распротранение по вычислительному графу.
[Видеозапись четвертой лекции, первая часть ](https://youtu.be/Zx6YggTqTJs )
[Видеозапись четвертой лекции, вторая часть ](https://youtu.be/h4mE1AhLvAI )
[Презентация к лекции 4 ](https://github.com/kvvik/DL_Course_SamU/blob/master/Lectures/lecture_4_BP_22.pdf )
**Лекция 5. Сверточные сети (С Н С ).**
История.
Основные операции С Н С .
Применение С Н С вне задач машинного зрения.
Разбор задач к самостоятельной: расчет выхода сверточной сети.
[Презентация к лекции 5 ](https://github.com/kvvik/DL_Course_SamU/blob/master/Lectures/Lecture_5_CNN_22.pdf )
**Лекция 6. Инструментарий глубокого обучения.**
CPU vs GPU vs TPU.
Пакеты глубокого обучения, Tensorflow, Keras и другие.
Вычислительные графы С Н С .
[Видеозапись шестой лекции ](https://youtu.be/vSwXdsuDN9A )
[Презентация к лекции 6 ](https://github.com/kvvik/DL_Course_SamU/blob/master/Lectures/lecture_6_DL_Tools_22.pdf )
**Самостоятельня работа.**
Три задачи из лекций 2-5.
**Внимание:** участие в самостоятельной, как и сдача лабораторных, необходимое условие для допуска к экзамену.
**Лекция 7. Обучение С Н С , часть 1.**
Активационные функции, обработка данных сетью.
Пакетная нормализация и другие трюки.
Transfer learning.
[Видеозапись седьмой лекции ](https://youtu.be/g0iMdzk5Q-k )
[Презентация к лекции 7 ](https://github.com/kvvik/DL_Course_SamU/blob/master/Lectures/lecture_7_Training1_22.pdf )
**Лекция 8. Обучение С Н С , часть 2.**
Политики обновления гиперпараметров.
Тюнинг процесса обучения.
Аугментация данных.
[Видеозапись восьмой лекции ](https://youtu.be/X77_BhagkJ0 )
[Презентация к лекции 8 ](https://github.com/kvvik/DL_Course_SamU/blob/master/Lectures/lecture_8_Training2_22.pdf )
**Лекция 9. Архитектуры С Н С **
Базовые архитектуры - AlexNet, VGG, GoogleNet, ResNet, UNET и другие.
**Часть третья. Дополнительные главы**
**Лекция 10. Генеративные и рекуррентные модели**
1. RNN/LSTM.
Механизм attention.
Обработка естественного языка.
2. GAN сети.
3. Детектирование и сегментация.
**Лекция 11. SOTA модели**
Трансформеры
Zero shot подходы
Метаобучение
Федеративное обучение
## План лабораторных работ
Списки групп и статус выполнения лабораторных работ можно найти в [гугл-таблице ](https://docs.google.com/spreadsheets/d/1dRMlUIZ1Wf_DmHZBubtRtNbHxteb7ThbJqqZhRCiMEw/edit#gid=0 ) .
- [для групп 6231, 6233 ](lab_schedule_6231_6233.md )
- [для группы 1143 ](lab_schedule_1143.md )
## Литература и дополнительные источники
1. Отличная книга на русском по глубокому обучению -
[С . И. Николенко, А . Кадурин, Е . В . Архангельская, Глубокое обучение. Погружение в мир нейронных сетей. 2018 ](https://www.ozon.ru/context/detail/id/154415719/ )
2. Отличная книга по техническим аспектам реализации на Python -
[Шолле Франсуа, Глубокое обучение на Python ](https://www.ozon.ru/context/detail/id/145615583/ )
3. [Лекционный курс К .В . Воронцова по машинному обучению ](http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%BA%D1%83%D1%80%D1%81_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B9%2C_%D0%9A.%D0%92.%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D1%86%D0%BE%D0%B2%29 ).
4. [Видеолекция академика Ю.И. Журавлева ](https://www.youtube.com/watch?v=R3CMqrrIWOk ) о б истоках машинного обучения в С С С Р и о сочетании эвристики и науки в распознавании образов.
5. Видеолекции С .И. Николенко по GAN сетям [1 ](https://www.youtube.com/watch?v=SlJgPIOlpiI ), [2 ](https://www.youtube.com/watch?v=w38m5mTrG_M&t=1147s ).
Хорошая проверка ваших знаний, на выходе из настоящего курса вы должны полностью понимать то, что говорится в этих лекциях по GAN.
6. Хорошая вводная книга по питону и базовым библиотекам, таким как numpy, pandas, jupyter.
[Python и анализ данных. Второе издание [2020] Уэс Маккинни](https://www.ozon.ru/product/python-i-analiz-dannyh-vtoroe-izdanie-makkini-ues-285933371)
[Альтернативная ссылка ](https://vk.com/wall-51126445_67509 )
Важное замечание: первое издание книги содержит в с е б е короткое введение в python, изъятое из второго издания. Первое издание с руководством по питону можно найти [например здесь ](https://t.me/physics_lib ).
[Хороший телеграмм канал с подборкой технических книг ](https://t.me/physics_lib )