ПочатиПочніть безкоштовно

Реалізація правила оновлення Q-learning

Q-learning — це off-policy алгоритм підкріплювального навчання (RL), який шукає найкращу дію для поточного стану. На відміну від SARSA, що враховує фактичну наступну дію, Q-learning оновлює свої Q-значення, використовуючи максимальну майбутню винагороду незалежно від зробленої дії. Завдяки цьому Q-learning може вивчити оптимальну політику, водночас дотримуючись дослідницької чи навіть випадкової політики. Ваше завдання — реалізувати функцію, яка оновлює Q-таблицю за правилом Q-learning. Нижче наведено правило оновлення Q-learning, і вам потрібно реалізувати функцію, що оновлює Q-таблицю відповідно до цього правила.

Бібліотеку NumPy імпортовано для вас як np.

Image showing the mathematical formula of the Q-learning update rule.

Ця вправа є частиною курсу

Reinforcement Learning з Gymnasium у Python

Переглянути курс

Інструкції до вправи

  • Отримайте поточне Q-значення для заданої пари «стан-дія».
  • Визначте максимальне Q-значення для наступного стану серед усіх можливих дій у actions.
  • Оновіть Q-значення для поточної пари «стан-дія» за формулою Q-learning.
  • Оновіть Q-таблицю Q, враховуючи, що агент виконує дію 0 у стані 0, отримує винагороду 5 і переходить до стану 1.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

actions = ['action1', 'action2'] 
def update_q_table(state, action, reward, next_state):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Determine the maximum Q-value for the next state
    next_max = ____
    # Compute the new value of the current state-action pair
    Q[state, action] = ____

alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)
Редагувати та запускати код