Перейти к содержимому
ПереводыDatawhale и китайские курсы

Погружение в глубокое обучение v2: путеводитель по книге и видеокурсу Ли Му

Обзор учебника «Погружение в глубокое обучение» (Dive into Deep Learning, китайское 2-е издание) и видеокурса Ли Му 2021 года на Bilibili: карта 15 глав с привязкой к урокам ступеней 1–5, полное расписание 103 видеолекций со ссылками, как читать и запускать код на своей машине.

«Погружение в глубокое обучение» (Dive into Deep Learning; китайское название дословно — «Глубокое обучение своими руками») — открытый учебник Астона Чжана, Захари Липтона, Ли Му и Александра Смолы. Каждая тема в нём идёт тройкой «идея → формула → работающий код», сначала «с нуля», потом «кратко» средствами фреймворка, — ровно наш принцип «сначала руками, потом фреймворк». Книга написана по-английски (d2l.ai) и переведена на китайский (zh.d2l.ai); английская версия уже есть в библиотеке курса.

Ценность именно китайской версии — в видеокурсе Ли Му «Погружение в глубокое обучение v2» (весна–лето 2021): более сотни коротких лекций на Bilibili (канал «Учимся ИИ у Ли Му»), где автор книги разбирает каждый раздел у доски и в Jupyter, отвечает на вопросы зрителей, а в практической части проводит соревнования на Kaggle. Это один из самых популярных китайскоязычных курсов по глубокому обучению.

ГлаваО чёмУроки курсаВидео (см. расписание ниже)
Предисловие, установка, обозначениязачем книга, как ставить окружение, нотация0.1.2«Установка»
1. Введениечто такое ML, виды задач, история0.0.1, 2.1.1«Введение в глубокое обучение»
2. Предварительные знаниятензоры, pandas, линейная алгебра, производные, автодифференцирование, вероятность0.3.1, 1.1.1–1.1.2, 1.2.1–1.2.3, 1.3.1, 3.3.18 лекций, 20–21.03
3. Линейные сетилинейная и softmax-регрессия с нуля и кратко, Fashion-MNIST2.2.1–2.2.2, 1.3.2, 1.4.19 лекций, 27–28.03
4. Многослойный перцептронMLP, переобучение, затухание весов, dropout, обратное распространение, инициализация, сдвиг распределения, Kaggle «цены на дома»3.1.1–3.1.2, 2.1.2, 3.4.1–3.4.2, 2.4.412 лекций, 10–18.04
5. Вычисления в глубоком обучениислои и блоки, параметры, свои слои, сохранение, GPU3.3.2–3.3.35 лекций, 24.04
6. Свёрточные сетисвёртка, дополнение и шаг, каналы, пулинг, LeNet3.5.17 лекций, 15–22.05
7. Современные CNNAlexNet, VGG, NiN, GoogLeNet, пакетная нормализация, ResNet, DenseNet3.4.1–3.4.2, 3.5.27 лекций, 23–30.05
8. Рекуррентные сетимодели последовательностей, предобработка текста, языковая модель, RNN, BPTT3.4.3, 4.1.1, 4.1.56 лекций, 17–24.07
9. Современные RNNGRU, LSTM, глубокие и двунаправленные RNN, машинный перевод, кодировщик-декодировщик, seq2seq, лучевой поиск4.1.5, 4.1.38 лекций, 25.07–07.08
10. Механизм вниманияядерная регрессия Надараи — Ватсона, функции оценки, внимание Бахданау, многоголовое внимание, самовнимание и позиционное кодирование, Transformer4.4.1–4.4.3, 4.5.1–4.5.25 лекций, 08–14.08
11. Алгоритмы оптимизациивыпуклость, (стохастический) градиентный спуск, моментум, AdaGrad, RMSProp, Adadelta, Adam, расписания LR1.4.1–1.4.2, 5.4.41 обзорная лекция, 21.08
12. Производительность вычисленийкомпиляторы и интерпретаторы, асинхронность, автопараллелизм, железо, несколько GPU, сервер параметров5.4.3, 5.7.1, 5.7.45 лекций, 05–19.06; наш перевод 12.5–12.6
13. Компьютерное зрениеаугментация, дообучение, детекция (рамки, якоря, SSD, R-CNN), сегментация, транспонированная свёртка, FCN, перенос стиля, Kaggle3.5.2, 9.1.322 лекции, 20.06–11.07
14. NLP: предобучениеword2vec, отрицательная выборка, GloVe, подсловные эмбеддинги, аналогии, BERT и его предобучение4.3.1–4.3.2, 4.2.2, 4.5.43 лекции (BERT), 15.08
15. NLP: приложенияанализ тональности (RNN, CNN), логический вывод (внимание, BERT), дообучение BERT4.5.43 лекции, 15.08
ПриложениеJupyter, облака AWS, выбор серверов и GPU, API пакета d2l0.1.2—

