Перейти к содержимому
ПереводыMIT, Berkeley, CMU

MIT 6.S191, лекции 4–6: генеративные модели, RL и новые рубежи

Конспект лекций 4–6 MIT Introduction to Deep Learning 2026: автоэнкодеры, VAE и трюк репараметризации, GAN; обучение с подкреплением — Q-функция, DQN и градиент политики; ограничения нейросетей, состязательные примеры, диффузионные модели и большие языковые модели.

Конспект лекций 4–6 интенсива MIT 6.S191 (выпуск 2026 года). Первые три лекции — на предыдущей странице, карта курса — в путеводителе.

  • Генеративная модель учится по примерам из распределения Pdata(x)P_\text{data}(x) и строит модель Pmodel(x)P_\text{model}(x), из которой можно оценивать плотность и выбирать новые примеры. Две классические семьи: VAE (сжать в скрытое пространство и восстановить) и GAN (две сети соревнуются).
  • VAE кодирует вход не точкой, а распределением (μ\mu, σ\sigma); потеря = ошибка восстановления + KL-регуляризация к нормальному распределению; обучение возможно благодаря трюку репараметризации z=μ+σ⊙εz = \mu + \sigma \odot \varepsilon.
  • RL: агент действует в среде и максимизирует сумму дисконтированных наград. Два семейства алгоритмов: обучение ценности (найти Q(s,a)Q(s, a) и брать arg⁡max⁡\arg\max, как в DQN) и обучение политики (сразу учить π(a∣s)\pi(a \mid s) градиентом политики — подходит и для непрерывных действий).
  • Ограничения нейросетей: они легко запоминают даже случайные метки, плохо экстраполируют за пределы данных, уязвимы к состязательным примерам, наследуют смещения данных и не умеют говорить «не знаю».
  • Новые рубежи: диффузионные модели генерируют, постепенно убирая шум; большие языковые модели учатся предсказывать следующий токен и при росте масштаба проявляют новые способности.
ЛекцияКогда смотретьУрок ChinaAI
4. Deep Generative Modelingперед модулем 9.1 (или просто для общего кругозора после ступени 3)9.1.3 Автоэнкодеры, VAE, VQ
5. Deep Reinforcement Learningперед модулем 6.0 «Основы RL»6.0.1 MDP и уравнение Беллмана, 6.0.2 TD и Q-learning, 6.3.1 Основы RL для LLM
6. Limitations and New Frontiersпосле ступени 3; к ступени 4 и 99.1.2 Диффузия, 4.1.1 Что такое языковая модель, 9.3.4 Безопасность и red teaming

Лекция 4. Глубокое генеративное моделирование (Ава Амини)

Заголовок раздела «Лекция 4. Глубокое генеративное моделирование (Ава Амини)»

Лекция открывается вопросом «какое из трёх лиц настоящее?» — все три сгенерированы. Затем — напоминание о двух постановках. С учителем: данные (x,y)(x, y), цель — функция x→yx \to y (классификация, регрессия, детекция, сегментация). Без учителя: только xx, цель — найти скрытую структуру данных (кластеризация, понижение размерности). Генеративное моделирование — задача без учителя.

  • Оценка плотности и генерация примеров: научиться Pmodel(x)P_\text{model}(x), похожему на Pdata(x)P_\text{data}(x).
  • Поиск смещений (debiasing): модель, которая выучила скрытые признаки данных (цвет кожи, поза, освещение), показывает, каких лиц в наборе мало, — и помогает собрать более честный набор. Это тема лабораторной 2.
  • Выбросы: 95% данных о вождении — солнце, шоссе, прямая дорога. Генеративная модель находит редкие случаи (непогода, пешеходы, нестандартные ситуации), которые иначе модель не выучит.
  • Генерация — основа генеративного ИИ: текст, изображения, видео, молекулы.

Образ — пещера из «Государства» Платона: узники видят только тени на стене, а не сами предметы. Скрытые (латентные) переменные — это «настоящие причины», которые мы не наблюдаем напрямую. Вопрос лекции: можно ли выучить такие объясняющие факторы только по наблюдаемым данным?

Кодировщик (encoder) сжимает вход xx (например, картинку цифры) в низкоразмерный вектор zz, а декодер (decoder) восстанавливает по нему x^\hat{x}. Учим, минимизируя ошибку восстановления

L(x,x^)=∥x−x^∥2,\mathcal{L}(x, \hat{x}) = \Vert x - \hat{x} \Vert^2,

