Middle — Senior
22
Что такое Dyna-Q?
Компании, где спрашивали
Yandex Research
F.A.C.C.T.
Ответ от нейросети
sobes.tech AI
Dyna-Q — это алгоритм обучения с подкреплением, который объединяет прямое обучение на основе опыта взаимодействия с окружающей средой и планирование на основе модели среды. В отличие от классического Q-обучения, Dyna-Q использует модель среды для генерации дополнительных обучающих примеров, что ускоряет обучение агента.
Основные шаги Dyna-Q:
- Агент взаимодействует с реальной средой, обновляя Q-значения на основе полученных наград.
- Одновременно агент строит модель среды (например, запоминает переходы и награды).
- Затем агент использует эту модель для симуляции дополнительных переходов и обновления Q-значений (планирование).
Пример:
# псевдокод Dyna-Q
for episode in episodes:
state = env.reset()
while not done:
action = choose_action(state, Q)
next_state, reward = env.step(action)
Q[state, action] += alpha * (reward + gamma * max(Q[next_state]) - Q[state, action])
model[state, action] = (next_state, reward)
for _ in range(planning_steps):
s, a = sample_from_model(model)
s_next, r = model[s, a]
Q[s, a] += alpha * (r + gamma * max(Q[s_next]) - Q[s, a])
state = next_state