Видеокурс Ли Му «Погружение в глубокое обучение v2»

Заголовок раздела «Видеокурс Ли Му «Погружение в глубокое обучение v2»»

Что известно со страницы курса (репозиторий d2l-ai/courses-zh-v2):

  • Когда: с 20 марта по август 2021 года, живые трансляции по субботам и воскресеньям 13:00–14:30 по пекинскому времени; записи — на канале Bilibili, лекции сгруппированы в «сборники» по 1–5 частей (в ссылках ниже параметр ?p=2 — номер части).
  • Преподаватель: Ли Му, на тот момент старший главный научный сотрудник AWS, PhD Университета Карнеги — Меллона.
  • Для кого: с нуля, нужны только базовый Python и математика. Четыре блока моделей — многослойные перцептроны, CNN, RNN, внимание — и два прикладных направления: компьютерное зрение и NLP. Каждый алгоритм показан на PyTorch.
  • Практика: соревнования на Kaggle (в расписании — предсказание цен на дома, классификация листьев, детекция объектов) с разбором итогов в отдельных лекциях.
  • Слайды и ноутбуки: у каждой лекции есть PDF-слайды и ноутбук Jupyter (в репозитории сайта курса).
flowchart LR
P0["Ч. 0: основы<br/>тензоры, автодифф.,<br/>линейные модели, MLP"] --> P1["Ч. 1: CNN<br/>LeNet → ResNet"]
P1 --> P2["Ч. 2: железо, много GPU,<br/>компьютерное зрение"]
P0 --> P3["Ч. 3: RNN<br/>язык. модели, LSTM, seq2seq"]
P3 --> P4["Ч. 4: внимание,<br/>Transformer, BERT"]
S1["Ступени 1–2"] -.-> P0
S3["Ступень 3"] -.-> P1
S5["Ступень 5"] -.-> P2
S4["Ступень 4"] -.-> P3
S4 -.-> P4
Пять частей видеокурса и ступени нашего курса (схема переводчика)

Названия — перевод с китайского; «Раздел книги» — ссылка на соответствующий раздел zh-v2.d2l.ai (сейчас этот адрес ведёт на zh.d2l.ai); «Видео» — номер видео на Bilibili. Дни без занятий опущены.