и меток для этого не нужно. Чем меньше размерность zz, тем сильнее «узкое горлышко» и тем хуже восстановление: на слайде цифры MNIST, восстановленные из 2-мерного и 5-мерного скрытого пространства. Отсюда и название: auto-encoding — «самокодирование».

Обычный автоэнкодер детерминирован: один вход — одна точка zz. VAE — «вероятностный поворот»: кодировщик выдаёт вектор средних μ\mu и вектор стандартных отклонений σ\sigma, и zz выбирается случайно из этого распределения. Кодировщик моделирует qϕ(z∣x)q_\phi(z \mid x), декодер — pθ(x∣z)p_\theta(x \mid z), а потеря состоит из двух частей:

L(ϕ,θ,x)=(ошибка восстановления)+(регуляризация).\mathcal{L}(\phi, \theta, x) = \text{(ошибка восстановления)} + \text{(регуляризация)}.

Регуляризация — расстояние между выученным распределением qϕ(z∣x)q_\phi(z \mid x) и фиксированным априорным p(z)p(z). Обычно p(z)=N(0,1)p(z) = \mathcal{N}(0, 1), а расстояние — KL-дивергенция:

D(qϕ(z∣x) ∥ p(z))=−12∑j=0k−1(σj+μj2−1−log⁡σj).D\big(q_\phi(z \mid x) \,\Vert\, p(z)\big) = -\frac{1}{2} \sum_{j=0}^{k-1} \left(\sigma_j + \mu_j^2 - 1 - \log \sigma_j\right).

Примечание: так формула записана на слайде (там σj\sigma_j обозначает дисперсию). В более привычной записи через стандартное отклонение KL до N(0,1)\mathcal{N}(0, 1) равна 12∑j(σj2+μj2−1−log⁡σj2)\frac{1}{2} \sum_j (\sigma_j^2 + \mu_j^2 - 1 - \log \sigma_j^2) — положительная величина; знак минус на слайде, по-видимому, опечатка.

Зачем регуляризация? Чтобы скрытое пространство было непрерывным (близкие точки декодируются в похожие картинки) и полным (из любой точки выходит что-то осмысленное). Без неё сеть «жульничает»: раскладывает примеры по далёким островкам с крошечными дисперсиями, и между островками декодер выдаёт мусор. Нормальный априор стягивает средние к центру и не даёт дисперсиям схлопнуться.

Проблема: через случайный выбор zz градиент не проходит — нельзя продифференцировать «бросок кубика». Решение: переписать выбор так, чтобы случайность вынести в отдельный вход:

z=μ+σ⊙ε,ε∼N(0,1).z = \mu + \sigma \odot \varepsilon, \qquad \varepsilon \sim \mathcal{N}(0, 1).

Теперь μ\mu и σ\sigma — обычные детерминированные узлы графа, и градиенты ∂f/∂ϕ\partial f / \partial \phi спокойно доходят до кодировщика, а случайность живёт в ε\varepsilon, по которому дифференцировать не нужно. (Тот же приём разобран в главе 11 конспекта Matrix Calculus.)

  • Возмущать скрытые переменные: медленно менять одну координату zz, держа остальные. На слайде одна координата поворачивает голову, другая меняет улыбку — разные координаты кодируют разные интерпретируемые признаки.
  • Распутывание (disentanglement): хочется, чтобы координаты не зависели друг от друга. β\beta-VAE усиливает регуляризацию множителем β>1\beta > 1: L=Eqϕ(z∣x)[log⁡pθ(x∣z)]−β DKL(qϕ(z∣x) ∥ p(z))\mathcal{L} = \mathbb{E}_{q_\phi(z \mid x)}[\log p_\theta(x \mid z)] - \beta\, D_{KL}(q_\phi(z \mid x) \,\Vert\, p(z)). На слайде при β=1\beta = 1 поворот головы меняет и улыбку, а при β=250\beta = 250 улыбка остаётся постоянной.
  • Генерировать новое: выбрать zz из априорного распределения и декодировать.

Итог по VAE на слайде: (1) сжать представление мира во что-то, на чём можно учиться; (2) восстановление позволяет учиться без меток; (3) трюк репараметризации даёт обучение end-to-end; (4) скрытые переменные интерпретируются через возмущения; (5) можно генерировать новые примеры.

Если плотность нам не нужна, а нужны только примеры, можно не моделировать распределение явно: взять что-то простое (шум) и выучить преобразование шума в данные. GAN — две сети, которые соревнуются:

  • генератор GG превращает шум zz в подделку xfakex_\text{fake}, стараясь обмануть дискриминатор;
  • дискриминатор DD получает и настоящие, и поддельные примеры и учится их различать.

