Tôi đoán tốt nhất là nó đã được thực hiện để giảm thời gian tính toán, nếu không chúng ta sẽ phải tìm ra giá trị q cho mỗi hành động và sau đó chọn cái tốt nhất.
Nó không có tác động thực sự đến thời gian tính toán, ngoài việc tăng nhẹ (do bộ nhớ thêm được sử dụng bởi hai mạng). Bạn có thể lưu trữ kết quả của mạng đích mà tôi cho là, nhưng có lẽ nó sẽ không có giá trị đối với hầu hết các môi trường và tôi chưa thấy một triển khai nào thực hiện điều đó.
Tui bỏ lỡ điều gì vậy?
Đó là để làm với sự ổn định của thuật toán Q-learning khi sử dụng xấp xỉ hàm (tức là mạng nơ ron). Sử dụng một mạng đích riêng biệt, được cập nhật mỗi bước rất nhiều với một bản sao của các tham số đã học mới nhất, giúp giữ cho xu hướng chạy trốn khỏi bootstrapping khỏi việc thống trị số lượng hệ thống, khiến các giá trị Q ước tính bị phân kỳ.
Hãy tưởng tượng một trong những điểm dữ liệu (at S, A, R, S'
) khiến ước tính quá kém hiện tại Q(S', A')
trở nên tồi tệ hơn. Có S', A'
thể thậm chí chưa được truy cập, hoặc giá trị R
nhìn thấy cho đến nay cao hơn mức trung bình, chỉ là tình cờ. Nếu một mẫu (S,A)
bị cắt xén nhiều lần trong trải nghiệm phát lại, nó sẽ trở nên tồi tệ hơn mỗi lần, bởi vì việc cập nhật Q(S,A)
được dựa trên R + max_a Q(S',a)
. Việc sửa mạng đích sẽ hạn chế thiệt hại mà các ước tính quá mức đó có thể gây ra, khiến mạng học tập có thời gian hội tụ và mất nhiều hơn độ lệch ban đầu.
Về mặt này, sử dụng một mạng đích riêng biệt có mục đích rất giống nhau để trải nghiệm phát lại. Nó ổn định một thuật toán mà nếu không có vấn đề hội tụ.
Cũng có thể có DQN với "học đôi" để giải quyết một vấn đề riêng: Tối đa hóa sai lệch. Trong trường hợp đó, bạn có thể thấy việc triển khai DQN với 4 mạng thần kinh.