Дата (2021)ЛекцияРаздел книгиВидео
20.03О курсе (план)—BV1oX4y137bC
20.03Введение в глубокое обучениеzh-v2.d2l.aiBV1J54y187f9
20.03Установкаzh-v2.d2l.aiBV18p4y1h7Dr
20.03Операции с данными (тензоры)zh-v2.d2l.aiBV1CV411Y7i4
20.03Предобработка данныхzh-v2.d2l.aiBV1CV411Y7i4?p=3
21.03Линейная алгебраzh-v2.d2l.aiBV1eK4y1U7Qy
21.03[доп.] Сумма по заданной оси—BV1eK4y1U7Qy?p=3
21.03Матричное дифференцированиеzh-v2.d2l.aiBV1eZ4y1w7PY
21.03Автоматическое дифференцированиеzh-v2.d2l.aiBV1KA411N7Px
27.03Линейная регрессияzh-v2.d2l.aiBV1PX4y1g7KC
27.03Базовые методы оптимизации—BV1PX4y1g7KC?p=2
27.03Линейная регрессия с нуляzh-v2.d2l.aiBV1PX4y1g7KC?p=3
27.03Линейная регрессия: краткая реализацияzh-v2.d2l.aiBV1PX4y1g7KC?p=4
28.03Softmax-регрессияzh-v2.d2l.aiBV1K64y1Q7wu
28.03Функции потерь—BV1K64y1Q7wu?p=2
28.03Датасет для классификации изображенийzh-v2.d2l.aiBV1K64y1Q7wu?p=3
28.03Softmax-регрессия с нуляzh-v2.d2l.aiBV1K64y1Q7wu?p=4
28.03Softmax-регрессия: краткая реализацияzh-v2.d2l.aiBV1K64y1Q7wu?p=5
10.04Перцептрон—BV1hh411U7gn
10.04Многослойный перцептронzh-v2.d2l.aiBV1hh411U7gn?p=2
10.04MLP с нуляzh-v2.d2l.aiBV1hh411U7gn?p=3
10.04MLP: краткая реализацияzh-v2.d2l.aiBV1hh411U7gn?p=3
11.04Выбор модели—BV1kX4y1g7jp
11.04Недо- и переобучениеzh-v2.d2l.aiBV1kX4y1g7jp?p=2
17.04Затухание весовzh-v2.d2l.aiBV1UK4y1o7dy
17.04Dropout (Dropout)zh-v2.d2l.aiBV1Y5411c7aY
18.04Численная устойчивостьzh-v2.d2l.aiBV1u64y1i75a
18.04Инициализация и функции активации—BV1u64y1i75a?p=2
18.04Практика Kaggle: цены на домаzh-v2.d2l.aiBV1NK4y1P7Tu
18.04Соревнование: цены на дома—BV1NK4y1P7Tu?p=2
Дата (2021)ЛекцияРаздел книгиВидео
24.04Построение моделиzh-v2.d2l.aiBV1AK4y1P7vs
24.04Управление параметрамиzh-v2.d2l.aiBV1AK4y1P7vs?p=2
24.04Свои слоиzh-v2.d2l.aiBV1AK4y1P7vs?p=3
24.04Чтение и запись файловzh-v2.d2l.aiBV1AK4y1P7vs?p=4
24.04GPU (GPU)zh-v2.d2l.aiBV1z5411c7C1
15.05Итоги соревнования по ценам на дома—BV15Q4y1o7vc
15.05От полносвязного слоя к свёрткеzh-v2.d2l.aiBV1L64y1m7Nh
15.05Свёртка изображенийzh-v2.d2l.aiBV1L64y1m7Nh?p=2
16.05Дополнение и шагzh-v2.d2l.aiBV1Th411U7UN
16.05Несколько входных и выходных каналовzh-v2.d2l.aiBV1MB4y1F7of
22.05Слой пулингаzh-v2.d2l.aiBV1EV411j7nX
22.05Свёрточная сеть LeNetzh-v2.d2l.aiBV1t44y1r7ct
23.05AlexNetzh-v2.d2l.aiBV1h54y1L7oe
23.05VGG: сеть из блоковzh-v2.d2l.aiBV1Ao4y117Pd
29.05NiN: сеть в сетиzh-v2.d2l.aiBV1Uv411G71b
29.05GoogLeNet: параллельные ветвиzh-v2.d2l.aiBV1b5411g7Xo
30.05Пакетная нормализацияzh-v2.d2l.aiBV1X44y1r77r
30.05ResNetzh-v2.d2l.aiBV1bV41177ap
30.05Соревнование: классификация изображений—BV1z64y1o7iz
Дата (2021)ЛекцияРаздел книгиВидео
05.06Железо: CPU и GPUzh-v2.d2l.aiBV1TU4y1j7Wd
06.06Специализированное железо—BV1VV41147PC
06.06Обучение на нескольких GPUzh-v2.d2l.aiBV1vU4y1V7rd
19.06Несколько GPU: реализацияzh-v2.d2l.aiBV1MQ4y1R7Qg
19.06Распределённое обучениеzh-v2.d2l.aiBV1jU4y1G7iu
20.06Аугментация изображенийzh-v2.d2l.aiBV17y4y1g76q
20.06Дообучение (fine-tuning)zh-v2.d2l.aiBV1Sb4y1d7CR
26.06Практика Kaggle: CIFAR-10zh-v2.d2l.aiBV1Gy4y1M7Cu
26.06Практика Kaggle: породы собакzh-v2.d2l.aiBV1j5411T7wx
27.06Детекция объектов—BV1Lh411Y7LX
27.06Ограничивающие рамкиzh-v2.d2l.aiBV1Lh411Y7LX?p=2
27.06Датасет для детекцииzh-v2.d2l.aiBV1Lh411Y7LX?p=3
27.06Якорные рамкиzh-v2.d2l.aiBV1aB4y1K7za
27.06Итоги соревнования по классификации листьев—BV1by4y1K7SE
03.07R-CNNzh-v2.d2l.aiBV1Db4y1C71g
03.07SSD—BV1Db4y1C71g
03.07YOLO—BV1Db4y1C71g
04.07Многомасштабная детекцияzh-v2.d2l.aiBV1ZX4y1c7Sw?p=1
04.07Реализация SSDzh-v2.d2l.aiBV1ZX4y1c7Sw?p=2
10.07Семантическая сегментация—BV1BK4y1M7Rd
10.07Датасет для сегментацииzh-v2.d2l.aiBV1BK4y1M7Rd?p=2
10.07Транспонированная свёрткаzh-v2.d2l.aiBV17o4y1X7Jn
10.07Транспонированная свёртка — тоже свёрткаzh-v2.d2l.aiBV1CM4y1K7r7
11.07Полносвёрточная сеть (FCN)zh-v2.d2l.aiBV1af4y1L7Zu
11.07Перенос стиляzh-v2.d2l.aiBV1Eh41167GN
11.07Соревнование: детекция объектов—BV1F64y1x7xP
Дата (2021)ЛекцияРаздел книгиВидео
17.07Модели последовательностейzh-v2.d2l.aiBV1L44y1m768
17.07Предобработка текстаzh-v2.d2l.aiBV1Fo4y1Q79L
18.07Языковые модели и датасетzh-v2.d2l.aiBV1ZX4y1F7K3
18.07Рекуррентная сеть (RNN)zh-v2.d2l.aiBV1D64y1z7CA
24.07RNN с нуляzh-v2.d2l.aiBV1kq4y1H7sw
24.07RNN: краткая реализацияzh-v2.d2l.aiBV1kq4y1H7sw?p=2
25.07GRUzh-v2.d2l.aiBV1mf4y157N2
25.07LSTMzh-v2.d2l.aiBV1JU4y1H7PC
25.07Глубокие RNNzh-v2.d2l.aiBV1JM4y1T7N4
25.07Двунаправленные RNNzh-v2.d2l.aiBV12X4y1c71W
07.08Машинный перевод и датасетzh-v2.d2l.aiBV1H64y1s7TH
07.08Архитектура «кодировщик — декодировщик»zh-v2.d2l.aiBV1c54y1E7YP
07.08seq2seqzh-v2.d2l.aiBV16g411L7FG
07.08Лучевой поиск (beam search)zh-v2.d2l.aiBV1B44y1C7m1
Дата (2021)ЛекцияРаздел книгиВидео
08.08Механизм вниманияzh-v2.d2l.aiBV1264y1i7R1
08.08Функции оценки вниманияzh-v2.d2l.aiBV1Tb4y167rb
08.08seq2seq с вниманиемzh-v2.d2l.aiBV1v44y1C7Tg
14.08Самовнимание и позиционное кодированиеzh-v2.d2l.aiBV19o4y1m7mo
14.08Transformer (Transformer)zh-v2.d2l.aiBV1Kq4y1H7FL
15.08BERT (BERT)zh-v2.d2l.aiBV1yU4y1E7Ns
15.08Датасет для предобучения BERTzh-v2.d2l.aiBV1yU4y1E7Ns?p=2
15.08Предобучение BERTzh-v2.d2l.aiBV1yU4y1E7Ns?p=3
15.08Дообучение BERTzh-v2.d2l.aiBV15L4y1v7ts
15.08Логический вывод в NLP (NLI) и датасетzh-v2.d2l.aiBV15L4y1v7ts?p=2
15.08NLI: дообучение BERTzh-v2.d2l.aiBV15L4y1v7ts?p=3
15.08Итоги соревнования по детекции—BV13b4y1m7y8
21.08Алгоритмы оптимизацииzh-v2.d2l.aiBV1bP4y1p7Gq
21.08Итоги курса и что учить дальше—BV1AL4y1Y7gu

Глава «Установка» книги предлагает такие версии для PyTorch-ветки:

Окно терминала
pip install torch==1.12.0
pip install torchvision==0.13.0
pip install d2l==0.17.6 # вспомогательный пакет книги: загрузка данных, графики, таймеры
curl https://zh-v2.d2l.ai/d2l-zh-2.0.0.zip -o d2l-zh.zip # все ноутбуки книги одним архивом
unzip d2l-zh.zip && rm d2l-zh.zip
РусскийEnglish
«учиться руками», на практике (из названия книги)hands-on, dive into
реализация с нуляfrom scratch
краткая реализация (фреймворком)concise implementation
стохастический градиентный спуск по мини-батчамminibatch SGD
dropout (в китайском издании — «метод временного выключения»)dropout
слой пулингаpooling layer
пакетная нормализацияbatch normalization
токенtoken
лучевой поискbeam search
соревнованиеcompetition
сборник видео / часть сборникаplaylist / part