Серия слайдов показывает это на прямой: сначала подделки (розовые точки) далеко от настоящих (зелёных); дискриминатор учится ставить высокую вероятность «настоящий» рядом с зелёными; генератор сдвигает подделки туда, где дискриминатор ошибается; и так по кругу, пока подделки не сольются с данными. Формально — игра «минимакс»:

arg⁡min⁡Gmax⁡D Ez,x[log⁡D(G(z))+log⁡(1−D(x))].\arg\min_G \max_D\ \mathbb{E}_{z, x}\big[\log D(G(z)) + \log(1 - D(x))\big].

Примечание: так формула записана на слайдах (там DD трактуется как вероятность «подделка»). В исходной статье Гудфеллоу и др. (2014) дискриминатор выдаёт вероятность «настоящий», и цель записывается как min⁡Gmax⁡D Ex[log⁡D(x)]+Ez[log⁡(1−D(G(z)))]\min_G \max_D\ \mathbb{E}_x[\log D(x)] + \mathbb{E}_z[\log(1 - D(G(z)))] — смысл тот же. Глобальный оптимум — генератор воспроизводит настоящее распределение данных.

После обучения дискриминатор выбрасывают, а генератор создаёт новые данные. GAN — «преобразователи распределений»: двигаясь по шуму, можно плавно перейти от одного сгенерированного объекта к другому (на слайде — от чёрного лебедя к малиновке). CycleGAN переводит один домен в другой без парных примеров: лошадей — в зебр, голос одного человека — в голос другого (на видео голос лектора превращён в голос Обамы).

В конце — анонс: диффузионные модели будут в лекции 6.

Лекция 5. Глубокое обучение с подкреплением (Александр Амини)

Заголовок раздела «Лекция 5. Глубокое обучение с подкреплением (Александр Амини)»

Три постановки на «яблочном» примере: с учителем — «это яблоко»; без учителя — «эта штука похожа на ту»; с подкреплением — «съешь это, и останешься жив». В RL данные — пары «состояние — действие», а цель — максимизировать будущую награду за много шагов.

  • Агент совершает действия; среда — мир, в котором он действует.
  • Действие ata_t — ход агента; пространство действий AA — все возможные ходы.
  • Наблюдение — что агент видит после действия; состояние sts_t — ситуация, которую он воспринимает.
  • Награда rtr_t — обратная связь об успехе или провале действия.
  • Суммарная награда (return) Rt=∑i=t∞riR_t = \sum_{i=t}^{\infty} r_i, а с дисконтированием Rt=∑i=t∞γiriR_t = \sum_{i=t}^{\infty} \gamma^i r_i, где 0<γ<10 < \gamma < 1: будущие награды ценятся меньше сегодняшних.

Q-функция — ожидаемая суммарная награда, если в состоянии sts_t выполнить действие ata_t: Q(st,at)=E[Rt∣st,at]Q(s_t, a_t) = \mathbb{E}[R_t \mid s_t, a_t]. Если она известна, политика проста: выбирать действие с наибольшим QQ: π∗(s)=arg⁡max⁡aQ(s,a)\pi^*(s) = \arg\max_a Q(s, a).

Обучение ценности (value learning)Обучение политики (policy learning)
найти Q(s,a)Q(s, a)найти π(s)\pi(s)
действовать a=arg⁡max⁡aQ(s,a)a = \arg\max_a Q(s, a)выбирать a∼π(s)a \sim \pi(s)

Человеку трудно оценивать Q-значения: на слайде с игрой Atari Breakout две ситуации — ракетка отбивает мяч прямо или с краю, — и неочевидно, какая выгоднее (в лекции показаны видео обеих стратегий). DQN поручает это нейросети: на вход — состояние (кадр игры), на выход — Q(s,a)Q(s, a) для каждого возможного действия сразу. Обучение — сравнить предсказание с «целью», полученной из следующего шага:

