Дисконтирование и коэффициент gamma
Урок объясняет дисконтирование и роль коэффициента gamma в том, насколько агент думает о будущем.
Дисконтирование — это уменьшение веса будущих наград: награда через n шагов учитывается с множителем gamma в степени n. Коэффициент gamma из диапазона [0, 1] управляет «дальновидностью» агента.
Зачем уменьшать будущие награды
У дисконтирования две причины — практическая и идейная.
- Математическая. В бесконечных задачах сумма наград может расходиться. Множитель gamma<1 делает геометрический ряд конечным.
- Содержательная. Награда сейчас обычно ценнее такой же награды потом — будущее неопределённо. Это похоже на банковский процент: «100 рублей сегодня» лучше «100 рублей через год».
Как gamma меняет поведение агента
Значение gamma напрямую влияет на стратегию.
| gamma | Поведение агента |
| близко к 0 | близорукий: гонится за немедленной наградой |
| около 0.9 | учитывает ближайшее будущее |
| около 0.99 | очень дальновидный: ценит далёкие награды |
Сколько «стоит» будущая награда
Награда +100 через n шагов сегодня стоит gamma в степени n умножить на 100. Посмотрим, как быстро тает её ценность при разных gamma.
# Ценность награды +100, полученной через 0,1,5,10,20 шагов, при разных gamma
for gamma in (0.5, 0.9, 0.99):
row = [round(gamma ** n * 100, 2) for n in (0, 1, 5, 10, 20)]
print("gamma =", gamma, "->", row)Вывод:
gamma = 0.5 -> [100.0, 50.0, 3.12, 0.1, 0.0] gamma = 0.9 -> [100.0, 90.0, 59.05, 34.87, 12.16] gamma = 0.99 -> [100.0, 99.0, 95.1, 90.44, 81.79]
При gamma=0.5 награда через 10 шагов почти ничего не стоит (0.1), а при gamma=0.99 даже через 20 шагов сохраняет 82% ценности. Так gamma регулирует горизонт планирования.
Как работает под капотом
Дисконтированный возврат — это сумма r_0 + gamma·r_1 + gamma²·r_2 + ... Если все награды ограничены величиной R_max, то даже бесконечная сумма не превышает R_max/(1-gamma). Это и гарантирует, что ценности конечны, а уравнение Беллмана имеет решение. Множитель 1/(1-gamma) можно считать «эффективным горизонтом»: при gamma=0.99 это около 100 шагов.
Частые ошибки
- Слишком маленький gamma. Агент становится близоруким и не научится стратегиям с отложенной наградой (например, жертве пешки ради мата).
- gamma = 1 в бесконечной задаче. Сумма наград расходится, обучение нестабильно. В непрерывных задачах gamma строго меньше 1.
- Считать gamma свойством среды. gamma — это часть постановки задачи / гиперпараметр, который выбирает инженер, а не среда.
Итоги
- Дисконтирование уменьшает вес будущих наград множителем gamma в степени числа шагов.
- gamma управляет дальновидностью: меньше — близорукий агент, больше — дальновидный.
- gamma<1 делает сумму наград конечной и обеспечивает существование решения Беллмана.