Giới thiệu về học tăng cường sâu

Deep Reinforcement Learning bằng Python

Timothée Carayol

Principal Machine Learning Engineer, Komment

Vì sao Học tăng cường sâu

 

  • RL truyền thống phù hợp bài toán ít chiều

 

 

  • Nhiều ứng dụng có không gian trạng thái và/hoặc hành động nhiều chiều

 

Một tác tử khám phá môi trường Frozen Lake

Một tác tử chơi trò Space Invaders cổ điển

Deep Reinforcement Learning bằng Python

Thành phần của DRL

 

  1. Khái niệm Học tăng cường
  2. Học sâu và PyTorch

 

  • DRL dùng các khái niệm này với mạng nơ-ron sâu

 

Minh họa pixel của một đầu bếp đang trộn nguyên liệu

Deep Reinforcement Learning bằng Python

Khung RL

 

  • Bước t:

 

Một hộp lớn với hai hộp nhỏ bên trong, nhãn 'Agent' và 'Environment'

Deep Reinforcement Learning bằng Python

Khung RL

 

  • Bước t:
    • Tác tử quan sát trạng thái $s_t$

 

Một mũi tên đỏ nhãn State s_t đi từ môi trường đến tác tử.

Deep Reinforcement Learning bằng Python

Khung RL

 

  • Bước t:
    • Tác tử quan sát trạng thái $s_t$
    • Tác tử thực hiện hành động $a_t$

 

Một mũi tên đỏ nhãn action a_t đi từ tác tử đến môi trường. Mũi tên trạng thái giờ màu đen.

Deep Reinforcement Learning bằng Python

Khung RL

 

  • Bước t:
    • Tác tử quan sát trạng thái $s_t$
    • Tác tử thực hiện hành động $a_t$
  • Bước t+1:
    • Môi trường trả thưởng $r_t$
    • Trạng thái chuyển thành $s_{t+1}$

 

Mũi tên trạng thái s_t cập nhật nhãn thành state s_t+1 và lại màu đỏ. Một mũi tên đỏ mới nhãn reward r_t+1 đi từ môi trường đến tác tử. Mũi tên hành động giờ màu đen.

Deep Reinforcement Learning bằng Python

Khung RL

 

  • Bước t:
    • Tác tử quan sát trạng thái $s_t$
    • Tác tử thực hiện hành động $a_t$
  • Bước t+1:
    • Môi trường trả thưởng $r_t$
    • Trạng thái chuyển thành $s_{t+1}$
  • Lặp đến khi kết thúc tập

 

Cùng hình như slide trước, nhưng mọi mũi tên đều màu đen.

Deep Reinforcement Learning bằng Python

Chính sách $\pi(s_t)$

 

  • Ánh xạ từ trạng thái tới hành động, mô tả cách tác tử hành xử ở trạng thái $s_t$

 

  • Quyết định:
    • Trả về hành động chọn
  • Ngẫu nhiên:
    • Trả về phân phối trên các hành động
    • Chính sách là phân phối xác suất trên các hành động có thể
Deep Reinforcement Learning bằng Python

Quỹ đạo và lợi tức tập

 

Quỹ đạo tau: Dãy mọi trạng thái và hành động trong một tập; tau = ((s0, a0), (s1, a1), ... (sT, aT))

 

Lợi tức tập Rtau: tổng (chiết khấu) phần thưởng tích lũy theo quỹ đạo tau. Rtau = tổng theo t của gamma mũ t nhân r_t

Deep Reinforcement Learning bằng Python

Thiết lập môi trường

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)
Deep Reinforcement Learning bằng Python

Vòng lặp cơ bản

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

 

  • Vòng ngoài: lặp qua các tập
  • Vòng trong: lặp qua các bước
    • Chọn hành động
    • Quan sát trạng thái mới và thưởng
    • Tính loss và cập nhật mạng
    • Cập nhật trạng thái
  • (Loss?)
Deep Reinforcement Learning bằng Python

Tiếp theo

 

 

  • DRL rất mạnh!
  • Cách tiếp cận dựa trên giá trị và dựa trên chính sách
  • DQN và các cải tiến
  • Phương pháp gradient chính sách

Một học viên Datacamp lặn sâu để khám phá bí mật của Học tăng cường sâu

Deep Reinforcement Learning bằng Python

Ayo berlatih!

Deep Reinforcement Learning bằng Python

Preparing Video For Download...