Вопросы для собеседования, набор 5: DDPG, PPO, TD3, SAC и другие алгоритмы
1. Нужно хорошо знать принципы и различия алгоритмов DDPG, PPO, TD3, SAC и других.
Эти четыре алгоритма — самые распространённые алгоритмы глубокого обучения с подкреплением для непрерывного управления (например, управления роботами).
PPO (Proximal Policy Optimization)
-
Принцип: PPO — алгоритм градиента политики с политикой on-policy. Он использует механизм отсечения (Clipping), который ограничивает величину шага обновления между старой и новой политикой, чтобы обновление политики не «сорвалось».
-
Основная формула:
-
Пример числового расчёта:
Пусть в момент времени оценка преимущества по GAE равна (положительное число: действие хорошее).
Гиперпараметр отсечения .
Если новая сеть слишком агрессивна и отношение вероятностей новой и старой политики равно (новая политика выбирает это действие в 1.5 раза чаще старой):
-
Исходная цель: .
-
Цель после отсечения: .
-
Берём минимум: .
Вывод: даже если сеть хочет обновиться до значения 15, PPO принудительно обрезает его до 12, что обеспечивает стабильность обучения.
-
DDPG (Deep Deterministic Policy Gradient)
-
Принцип: алгоритм actor-critic с политикой off-policy. Actor выдаёт детерминированное действие, Critic оценивает значение Q.
-
Основная формула (обновление Critic):
-
Пример числового расчёта:
Пусть робот сделал шаг вперёд и получил награду . Коэффициент дисконтирования .
Целевые сети (Target Actor и Target Critic) предсказывают оптимальное значение Q для следующего состояния .
Вычисляем TD-цель (примечание 1): .
Если текущая сеть Critic предсказывает значение Q, равное 90, то среднеквадратичная ошибка (MSE) равна .
TD3 (Twin Delayed DDPG)
-
Принцип: решает проблему завышения значений Q в DDPG, вводя два Q-критика, отложенное обновление и сглаживание целевой политики.
-
Основная формула (клиппированное двойное Q-обучение со сглаживанием):
-
Пример числового расчёта:
Целевой Actor выдаёт следующее действие . С учётом шума (после клиппирования) итоговое целевое действие .
Подаём в два целевых Critic:
Пусть Critic 1 предсказывает значение Q, равное , а Critic 2 — .
TD3 берёт минимум, чтобы подавить завышение: .
Итоговая TD-цель: .
SAC (Soft Actor-Critic)
-
Принцип: алгоритм обучения с максимальной энтропией, off-policy, который поощряет исследование.
-
Основная формула (член энтропии в целевой функции):
-
Пример числового расчёта:
Пусть в текущем состоянии есть два дискретизированных возможных действия, а распределение вероятностей политики равно .
Вычисляем информационную энтропию: .
Если температурный коэффициент , то «мягкая» дополнительная награда за этот шаг равна .
Если политика становится более случайной, , энтропия , а дополнительная награда — . Так SAC существенно поощряет исследование.
2. Нужно понимать такие понятия, как GAE (обобщённая оценка преимущества) и PG (градиент политики).
PG (Policy Gradient)
-
Формула:
-
Пример числового расчёта:
Пусть суммарная награда за эпизод . Вероятность действия равна .
. Величина обновления градиента будет умножена на . Если то же действие в другой траектории даёт суммарную награду всего , сила обновления будет . Сеть постепенно начнёт повышать вероятность действий из траекторий с высокой наградой.
GAE (Generalized Advantage Estimation)
-
Принцип: баланс между смещением (bias) и дисперсией (variance) TD-ошибки.
-
Основные формулы:
-
Пример числового расчёта (ручной расчёт траектории из двух шагов):
Пусть , .
Есть три состояния (конец).
Награды: .
Предсказания сети ценности: (конечное состояние имеет значение 0).
-
Вычисляем TD-ошибку каждого шага ():
-
Рекурсивно вычисляем преимущество () с конца:
Последний шаг:
Предпоследний шаг:
Вывод: у действия преимущество положительное (1.0295), его нужно поощрять; у действия оно отрицательное (-1.0), его нужно подавлять.
-
import torch
# Проверяем псевдокод на указанных значениях
rewards = torch.tensor([1.0, 2.0])
values = torch.tensor([2.0, 3.0])
next_value = 0.0
dones = torch.tensor([0.0, 1.0])
gamma, lam = 0.99, 0.95
# (логика цикла — в исходной версии ответа; результат совпадает с ручным расчётом)
1. Макроскопический взгляд: «тренер и спортсмен» в обучении с подкреплением
Весь процесс можно представить как тренера (GAE / сеть ценности), который наставляет спортсмена (сеть политики).
Градиент политики (PG) — тренировка спортсмена
Логика PG очень проста: «если в этом раунде выиграли, то все действия в нём надо делать чаще; если проиграли — реже».
- Ему не важно, хорошо ли конкретное действие само по себе, важен только результат.
- Проблема: если раунд длится 1000 шагов, а на 5-м шаге спортсмен сыграл блестяще, но на 999-м ошибся и проиграл, PG накажет и гениальное действие на 5-м шаге, потому что итог был «проигрыш». Это и есть высокая дисперсия (Variance).
Обобщённая оценка преимущества (GAE) — разбор игры тренером
GAE решает именно эту проблему. Он оценивает не итог, а «насколько этот шаг оказался лучше моих ожиданий».
- Он объединяет «немедленную награду» и «прогноз на будущее».
- Он работает как рассудительный тренер, который говорит: «Хотя в итоге ты проиграл, твоя операция на 5-м шаге подняла шансы на победу с 20% до 60%. Тебе засчитывается плюс!»
2. Полный конвейер (итерационный процесс)
В реальных алгоритмах PPO или A2C данные движутся так:
Шаг 1: взаимодействие (сбор выборки)
Спортсмен (сеть политики ) играет в среде шагов.
- Результат: набор данных (состояние, действие, награда, следующее состояние).
- Состояние: параметры сети на этом этапе фиксированы и не обновляются.
Шаг 2: оценка (выставление баллов — здесь работает GAE)
Теперь нужно оценить каждое действие из этих шагов. Этот балл и есть функция преимущества .
- Оценка ценности: состояние подаётся в «сеть ценности », которая предсказывает, насколько ценно это состояние.
- Вычисление TD-ошибки (): сравниваем реально полученную награду плюс ожидаемое будущее с текущим ожиданием.
- Сглаживание GAE: с помощью параметра суммируем с весами ошибки текущего шага, шага через секунду и через две секунды.
- После этого каждое действие получает точную оценку (положительная — лучше ожиданий, отрицательная — хуже).
Шаг 3: обучение (обновление — здесь работает PG)
Имея оценки (), возвращаемся к спортсмену (сети политики) и корректируем его «мышечную память».
-
Вычисляем градиент: находим, насколько в состоянии вероятно действие , то есть .
-
Взвешенное обновление:
- Если положительно (хороший удар!), градиент повышает вероятность этого действия.
- Если отрицательно (плохой удар!), градиент понижает вероятность.
-
Градиентный подъём: обновляем , и сеть становится умнее.
Шаг 4: цикл
Обновлённый «спортсмен» снова играет, и процесс повторяется с первого шага.
3. Почему нужен GAE? (интуиция)
Что будет, если использовать только PG без GAE?
-
PG без GAE (REINFORCE):
Суммарная награда за весь эпизод умножается на каждое действие.
- Минус: обучение идёт очень медленно и нестабильно. Это как если бы за трёхчасовой экзамен вам поставили только общий балл и не сказали, какие задачи решены правильно, а какие нет.
-
PG с GAE:
Для каждого действия используется .
- Плюс: каждому «заданию» (каждому действию) выставляется собственная оценка. Параметр работает как регулятор:
- при смотрим только на следующий шаг — очень дальновидно, но может быть близоруко;
- при смотрим на весь эпизод — честно, но может сбивать случайный шум;
- GAE выбирает промежуточное значение и обеспечивает баланс смещения и дисперсии.
- Плюс: каждому «заданию» (каждому действию) выставляется собственная оценка. Параметр работает как регулятор:
Итог: как связаны ваши вычисления?
- Сеть даёт ожидаемую «базовую линию».
- (TD-ошибка) измеряет «разрыв между реальностью и идеалом».
- GAE (преимущество) с помощью рекурсии объединяет эти разрывы в одну цепочку и определяет, хорошо ли действие.
- PG (градиент политики) использует эту оценку, чтобы подстроить веса нейросети.
3. Нужно уметь объяснить логику проектирования функции награды и то, как решается разрыв Sim-to-Real.
Логика проектирования функции награды
-
Формула:
-
Пример числового расчёта:
Пусть вес задачи захвата , вес направляющей по расстоянию , параметр плавности , вес штрафа .
Текущие координаты концевого эффектора манипулятора , координаты целевого объекта .
Квадрат евклидовой нормы момента на выходе .
-
Вычисляем расстояние: м.
-
Вычисляем сформированную награду: .
-
Вычисляем штраф: .
-
Объект не захвачен, .
Общая награда на этом шаге: .
-
Решение проблемы Sim-to-Real (числовой пример рандомизации доменов)
В симуляции масса звеньев манипулятора задаётся нормальным распределением. Реальная масса составляет 2.0 кг, и в симуляции в каждом эпизоде масса выбирается как . Это значит, что при обучении сеть RL обязана выучить стратегию управления, которая успешно работает при массе от 1.6 до 2.4 кг. Тогда при развёртывании в реальном мире модель просто не замечает ошибок модели трения моторов.
4. Нужно знать архитектуры и идеи основных моделей, таких как Open-VLA и RT-2.
RT-2 (Robotic Transformer 2)
-
Основная идея: действия дискретизируются как текстовые слова (токенизация), и большая модель предсказывает их напрямую.
-
Пример числового расчёта (токенизация действия):
Формула:
Пусть нужно предсказать степень раскрытия захвата , физический диапазон которого (-1 — полностью закрыт, 1 — полностью открыт).
В обучающих демонстрациях значение раскрытия захвата .
Подставляем:
.
Физическое действие отображается в 142-й специальный токен словаря модели (например,
<action_142>).
Open-VLA
- Модель с 7 миллиардами параметров. При инференсе в FP16 только веса занимают около 14 ГБ видеопамяти, а с учётом KV-кэша для плавного одношагового инференса обычно требуется видеокарта 24 ГБ, например RTX 3090 или 4090.
5. Нужно понимать принципы методов тонкой настройки, таких как LoRA.
LoRA (Low-Rank Adaptation)
-
Формула:
-
Пример числового расчёта (ручной расчёт на матрицах):
Пусть весовая матрица одного линейного слоя предобученной модели заморожена. Входной признак .
Задаём ранг .
Инициализируем низкоранговую матрицу случайным гауссовым распределением; допустим, сейчас .
Матрица инициализирована нулями, но после нескольких шагов обучения стала .
Коэффициент масштабирования .
Расчёт обходной ветви:
-
(понижение размерности до r=1).
-
(повышение размерности обратно до 2).
-
Умножаем на коэффициент масштабирования: .
Итоговый выход — это выход предобученной модели плюс вклад дообучения .
Сравнение числа параметров: при полном дообучении пришлось бы обновлять параметра; LoRA с обновляет параметра. Но в больших моделях (например, ) LoRA () содержит всего около параметров полной тонкой настройки!
-
6. Нужно уметь анализировать сильные и слабые стороны VLA по сравнению с другими методами (например, чистым обучением с подкреплением) и понимать перспективы внедрения в промышленности.
- Численное сравнение:
- Успешность и обобщение: в задаче «захватить чашку любого цвета на столе» чистое RL при встрече с незнакомой красной чашкой может обвально упасть с 95% до 5%; VLA же благодаря семантическому пониманию VLM сохраняет успешность выше 85%.
- Частота управления: сеть чистого RL очень мала (например, MLP), задержка вывода меньше 1 мс, что позволяет низкоуровневое силовое управление на 500 Гц; а VLA с 7 миллиардами параметров (даже в квантизации INT8) обычно тратит на один проход 80–200 мс, то есть планирует высокоуровневые действия лишь на 5–10 Гц.
- Промышленное внедрение: поэтому в промышленности обычно используют двухуровневую архитектуру: верхний уровень VLA (2 Гц) + нижний уровень MPC/RL (200 Гц).
7. Нужно понимать базовые понятия: прямую и обратную кинематику (IK), якобиан, PID-регулирование, MPC.
Прямая и обратная кинематика (на примере плоского двухстепенного манипулятора)
-
Числовой пример:
Длины звеньев м, м.
Прямая кинематика (FK): заданы углы суставов , .
Координата концевого эффектора .
Координата концевого эффектора .
Вывод: концевой эффектор находится в точке .
Обратная кинематика (IK): зная целевую точку , находим (верно при отсутствии сингулярных точек).
Якобиан
-
Числовой пример:
Пусть в текущей конфигурации . Мы хотим, чтобы концевой эффектор перемещался по оси x с линейной скоростью (м/с).
Решаем относительно скоростей суставов (рад/с).
То есть первый сустав неподвижен, второй вращается в обратном направлении со скоростью 0.1 рад/с.
PID-регулирование
-
Формула:
-
Пример числового расчёта:
Целевая позиция 10.0, текущая фактическая позиция 8.0. Текущая ошибка .
Накопленный интеграл ошибки .
Ошибка уменьшается, скорость её изменения .
Параметры .
Выходной момент двигателя Н·м.
8. Нужно знать принципы и применение распространённых датчиков, например глубинной камеры Realsense.
Глубинная камера Realsense (расчёт по стереоскопическому параллаксу)
-
Формула:
-
Пример числового расчёта:
Фокусное расстояние инфракрасного объектива камеры пикселей.
Физическое расстояние между левой и правой камерами (базис) м (5 см).
Точка на объекте имеет горизонтальную координату 300 на левом изображении и 280 на правом. Параметр пикселей.
Расстояние по глубине: м.
Камера выдаёт глубину этой точки 1.5 м.
9. «Почему в вашем проекте именно такая функция награды? Какие ещё варианты вы пробовали?»
(с числовым примером, основанным на вычислении потенциала)
«Помимо разреженной награды, я использовал формирование награды на основе потенциала (Potential-based Reward Shaping):
где — некоторое масштабирование обратной величины расстояния между эффектором и объектом.
Конкретный расчёт: пусть расстояние , а функция потенциала . .
В состоянии (предыдущий шаг) расстояние м, потенциал .
В состоянии (после действия) манипулятор приблизился к объекту, расстояние сократилось до м, потенциал .
Направляющая награда на этом шаге: .
Эта положительная награда эффективно поощряет манипулятор приближаться к объекту, а математически гарантирует, что не возникнет лазейки в виде локального оптимума «ходить кругами» (Reward Loop).»
10. «Что входит в ваше пространство наблюдений и почему оно устроено именно так?»
(с числовым примером вычисления размерности)
«Пространство наблюдений я строго ограничил по размерности, чтобы повысить эффективность выборки. Конкретная конкатенация такая:
-
Собственное состояние: углы суставов 6-степенного манипулятора (6 измерений) и угловые скорости (6 измерений) = 12 измерений.
-
Положение концевого эффектора: позиция — 3 измерения, ориентация в виде кватерниона — 4 измерения, раскрытие захвата — 1 измерение = 8 измерений.
-
Визуальные признаки: изображение с камеры «глаз в руке». Если сразу развернуть его (Flatten), получится 21168 измерений, что легко ведёт к переобучению. Я извлекаю признаки замороженной предобученной сетью ResNet-18, выход имеет 512 измерений.
Итоговая размерность: вектор наблюдения , поступающий в сеть Actor RL, — одномерный тензор размерности . Такая конструкция сохраняет марковское свойство среды и при этом сильно сжимает пространство состояний.»
11. «Объясните механизм многоголового внимания Transformer.»
Числовой пример вычисления самовнимания
-
Формула:
-
Допустим, на входе всего два токена (например, «красный» и «кружка»), после проекции размерность сделаем небольшой, например .
Пусть (две строки — Query двух слов).
Пусть .
-
Вычисляем скалярные произведения .
-
Делим на , получаем матрицу оценок внимания: .
-
Softmax (поскольку внедиагональные элементы равны 0, и для упрощения пример сильно сокращён) даёт распределение, сосредоточенное на самом себе. Наконец, умножаем на и получаем извлечённую информацию.
Многоголовый механизм выполняет описанный процесс раз параллельно в нескольких подпространствах, а затем конкатенирует результаты. Это позволяет модели, рассматривая одно и то же слово, извлекать признаки разных подпространств, например «цвет» и «форму».
-
12. «Чем отличаются диффузионная модель (DM) и авторегрессионная модель (AR) в VLA?»
-
Числовой пример для авторегрессии (AR):
Предсказываем последовательность действий .
Вероятность первого шага . Подставляем обратно на вход, и второй шаг даёт .
Совместная вероятность траектории . Проблема в том, что при небольшой ошибке в погрешность экспоненциально накапливается по шагам (Exposure Bias).
-
Числовой пример для диффузионной модели (DM):
Предсказываем всю траекторию действий сразу. Задача сети — предсказать шум, добавленный на текущем шаге.
Пусть истинное действие с добавленным реальным гауссовым шумом .
Прямой проход сети даёт предсказанный шум .
Вычисляем MSE-потерю DDPM: .
DM за один раз выполняет денойзинг и выдаёт блок (Chunk) из нескольких шагов действий (например, 16 шагов). Траектория по своей природе гладкая и согласованная, поэтому каскадная ошибка AR устраняется.
13. «Почему вы выбрали именно нашу лабораторию / это направление?»
«Я выбрал направление воплощённого ИИ, потому что оно позволяет непосредственно воздействовать на физический мир.
Что касается вашей лаборатории:
- Совпадение технических подходов: я читал статью вашей команды о применении диффузионных моделей для долгосрочных задач ловкой работы кистью. Я заметил, что вы задали размер Action Chunk равным 32, и это подняло успешность захвата на 15%. В своих прошлых проектах я тоже менял длину окна Action Chunking и обнаружил, что диапазон 16–32 — оптимальная зона. Поэтому мне очень близки ваши инженерные детали.
- Вычислительные ресурсы и аппаратная база: у вас есть 4 реальных робота со многопалыми кистями и кластер A100 в частном облаке. По сравнению с тем, что я сейчас могу запускать на одной видеокарте RTX 3090 (500 тысяч шагов обучения RL в симуляции), ваша платформа позволила бы за тот же срок пройти 10 миллионов шагов и значительно ускорить цикл Sim-to-Real.»
Первая часть: что такое DDPG / PPO / TD3 / SAC? Каковы входы и выходы?
По сути, это общие «правила обучения мозга» (фреймворк непрерывного управления). Их можно использовать для обучения захвату манипулятором, для обучения робота-собаки паркуру или даже для обучения управления рулём беспилотного автомобиля.
Основная структура этих четырёх алгоритмов обычно содержит две нейронные сети: Actor (актёр, выдаёт действия) и Critic (критик, выставляет оценки).
1. Входы модели (Observation/State)
При выполнении задачи в модель (главным образом в сеть Actor) обычно подаётся одномерный вектор, который описывает текущее состояние робота, воспринимаемое им, . В этом векторе можно объединить различные данные:
- Физическое состояние (самое частое): например, углы и угловые скорости 6 суставов манипулятора, координаты захвата. Если это 12-мерный массив, размер входного слоя сети равен 12.
- Изображения (Visual RL): если нужно, чтобы модель «видела» изображения, обычно не подают в эти алгоритмы десятки тысяч пикселей напрямую. Стандартный подход — сначала сжать RGB-изображение с помощью CNN (например, ResNet) в вектор признаков фиксированной длины (например, 256 измерений), а затем объединить его с физическим состоянием выше и подать на вход алгоритма.
- Языковые инструкции: если используется управление по языку (что сейчас популярно), подход похож. Фраза «возьми красное яблоко» преобразуется текстовым энкодером, похожим на CLIP, в вектор чисел, который также объединяется с входным состоянием.
2. Выходы модели (Action)
Выход сети Actor — это непрерывная команда действия, которую нужно выполнить на следующем шаге.
- Конкретная форма: например, 6-мерный вектор, задающий целевые моменты 6 моторов манипулятора или желаемые угловые скорости суставов.
- Куда идёт выход: он напрямую отправляется в физический движок (например, симулятор Isaac Gym) или в контроллер реального оборудования.
3. Цикл итераций (RL Loop)
На примере захвата предметов манипулятором весь замкнутый цикл выглядит так:
- Наблюдение за средой: датчики получают текущее состояние (например: манипулятор находится в точке A, цель — в точке B).
- Решение сети: подаётся в сеть Actor, и она выдаёт действие (например: каждый мотор поворачивается на определённый угол).
- Обратная связь среды: после выполнения действия робот переходит в новое состояние . Среда (или ваш код) выдаёт награду (например: приблизился к цели, +1 балл; ударился о стену, −10 баллов).
- Сбор данных: этот шаг опыта записывается в «буфер воспроизведения опыта» (большую таблицу данных).
- Обновление сетей:
- Обновление Critic: Critic берёт данные из буфера и учится точнее предсказывать «если в этом состоянии выполнить это действие, сколько баллов в сумме будет получено в будущем». (Здесь используется TD-цель, о ней ниже.)
- Обновление Actor: Actor корректирует параметры по оценкам Critic, чтобы при следующей похожей ситуации с большей вероятностью выдавать действие с более высокой оценкой.
- Цикл: возврат к шагу 1, и процесс повторяется десятки тысяч или миллионы раз, пока модель не выучит оптимальную стратегию.
Вторая часть: что такое «TD-цель (TD Target)»?
TD (Temporal Difference, временная разность) — одна из самых тонких идей обучения с подкреплением. TD-цель можно понимать как «самый свежий и более точный прогноз суммарной будущей выгоды, в котором учтена реально полученная награда».
Пример из жизни поможет быстро понять:
Допустим, вы едете на машине из Пекина в Шанхай. Перед выездом ваша голова (сеть Critic) оценивает, что путь займёт 12 часов.
Доехав до Тяньцзиня, вы потратили 2 часа (это соответствует реальной награде текущего шага). Вы снова смотрите навигатор: от Тяньцзиня до Шанхая ещё 9 часов (это прогноз модели для следующего состояния ).
Тогда ваша новая общая оценка времени всего пути из Пекина в Шанхай с учётом пройденного участка такая:
2 часа (реально потраченное время) + 9 часов (новый прогноз оставшегося времени) = 11 часов.
Это и есть TD-цель!
Ваша голова будет исправлять прежний прогноз 12 часов с учётом этих 11 часов. Именно такой метод — обновлять старые прогнозы, используя новую информацию из шага «вперёд» — и есть ядро TD-обучения.
В формуле это выглядит так:
- : реальная награда, полученная за выполненное действие (2 часа).
- : прогноз Critic о будущих баллах из нового состояния (сколько ещё ехать от Тяньцзиня до Шанхая).
- : коэффициент дисконтирования (обычно 0.99), то есть будущие прогнозы немного обесцениваются.
- : вычисленная TD-цель.
При обучении задача сети Critic — изо всех сил подогнать свой прогноз к этой TD-цели , и тогда её предсказания становятся всё точнее.
Третья часть: в чём различие DDPG, PPO, TD3 и SAC?
На макроуровне DDPG, PPO, TD3 и SAC действительно крутятся вокруг одного и того же цикла «наблюдение — действие — награда — обновление» (архитектура actor-critic). Но на микроуровне, чтобы решить проблемы, которые возникают при обучении, исследователи по-разному изменяют форму выхода сети, способ вычисления значений Q и механизм награды.
Основные различия как раз в этих микроскопических деталях. Сначала возьмём PPO, а затем сравним DDPG, TD3 и SAC — три «родственных» алгоритма.
1. Главное различие семейств: как используются данные?
- PPO (on-policy): это типичный пример «учиться и применять сразу». Actor сам собирает пакет данных в среде; после обновления сетей этот пакет выбрасывается. Следующее обновление обязательно требует новых данных, собранных самым свежим Actor.
- DDPG / TD3 / SAC (off-policy): у них есть большой «буфер воспроизведения опыта» (Replay Buffer). Данные, которые собрал Actor, сохраняются в буфер, и Critic может многократно использовать старые данные для обучения. Такой подход экономит обращения к среде (высокая эффективность по выборкам).
2. Микрохирургия: что именно изменено в значениях Q и политике?
Эти три off-policy алгоритма (DDPG → TD3 → SAC) — по сути история исправления ошибок, и их микроскопические различия как раз отвечают на ваш вопрос.
DDPG: родоначальник (но со множеством дыр)
- Выход Actor: Actor напрямую выдаёт определённое числовое значение (например, «моторный момент 2.5 Н·м»). Это детерминированная политика.
- Вычисление Q: Critic действует как наивный учитель и обновляется по обычной формуле TD-цели .
- Фатальный недостаток: поскольку предсказания нейронных сетей всегда содержат ошибки, Critic в DDPG очень склонен к слепому оптимизму (завышению Q). Он может выставить очень высокую оценку плохому действию, и Actor в итоге выучит плохую политику.
TD3: «усиленная заплатка» поверх DDPG
Чтобы справиться со «слепым оптимизмом» DDPG, TD3 вносит в микроскопический расчёт значений Q очень точные изменения:
- Два Q-критика и минимум (ключевое!): там два независимых Critic. При вычислении будущих значений Q оба выставляют оценки, и затем принудительно берётся меньшее из двух.
- Пример из жизни: вы оцениваете будущую стоимость квартиры, пригласили двух оценщиков. Один говорит 5 миллионов, другой — 3 миллиона. Чтобы не переплатить (то есть не попасть в ловушку завышения), вы принимаете решение, исходя из 3 миллионов.
- Сглаживание целевой политики: при вычислении TD-цели в следующее действие намеренно добавляется небольшой случайный шум. Это заставляет Critic понять: «Не отдавай высокую оценку лишь одному конкретному действию, смотри, хороши ли соседние действия в небольшой окрестности».
- Отложенное обновление: Critic обновляется два-три раза, и только потом обновляется Actor. Так Actor опирается на уже более точные оценки.
SAC: нынешний лидер, который меняет само определение награды
SAC идёт другим путём. Его главное микроскопическое изменение — изменение целевой функции награды (фреймворк максимальной энтропии):
- Микроскопическое изменение награды: к традиционной реальной награде добавляется «бонус энтропии» (Entropy Bonus).
- Цель становится такой: максимизировать .
- Выход Actor: в отличие от DDPG/TD3, которые выдают определённые действия, Actor SAC выдаёт гауссово распределение (среднее и дисперсию).
- Эффект: SAC требует не только выполнить задачу, но и поощряет робота выполнять её максимально разнообразными и случайными способами. Такая микроскопическая конструкция делает SAC более устойчивым к внешним возмущениям при работе с физической средой.
3. Одна таблица стоит тысячи слов: сводка микроскопических различий
| Алгоритм | Форма выхода Actor | Микро-операции при предсказании Q (Critic) | Особые механизмы награды и обновления | Особенности применения |
|---|---|---|---|---|
| PPO | Распределение вероятностей (гауссово/дискретное) | Использует функцию преимущества (Advantage) | Отсечение (Clipping), чтобы шаг обновления не был слишком большим | Очень стабилен, проще всего настраивается |
| DDPG | Определённое числовое значение | Одна сеть Q, прямой прогноз | Особых механизмов нет, TD-ошибка считается напрямую | Легко расходится, сейчас редко используется отдельно |
| TD3 | Определённое числовое значение | Минимум из двух сетей Q | Шум в целевом действии, отложенное обновление Actor | Быстрое обучение, относительно невысокие вычислительные затраты |
| SAC | Распределение вероятностей (среднее и дисперсия гауссова) | Минимум из двух сетей Q | Максимизация энтропии политики (в награду добавлена премия за исследование) | Очень высокая эффективность по выборкам, наибольшая устойчивость при развёртывании на реальном роботе |