# Стэнфорд: три способа научить ИИ принимать решения через оценку градиента

Источник: https://www.youtube.com/watch?v=PgPNfPhG4Wc
Канал: Stanford Online
Опубликовано: 21.11.2024

---

В рамках курса Стэнфордского университета AA228/CS238 «Принятие решений в условиях неопределенности» прошла лекция, посвященная методам оценки градиента стратегии (Policy Gradient Estimation). Магистрантка Амелия представила детальный разбор математических подходов, которые позволяют оптимизировать поведение агентов в сложных средах, где невозможно составить полную таблицу состояний.

## 🌡️ Параметризация стратегии: от таблиц к функциям
[[JUMP:01:06]]

В классических задачах обучения с подкреплением стратегия ($\pi$) определяет, какое действие следует предпринять в конкретном состоянии. Однако, как отмечает Амелия, при работе с большими или непрерывными пространствами состояний хранение стратегии в виде таблицы становится невозможным [02:17]. 

В качестве примера спикер приводит систему управления температурой в здании:

*   **Состояния:** Текущая температура (от 0 до 100 градусов).
*   **Действия:** Включить обогрев, включить кондиционер или ничего не делать.
*   **Ограничение:** Нельзя включать обогрев и охлаждение одновременно [01:35].

Вместо хранения 100 различных значений для каждого градуса, стратегия параметризуется вектором $\theta$. Например, можно задать два параметра: $\theta_1$ (порог включения тепла) и $\theta_2$ (порог включения кондиционера) [02:55]. Задача оптимизации сводится к поиску таких значений $\theta$, которые максимизируют полезность — $u(\theta)$ [03:22].

## 📉 Метод конечных разностей (Finite Differences)
[[JUMP:04:56]]

Первый и наиболее интуитивно понятный метод оценки градиента основан на классическом определении производной. Спикер напоминает, что для вычисления наклона функции в точке мы можем взять другую точку на небольшом расстоянии ($\Delta$) и вычислить разность значений [05:38].

В многомерном случае для каждого параметра $\theta_i$ вычисляется частная производная:

1.  Берется стандартный базисный вектор $e_i$ (где 1 стоит только в позиции $i$).
2.  Вычисляется разность между полезностью с измененным параметром и исходной полезностью: $u(\theta + \Delta e_i) - u(\theta)$ [06:28].
3.  Результат делится на $\Delta$.

Амелия подчеркивает, что этот метод требует проведения симуляций (rollouts) для оценки полезности [07:41]. Главным недостатком является высокая чувствительность к дисперсии: если оценка полезности зашумлена, для получения адекватного градиента потребуется огромное количество запусков симуляции [07:54].

## 📊 Регрессионный градиент (Regression Gradient)
[[JUMP:09:00]]

Более робастным методом является построение регрессионной модели вокруг текущей точки параметров. Вместо того чтобы изменять каждый параметр по очереди, спикер предлагает собирать набор данных о возмущениях (perturbations) [10:16].

Процесс выглядит следующим образом:

*   **Генерация возмущений:** Создается матрица $\Delta\theta$ размером $m \times n$, где $m$ — количество возмущений, а $n$ — количество параметров.
*   **Выбор количества проб:** По словам Амелии, эмпирическое правило гласит, что количество возмущений ($m$) должно вдвое превышать количество параметров ($n$) [11:30].
*   **Сэмплирование:** Хорошие результаты дает случайное сэмплирование из нормального распределения с последующей нормализацией, что можно визуализировать как выбор точек на поверхности гиперсферы [12:14].
*   **Оценка изменения полезности:** Для каждого возмущения проводится симуляция и вычисляется изменение полезности $\Delta u$ [15:38].

Для нахождения градиента используется формула с псевдообратной матрицей: $\nabla u(\theta) \approx \Delta\theta^\dagger \Delta u$ [16:54]. Псевдоинверсия необходима, так как матрица возмущений обычно не является квадратной и может быть неинвертируемой в обычном смысле [17:08].

## 🧠 Отношение правдоподобия и Log-Derivative Trick
[[JUMP:19:21]]

Самый математически сложный, но эффективный метод — использование отношения правдоподобия (Likelihood Ratio). Здесь полезность представляется как интеграл по всем возможным траекториям $\tau$ [20:19]:
$u(\theta) = \int p_\theta(\tau) R(\tau) d\tau$, где $p_\theta(\tau)$ — вероятность траектории при параметрах $\theta$, а $R(\tau)$ — суммарное вознаграждение (return) [21:21].

Ключевым моментом здесь является «трюк с логарифмической производной» (log-derivative trick). По словам Амелии, это позволяет переписать градиент интеграла как математическое ожидание [27:57]:
$\nabla_\theta u(\theta) = E_\tau [\nabla_\theta \log p_\theta(\tau) R(\tau)]$ [28:19].

Этот подход особенно удобен для стохастических стратегий, которые выдают не конкретное действие, а распределение вероятностей действий [30:23]. Например, при 30 градусах стратегия может с вероятностью 90% советовать включить тепло и с вероятностью 5% — кондиционер [30:41].

## 🧬 Разбор траектории и независимость от среды
[[JUMP:31:47]]

Амелия подробно разбирает, из чего складывается вероятность траектории $p_\theta(\tau)$. Она включает в себя:

1.  Вероятность начального состояния (не зависит от параметров $\theta$) [32:42].
2.  Вероятности переходов между состояниями (определяются динамикой среды, а не стратегией) [33:08].
3.  Вероятности выбора действий согласно стратегии $\pi_\theta(a|s)$ [33:35].

При взятии градиента логарифма этой вероятности происходит удивительное упрощение: все члены, описывающие динамику среды (переходы состояний), исчезают, так как они не зависят от $\theta$ [38:15]. 

В итоге, для оценки градиента нам нужно знать только градиент логарифма нашей собственной стратегии, что делает метод чрезвычайно мощным: нам не нужно знать, как устроена среда, чтобы оптимизировать поведение в ней [38:33]. В практической реализации, как отмечает спикер в дискуссии со студентами, приходится сэмплировать конечное число траекторий, так как перебрать все возможные варианты развития событий невозможно [44:35].