Серия «Архитектор искусственного интеллекта должен знать: обучение с подкреплением»

Автор: Дзен и искусство компьютерного программирования

1. Введение

1. Что такое обучение с подкреплением?

Обучение с подкреплением (RL) — это область машинного обучения, в которой используются определенные вознаграждения и наказания для окружающей среды, чтобы стимулировать агентов к постоянному исследованию, обнаружению и использованию знаний и опыта в среде, чтобы метод машинного обучения максимизировал вознаграждение. Он подходит для многих практических сценариев применения, включая игры, финансы, автономное вождение и т. д.

2. Преимущества обучения с подкреплением

  • 1. Планирование : RL может позволить агентам более эффективно решать сложные проблемы, позволяя агентам выполнять сложные задачи посредством обучения.
  • 2. Механизм обратной связи . Система обучения RL может улучшить свою стратегию на основе информации обратной связи от окружающей среды и, таким образом, добиться систематического улучшения.
  • 3. Масштабируемость : RL позволяет агентам постепенно переходить от простых задач к более сложным и находить способы решения этих задач.
  • 4. Развязка : RL может эффективно обрабатывать сложные нелинейные отношения, и агенту не нужно полностью понимать всю систему.

    3. Классификация обучения с подкреплением

    (1) RL на основе модели

    В RL на основе модели агент моделирует отношения отображения между пространством состояний и пространством действий и на основе этого моделирует функцию ценности. Затем для поиска в пространстве состояний и выбора поведения для максимизации долгосрочных выгод используются такие методы, как поиск по дереву Монте-Карло.

Преимущество RL на основе моделей заключается в том, что оно может учитывать влияние изменений окружающей среды, таких как появление новых дорог, врагов, датчиков и т. д. Однако очевидны и недостатки: требуется моделирование полного уравнения перехода состояний и потребляются вычислительные ресурсы. Более того, поскольку пространство состояний слишком сложное, оно подвержено проблеме «взрыва пространства состояний».

(2) Обучение с подкреплением на основе моделей

Этот подход RL характеризуется разделением принятия решений и обучения. Сначала агент выбирает действие, затем ждет обратной связи от среды, обновляет свою функцию значения или другие параметры модели на основе обратной связи и, наконец, снова выбирает действие. Этот метод позволяет избежать проблемы взрыва пространства состояний в процессе обучения и может интегрировать в модель некоторые важные, связанные со временем факторы. Но это также требует дополнительных затрат на обучение, таких как сбор данных, обучение модели и т. д.

(3) Прямой РЛ

Прямое RL отличается от первых двух методов тем, что оно пытается напрямую контролировать среду, а это означает, что агент должен научиться максимизировать вознаграждение.

Прямое RL обычно реализуется с использованием алгоритма Q-обучения или алгоритма SARSA.

(4) Другие

Помимо четырех типов методов RL, упомянутых выше, существует множество других типов методов RL, таких как усиленные сети Монте-Карло, безмодельные методы RL и т. д. Каждый из этих методов имеет свои преимущества и выполняет свои функции. Поэтому выбор метода зависит от различных сценариев применения и потребностей.

2. Объяснение основных понятий и терминов

1. Что такое государство?

В задачах обучения с подкреплением состояние, предоставляемое агенту средой, является текущим состоянием агента. На каждой итерации агент получает последнее состояние среды. Например, в мини-игре «Тетрис» каждое состояние представляет собой состояние блоков «Тетриса» при их падении, которое может быть начальным состоянием (т. е. пустой доской) или состоянием после падения некоторых блоков.

2. Что такое действие?

В задачах обучения с подкреплением действия относятся к поведенческим инструкциям, используемым агентом для изменения состояния окружающей среды. На каждой итерации агент решает, какие действия предпринять, чтобы изменить состояние среды.

Например, в мини-игре «Тетрис» каждое допустимое действие — переместить блок, повернуть его или зафиксировать блок в той или иной форме.

3. Что такое вознаграждение?

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

Например, в игре «Тетрис» каждый раз, когда игрок выполняет операцию, он получает определенное количество очков, которое называется наградой. Если игрок потерпит неудачу, он потеряет несколько очков.

4. Что такое траектория?

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

Например, в игре Тетрис траектория представляет собой стратегию агента. Траектория может состоять из многих состояний, но существует только одна конечная последовательность действий, которая и составляет стратегию.

5. Что такое марковский процесс принятия решений?

Марковские процессы принятия решений (MDP) лежат в основе задач обучения с подкреплением. Он описывает серию состояний, действий и соответствующих наград, где изменения состояний и действий связаны только с текущим состоянием, а не с предыдущим состоянием. Пространство состояний и пространство действий MDP ограничены.Агент может перейти только из состояния S_t в состояние S_{t+1}. Согласно его определению, эта вероятность перехода зависит от текущего состояния S_t и действия A_t.

6. Что такое политика?

Политика относится к действиям, предпринимаемым агентом в данном состоянии.Траектория может быть создана путем выполнения политики, то есть последовательности действий в рамках последовательности состояний.

7. Что такое функция значения?

Функция значения относится к ожидаемому доходу, который агент может получить в данном состоянии. Он описывает максимальное ожидаемое совокупное вознаграждение, полученное при принятии политики в каждом штате.

