Вступ до deep reinforcement learning

Глибоке навчання з підкріпленням у Python

Timothée Carayol

Principal Machine Learning Engineer, Komment

Чому Deep Reinforcement Learning

 

  • Традиційне RL підходить для низьковимірних задач

 

 

  • Багато застосувань мають високовимірний простір станів та/або дій

 

Агент досліджує середовище Frozen Lake

Агент грає у класичну відеогру Space Invaders

Глибоке навчання з підкріпленням у Python

Складові DRL

 

  1. Поняття Reinforcement Learning
  2. Deep Learning і PyTorch

 

  • DRL поєднує ці ідеї з глибокими нейромережами

 

Піксель-арт ілюстрація кухаря, що змішує інгредієнти

Глибоке навчання з підкріпленням у Python

Каркас RL

 

  • Крок t:

 

Велика коробка з двома меншими всередині, позначеними «Agent» та «Environment»

Глибоке навчання з підкріпленням у Python

Каркас RL

 

  • Крок t:
    • Агент спостерігає стан $s_t$

 

Червона стрілка з міткою State s_t йде від середовища до агента.

Глибоке навчання з підкріпленням у Python

Каркас RL

 

  • Крок t:
    • Агент спостерігає стан $s_t$
    • Агент виконує дію $a_t$

 

Червона стрілка з міткою action a_t йде від агента до середовища. Стрілка стану тепер чорна.

Глибоке навчання з підкріпленням у Python

Каркас RL

 

  • Крок t:
    • Агент спостерігає стан $s_t$
    • Агент виконує дію $a_t$
  • Крок t+1:
    • Середовище надає винагороду $r_t$
    • Стан переходить у $s_{t+1}$

 

Стрілка стану s_t оновлює мітку до state s_t+1 і знову червона. Нова червона стрілка reward r_t+1 йде від середовища до агента. Стрілка дії тепер чорна.

Глибоке навчання з підкріпленням у Python

Каркас RL

 

  • Крок t:
    • Агент спостерігає стан $s_t$
    • Агент виконує дію $a_t$
  • Крок t+1:
    • Середовище надає винагороду $r_t$
    • Стан переходить у $s_{t+1}$
  • Повторюйте, доки епізод не завершиться

 

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

Глибоке навчання з підкріпленням у Python

Політика $\pi(s_t)$

 

  • Відображення від стану до дії, що описує поведінку агента у стані $s_t$

 

  • Детермінована:
    • Повертає вибрану дію
  • Стохастична:
    • Повертає розподіл імовірностей дій
    • Політика — це ймовірнісний розподіл можливих дій
Глибоке навчання з підкріпленням у Python

Траєкторія та повернення епізоду

 

Траєкторія tau: послідовність усіх станів і дій в епізоді; tau = ((s0, a0), (s1, a1), ... (sT, aT))

 

Повернення епізоду Rtau: сумарна (дисконтована) винагорода вздовж траєкторії tau. Rtau = сума за t від gamma у степені t, помноженого на r_t

Глибоке навчання з підкріпленням у Python

Налаштування середовища

env = gym.make("ALE/SpaceInvaders-v5")

# Define neural network architecture class Network(nn.Module): def __init__(self, dim_inputs, dim_outputs): super(Network, self).__init__() self.linear = nn.Linear(dim_inputs, dim_outputs) def forward(self, x): return self.linear(x)
# Instantiate network network = Network(dim_inputs, dim_outputs)
# Instantiate optimizer optimizer = optim.Adam(network.parameters(), lr=0.0001)
Глибоке навчання з підкріпленням у Python

Базовий цикл

for episode in range(1000):
  state, info = env.reset()
  done = False

while not done:
action = select_action(network, state)
next_state, reward, terminated, truncated, _ = ( env.step(action)) done = terminated or truncated
loss = calculate_loss(network, state, action, next_state, reward, done) optimizer.zero_grad() loss.backward() optimizer.step()
state = next_state

 

  • Зовнішній цикл: ітерації за епізодами
  • Внутрішній цикл: ітерації за кроками
    • Виберіть дію
    • Спостерігайте новий стан і винагороду
    • Обчисліть втрату та оновіть мережу
    • Оновіть стан
  • (Втрата?)
Глибоке навчання з підкріпленням у Python

Далі буде

 

 

  • DRL — потужний підхід!
  • Підходи на основі цінності та політики
  • DQN і його вдосконалення
  • Методи градієнта політики

Навчанець DataCamp пірнає глибоко в море, щоб відкрити секрети Deep Reinforcement Learning

Глибоке навчання з підкріпленням у Python

Давайте потренуємось!

Глибоке навчання з підкріпленням у Python

Preparing Video For Download...