/deep_learning_pytorch

deep learning with pytorch (russian)

Primary LanguageJupyter NotebookMIT LicenseMIT

Введение в глубокое обучение и вообще

Добро пожаловать на страничку курса "Введение в глубокое обучение и вообще".

  • Большая часть материалов курса нагло украдена из других курсов. В README к каждой неделе я пытался описывать что и где я спёр
  • Материалы для каждого семинара лежат в папках /week*
  • Курс сделан на pytorch (в 2022 был на tensorflow)
  • Если вы хотите скачать из репозитория конкретную папку, просто вставьте ссылку на неё в сервис для скачки. Ну либо наконец уже разберитесь с git и сделайте pull.

Нашёл на этой страничке ошибку? Нашёл какой-то ультраполезный ресурс? Придумал какое-то интересное задание для семинара? Есть конструктивная критика? Не молчи, заводи issue, делай пулл-реквест и напиши мне на почту filfonul@gmail.com или в Telegram (@Ppilif).

TG2

Идеология курса

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

Примерный план курса

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

  • week01 От регрессии к нейросети. Введение в pytorch.
  • week02 Решаем ручные задачки и продолжаем погружаться в pytorch.
  • week03 50 оттенков градиентного спуска. Учимся искать матричные производные.
  • week04 Копаемся в алгоритме обратного распространения ошибки. Пробуем его закодить.
  • week05 Свёрточные нейросети. Наконец-то добрались до них сквозь всю математику!
  • week06 Продолжаем разбираться со свёрточными сетками
  • week07 Нейросети - конструктор LEGO. Говорим про разные функции активации, инициализацию, дропаут и регуляризацию. Нормализация по батчам, лучшие практики для обучения нейросетей
  • week08 Современные архитектуры свёрточных сетей. Transfer learning.
  • week09 Разговариваем про задачи компьютерного зрения.
  • week10 Работа с текстами, введение в NLP, идея эмбедингов: w2v.
  • week11 Рекурентные нейронные сетки: RNN, LSTM, GRU. Временные ряды.
  • week12 Seq2seq модели. Механизмы внимания. Автопереводчики.
  • week13 Разбираемся с трансформерами.

Домашки

Будет четыре домашки.

  1. Основы tensorflow, сбор своих первых нейросетей на tensorflow
  2. Собираем нейросеть своими руками
  3. Большое задание по работе с картинками
  4. Большое задание по работе с текстами

В домашних заданиях будет довольно много бонусных баллов. Из-за их наличия вы сможете выбирать те разделы, которые вас больше всего заинтересовали. Одну домашку можно не делать без уважительной причины. Итоговая оценка будет ставиться за лучшие пять заданий.

Самый важный раздел

Итоговая оценка вычисляется по формуле:

Накоп = 0.3 СР + 0.5 ДЗ + 0.2 КР 

Итог = min(10, 0.7 Накоп + 0.3 Экз)
  • ДЗ - средняя оценка за домашки на python (6 заданий), одна домашка сделанная хуже всего при расчёте средней оценки, не учитывается
  • СР - средняя оценка за самостоялки на семинарах (около 10 квизов), две работы, написанные хуже всего, не учитываются
  • КР - балл за письменную контрольную работу
  • Экз - балл за письменный экзамен

Если накопленная оценка оказалась >= 6, а также за контрольную вы получили оценку >=6, можно забрать себе накопленную оценку как автомат и не сдавать экзамен. На примеры квизов, мидтёрма и экзаменов можно посмотреть в репозитории прошлого года

Правила сдачи заданий:

За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опозданиии на одну секунду. Сдавайте работы заранее.

Есть исключение, и имя ему Late days policy. У каждого студента есть право отложить мягкий дедлайн на 1,2 или 3 дня. Суммарно для откладывания в запасе есть три дня. Можно отодвинуть один дедлайн на три дня, а можно три дедлайна подвинуть на один день. Распоряжаться этими днями студент может как угодно. Жёсткий дедлайн, при этом, не меняется.

При обнаружении плагиата оценки обнуляются всем, кто был задействован в списывании, а также подаётся докладная записка в учебный офис. При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.

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

Книги:

  • 📚 Николенко: «Глубокое обучение. Погружение в мир нейронных сетей.» — книга, которую всем рекомендую читать в первую очередь.
  • 📚 Гудфеллоу, Бенджио: «Глубокое обучение.» — библия глубокого обучения с ответами на многие вопросы и хорошей математикой.
  • 📚 Педро Домингос: «Верховный Алгоритм.» — книга для рефлексии и мыслях о том, когда же нас поработит искуственный интеллект.
  • 📚 Machine Learning with PyTorch and Scikit-Learn by Sebastian Raschka - долго думал какую книгу сюда вкинуть про пайторч. В итоге выбрал эту. Себастьян Рашка оч крутой чел, который вошёл в 2021 году в top-100 AI-инфлюенсеров. У него клёвый блог про ML, а ещё он недавно выложил в паблик свои курсы по ML и DL
  • 📚 Интерактивный учебник с разбором семинарских листочков от Ульянкина Филиппа (меня)

Онлайн-курсы:

Устарело, но ещё можно найти:

  • 🤖 Бесплатный курс по tf от Google. Короткий. Покрывает весь базовый Keras. Все тетрадки выложены в colab. Внутри есть очень странные интервью.
  • 🤖 Advanced ML от Яндекса. Это для тех, кто хочет развиваться дальше. В специализации есть разные специфические курсы. Первый из них про нейронки. Код на Tensorflow. Версия библиотеки там пока что старая.

Лицензия

Весь контент, созданный для этого курса распространяются на правах лицензии MIT License либо на правах лицензии WTFPL на ваш выбор. Материалы публикуются как общественное достояние.