8. Что такое цель?

Цель представляет собой задачу, которую должен выполнить агент. В задачах обучения с подкреплением целью может быть максимизация ожидаемого совокупного дохода или максимизация награды за один шаг.

3. Объяснение основных принципов алгоритма, конкретных рабочих этапов и математических формул.

(1) Как создать среду обучения с подкреплением

Во-первых, вам необходимо построить марковский процесс принятия решений (MDP), который описывает состояния, действия и вознаграждения. MDP должен иметь ограниченное пространство состояний S и пространство действий A, а количество состояний и действий часто относительно велико, поэтому для оптимизации поиска и решения требуется распределенный алгоритм. Затем определите начальное состояние s_initial в MDP для инициализации агента.

(2) Как разработать алгоритмы обучения с подкреплением

Существует несколько алгоритмов обучения с подкреплением, в том числе:

  1. Q-Learning: Q-Learning — это один из простейших алгоритмов обучения с подкреплением, который использует функцию Q для оценки значения действия состояния и может изучить оптимальную политику.
  2. Sarsa(лямбда): Алгоритм Sarsa(лямбда) основан на Q-Learning и добавляет член λ, который может дисконтировать краткосрочные вознаграждения, уделяя больше внимания долгосрочным вознаграждениям.
  3. Актер-критик. Метод актера-критика в основном сочетает в себе градиент политики и итерацию значений для обновления политики и функции значения для формирования общей структуры обучения.

В этой статье используется алгоритм Q-Learning. Ниже приводится алгоритм Q-Learning:

  1. Инициализируйте таблицу Q и используйте -inf, чтобы указать, что все действия в остальных состояниях невозможны.
  2. В начале t-й итерации агент входит в состояние st;
  3. Выполнить t-е действие в, получить состояние st' и вознаградить rt;
  4. Обновите таблицу Q в соответствии с уравнением Беллмана: Q(st,at) += альфа * (rt + gamma * max(Q(st',a)) - Q(st,at));
  5. Обновите st до st' и продолжайте выполнять t+1-ю итерацию до тех пор, пока не будет достигнуто максимальное количество итераций N или пока не будут выполнены другие условия остановки.

(3) Как решить проблему государственного космического взрыва

Когда пространство состояний велико, объем памяти, занимаемой таблицей Q, также будет увеличиваться в геометрической прогрессии. Таким образом, проблему государственного космического взрыва можно смягчить, используя:

  1. Используйте хорошо продуманную схему кодирования состояний для представления состояний в виде векторов или тензоров;
  2. При использовании Q-Learning спроектируйте несколько наборов таблиц Q для возможных комбинаций действий состояния, чтобы уменьшить их количество;
  3. Используйте метод выборки по важности для выборки пар состояние-действие, чтобы уменьшить вклад неоптимальных пар состояние-действие, тем самым уменьшая размер таблицы Q.

4. Конкретные примеры кода и пояснения

(1) Пример кода Python

import numpy as np

# define the state space and action space
state_space = ['s0','s1']
action_space = ['a0', 'a1']

# initialize q table with zeros
q_table = np.zeros((len(state_space), len(action_space)))

# set hyperparameters
alpha = 0.1
gamma = 0.9

# training loop
for i in range(1000):
    # sample a random state from state space
    current_state = np.random.choice(state_space)

    # choose an action based on epsilon greedy policy
    if np.random.uniform() < 0.1:
        next_action = np.random.choice(action_space)
    else:
        next_action = np.argmax(q_table[state_space.index(current_state)])

    # take action and observe reward
    new_state = None
    reward = 0
    if next_action == 'a0':
        new_state ='s0'
        reward = -1
    elif next_action == 'a1':
        new_state ='s1'
        reward = 1

    # update q value
    q_table[state_space.index(current_state)][action_space.index(next_action)] += \
        alpha * (reward + gamma * np.max(q_table[state_space.index(new_state)]) -
                 q_table[state_space.index(current_state)][action_space.index(next_action)])

    print('Episode:', i,'Current State:', current_state,
          'Next Action:', next_action, 'New State:', new_state, 'Reward:', reward)

print('\nFinal Q Table:\n', q_table)

(2) Как установить гиперпараметры

Гиперпараметры относятся к параметрам, установленным для адаптации к среде и алгоритму во время процесса обучения, и их цель — регулировать производительность обучения. Вот некоторые распространенные гиперпараметры:

  1. скорость обучения (α): чем больше α, тем больше вероятность того, что алгоритм выберет действие с наибольшей наградой в текущем состоянии;
  2. коэффициент дисконтирования (γ): чем больше γ, тем более склонен алгоритм к долгосрочным вознаграждениям;
  3. скорость исследования (ε): чем меньше ε, тем больше вероятность того, что алгоритм будет случайным образом выбирать действия для исследования большего количества комбинаций состояний и действий;
  4. количество эпизодов (N): чем больше N, тем выше эффективность обучения алгоритма, но это также приведет к проблемам переобучения;
  5. максимальное количество итераций на эпизод (T): чем больше T, тем дольше время обучения алгоритма.

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

рекомендация

отblog.csdn.net/universsky2015/article/details/133446788
рекомендация