L=E[∥(r+γmax⁡a′Q(s′,a′))−Q(s,a)∥2].\mathcal{L} = \mathbb{E}\Big[\big\Vert \big(r + \gamma \max_{a'} Q(s', a')\big) - Q(s, a) \big\Vert^2\Big].

Словами: правильная оценка действия = награда сейчас + дисконтированная лучшая оценка в следующем состоянии; сеть штрафуется за отклонение. Пример со слайда: Q(s,a1)=20Q(s, a_1) = 20, Q(s,a2)=3Q(s, a_2) = 3, Q(s,a3)=0Q(s, a_3) = 0 — выбираем a1a_1. DQN (Mnih и др., Nature 2015) превзошёл человека во многих играх Atari.

Минусы Q-learning: работает только с дискретными и небольшими пространствами действий и не умеет стохастических политик (политика детерминированно выбирает максимум).

Вместо QQ сеть сразу выдаёт распределение по действиям P(a∣s)P(a \mid s), сумма вероятностей которого равна 1 (на слайде: 0,9 / 0,1 / 0), и действие выбирается случайно из этого распределения. Плюс подхода — легко перейти к непрерывным действиям: сеть выдаёт, например, среднее и дисперсию нормального распределения скорости (μ=−1\mu = -1, σ2=0,5\sigma^2 = 0{,}5 → выбрали −0,8-0{,}8 м/с, «быстрее влево»).

Алгоритм обучения на примере беспилотной машины (агент — машина, состояние — камера и лидар, действие — угол руля, награда — пройденное расстояние):

  1. инициализировать агента;
  2. ехать по текущей политике до конца эпизода (например, до аварии);
  3. записать все состояния, действия и награды;
  4. уменьшить вероятность действий, которые привели к малой награде;
  5. увеличить вероятность действий, которые привели к большой награде.

Шаги 4–5 — это функция потерь loss=−log⁡P(at∣st) Rt\text{loss} = -\log P(a_t \mid s_t)\, R_t («логарифм правдоподобия действия × награда») и обычный градиентный спуск: w′=w+∇log⁡P(at∣st) Rtw' = w + \nabla \log P(a_t \mid s_t)\, R_t — это и есть градиент политики (алгоритм REINFORCE, Williams 1992). Тот же принцип через много лет стал основой RLHF и GRPO для языковых моделей — см. наш модуль 6.3.

Шаг 2 («ехать до аварии») в реальном мире недопустим. Выход — фотореалистичный симулятор. Лаборатория авторов сделала VISTA — симулятор на реальных данных, и обученный только в нём агент градиента политики был перенесён в настоящую машину: по словам слайда, первый полноразмерный автомобиль, обученный с помощью RL целиком в симуляции и затем выпущенный в реальный мир (Amini и др., IEEE RA-L 2020).

Го: на доске 19×1919 \times 19 около 2,08⋅101702{,}08 \cdot 10^{170} допустимых позиций — больше, чем атомов во Вселенной. AlphaGo (Silver и др., 2016) обучался в три этапа: (1) сеть политики учится с учителем на партиях экспертов-людей; (2) игра с самим собой и RL улучшают политику до сверхчеловеческого уровня; (3) сеть ценности учится «интуиции» — оценивать позицию на доске.

Лекция 6. Ограничения глубокого обучения и новые рубежи (Ава Амини)

Заголовок раздела «Лекция 6. Ограничения глубокого обучения и новые рубежи (Ава Амини)»

Напоминание: теорема об универсальной аппроксимации — сеть с одним скрытым слоем может сколь угодно точно приблизить любую непрерывную функцию. Но есть оговорки: нужное число нейронов может быть невообразимо большим, и полученная модель может не обобщать. На слайде — кривая «хайпа» ИИ: рождение, завышенные ожидания, две «зимы ИИ», новые надежды и взрывной рост.

  • Обобщение под вопросом. Опыт из статьи «Understanding deep learning requires rethinking generalization» (Zhang и др., ICLR 2017): заменяем метки картинок на случайные (собака → банан). Точность на обучении всё равно 100% — сеть просто запоминает даже бессмысленные метки, а точность на тесте падает до уровня случайной.
  • Хороши только там, где были данные. Сеть отлично аппроксимирует функцию в областях с примерами, но вне их может выдавать что угодно — и не знает, что не знает. Глубокое обучение — не «алхимия», где из любых данных и случайной архитектуры получается результат.
  • Ловушки данных. Сеть для раскрашивания ч/б фото рисует собакам розовый язык под подбородком — потому что в обучающих данных у собак часто высунут язык. Смертельная авария машины на автопилоте: по сообщениям прессы, машина раз за разом поворачивала к одному и тому же отбойнику, а на снимках Street View видно, что раньше это место выглядело иначе, — пример того, как модель ошибается в ситуации, которой не было в данных.
  • Неопределённость. В безопасно-критичных задачах (машины, медицина, распознавание лиц) и на несбалансированных или шумных данных модели нужно уметь сообщать, насколько она уверена.
  • Состязательные примеры. Добавим к фото храма почти невидимый шум — и сеть уверенно (98%) называет его страусом. Механизм: при обучении мы меняем веса, чтобы уменьшить потерю, W←W−η ∂J/∂WW \leftarrow W - \eta\, \partial J / \partial W; атака меняет вход, чтобы потерю увеличить: x←x+η ∂J/∂xx \leftarrow x + \eta\, \partial J / \partial x. Бывают и физические атаки: напечатанная на 3D-принтере черепаха, которую классификатор с разных ракурсов принимает за винтовку (Athalye и др., ICML 2018).
  • Алгоритмические смещения — модели хуже работают на недопредставленных группах (тема лабораторной 2).

Итоговый список ограничений со слайда: нейросети прожорливы к данным, требуют больших вычислений, легко обманываются, подвержены смещениям, плохо представляют неопределённость, работают как «чёрный ящик», требуют экспертного подбора архитектуры, с трудом кодируют структуру и знания и плохо экстраполируют.

У VAE и GAN свои проблемы: схлопывание мод (mode collapse), трудности с генерацией вне распределения, неустойчивое обучение. Диффузионные модели генерируют не за один шаг, а итеративно, многократно очищая шум:

  • прямой процесс (данные → шум): к картинке понемногу добавляют шум — 100% картинки, потом 75/25, 50/50, 25/75 и наконец чистый шум;
  • обратный процесс (шум → данные): сеть учится по картинке на шаге TT получать картинку на шаге T−1T - 1;
  • генерация: начинаем с чистого шума и шаг за шагом убираем его — проявляется новая картинка (на слайде — собака).

Применения: изображения по тексту («астронавт верхом на лошади»), молекулы в 3D, новые белки.

LLM — «очень, очень большие нейросети, обученные на очень, очень больших наборах текстов». Обучение: данные (Common Crawl, WebText и др.) режут на «токены», модель (например, GPT-3 со 175 млрд параметров) решает задачу предсказать следующий токен по предыдущим; ошибка — кросс-энтропия между предсказанным распределением и настоящим следующим токеном. Пример: из текста «MIT deep learning is so awesome» модель по «MIT deep learning is» учится предсказывать «so». При использовании тот же механизм генерирует текст токен за токеном.

Что умеют надёжно: поиск знаний, помощь в письме, помощь в планировании. Ограничения: устойчивость (уверенно переводят даже искажённый вопрос), галлюцинации («уверенно неправы»), обходы ограничителей (jailbreaks), логика и арифметика. Эмерджентные способности — то, чего нет у малых моделей, но что появляется у больших (Wei и др., TMLR 2022): графики точности резко взлетают после некоторого масштаба.

Финал лекции — «фундаментальные модели»: можно ли сделать центральную систему рассуждений для ИИ общего назначения; ИИ, улучшающий сам себя; генеративный ИИ для изображений, биологии и языка — «сила и осторожность».

  1. Лабораторная 2, часть 2 — детектор лиц с VAE для поиска смещений: модель учит скрытые признаки лиц и чаще показывает при обучении редкие примеры. Перевод условия.
  2. Лабораторная 3 — дообучение LLM: перевод условия.
  3. Повторите трюк репараметризации в PyTorch: сгенерируйте ε\varepsilon через torch.randn_like(sigma) и убедитесь, что z = mu + sigma * eps пропускает градиенты к mu и sigma.
  4. Для RL — урок 6.0.2 «TD и Q-learning» с собственной реализацией Q-обучения.
ENRU
generative model, density estimationгенеративная модель, оценка плотности
latent variable, latent spaceскрытая (латентная) переменная, скрытое пространство
autoencoder, encoder, decoderавтоэнкодер, кодировщик, декодер
reconstruction lossошибка (потеря) восстановления
variational autoencoder (VAE)вариационный автоэнкодер
prior, KL divergenceаприорное распределение, KL-дивергенция
reparameterization trickтрюк репараметризации
disentanglement, β-VAEраспутывание, β-VAE
generative adversarial network (GAN), generator, discriminatorгенеративно-состязательная сеть, генератор, дискриминатор
mode collapseсхлопывание мод
agent, environment, state, action, rewardагент, среда, состояние, действие, награда
return, discount factorсуммарная награда (отдача), коэффициент дисконтирования
Q-function, policyQ-функция, политика
value learning, policy gradientобучение ценности, градиент политики
universal approximation theoremтеорема об универсальной аппроксимации
adversarial example / attackсостязательный пример / атака
algorithmic bias, uncertaintyалгоритмическое смещение, неопределённость
diffusion model, forward noising, reverse denoisingдиффузионная модель, прямое зашумление, обратное очищение от шума
next-token prediction, hallucination, emergent abilitiesпредсказание следующего токена, галлюцинация, эмерджентные способности