Sobes.tech
Middle — Senior
22

Что такое Dyna-Q?

Компании, где спрашивали
Yandex Research
F.A.C.C.T.

Ответ от нейросети

sobes.tech AI

Dyna-Q — это алгоритм обучения с подкреплением, который объединяет прямое обучение на основе опыта взаимодействия с окружающей средой и планирование на основе модели среды. В отличие от классического Q-обучения, Dyna-Q использует модель среды для генерации дополнительных обучающих примеров, что ускоряет обучение агента.

Основные шаги Dyna-Q:

  1. Агент взаимодействует с реальной средой, обновляя Q-значения на основе полученных наград.
  2. Одновременно агент строит модель среды (например, запоминает переходы и награды).
  3. Затем агент использует эту модель для симуляции дополнительных переходов и обновления 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