Biểu diễn & Căn chỉnhgiáo trình tự học
Chương 138 phút đọcHọc tăng cường và căn chỉnh

13Gradient chính sách#

Q-learning học hàm giá trị rồi suy ra chính sách. Với mô hình ngôn ngữ, cách tự nhiên hơn là điều chỉnh trực tiếp chính sách, vì chính sách chính là mô hình đã có. PPO, thuật toán dùng trong RLHF, thuộc họ phương pháp này. Để hiểu nó, ta đi từ định lý gradient chính sách, qua vấn đề phương sai của ước lượng gradient và cách đường nền giảm phương sai đó.

13.1Giới hạn của Q-learning với mô hình ngôn ngữ#

Q-learning cần một bảng hoặc một mô hình cho Q(s,a)Q(s, a) và cần tính max⁡a′Q(s′,a′)\max_{a'}Q(s', a') ở mỗi bước. Với mô hình ngôn ngữ, hành động là chọn token tiếp theo trong từ vựng hàng chục nghìn token, và trạng thái là toàn bộ văn bản đã sinh, nên số trạng thái là vô hạn. Quan trọng hơn, mô hình ngôn ngữ đã là một chính sách πθ(token∣ngữ cảnh)\pi_\theta(\text{token} \mid \text{ngữ cảnh}). Gradient chính sách (policy gradient) tối ưu trực tiếp tham số của chính sách theo phần thưởng kỳ vọng, không cần học hàm giá trị trước.

13.2Định lý gradient chính sách#

Xét trường hợp một bước: chính sách πθ\pi_\theta chọn hành động aa, nhận phần thưởng R(a)R(a). Mục tiêu là cực đại J(θ)=Ea∼πθ[R(a)]J(\theta) = \mathbb{E}_{a \sim \pi_\theta}[R(a)]. Khó khăn là aa được lấy mẫu từ chính πθ\pi_\theta, nên không lấy đạo hàm bên trong kỳ vọng như thường được. Đồng nhất thức sau, gọi là thủ thuật log (log-derivative trick), giải quyết điều đó:

∇θπθ(a)=πθ(a) ∇θlog⁡πθ(a).\nabla_\theta\pi_\theta(a) = \pi_\theta(a)\,\nabla_\theta\log\pi_\theta(a).

Định lý 13.1 (Gradient chính sách)

∇θJ(θ)=Ea∼πθ[R(a) ∇θlog⁡πθ(a)].\nabla_\theta J(\theta) = \mathbb{E}_{a \sim \pi_\theta}\big[R(a)\,\nabla_\theta\log\pi_\theta(a)\big].

Chứng minh

∇θJ=∑aR(a) ∇θπθ(a)=∑aπθ(a) R(a) ∇θlog⁡πθ(a)\nabla_\theta J = \sum_a R(a)\,\nabla_\theta\pi_\theta(a) = \sum_a \pi_\theta(a)\,R(a)\,\nabla_\theta\log\pi_\theta(a), và tổng cuối chính là kỳ vọng theo πθ\pi_\theta.

Vế phải là một kỳ vọng, nên ước lượng được bằng cách lấy mẫu: rút nn hành động từ πθ\pi_\theta, tính trung bình của R(ai)∇θlog⁡πθ(ai)R(a_i)\nabla_\theta\log\pi_\theta(a_i). Đây là thuật toán REINFORCE (Williams, 1992). Về mặt trực giác, REINFORCE lấy mẫu một hành động, xem phần thưởng, rồi tăng log xác suất của hành động đó theo tỉ lệ với phần thưởng. Với bài toán nhiều bước, R(a)R(a) được thay bằng tổng phần thưởng từ bước đó trở đi, và công thức giữ nguyên dạng (Sutton và cộng sự, 2000).

13.3Phương sai và đường nền#

Ước lượng của REINFORCE không chệch nhưng có phương sai lớn. Lý do thấy được từ công thức: nếu mọi phần thưởng đều dương, ví dụ nằm trong khoảng [1,3][1, 3], thì mỗi mẫu đều đẩy log xác suất của hành động được chọn lên, kể cả hành động tệ. Việc học chỉ đến từ chênh lệch về độ mạnh của các lần đẩy, và chênh lệch đó bị nhiễu lấy mẫu che lấp.

Cách khắc phục là trừ một đường nền bb (baseline):

∇θJ=Ea∼πθ[(R(a)−b) ∇θlog⁡πθ(a)].\nabla_\theta J = \mathbb{E}_{a \sim \pi_\theta}\big[(R(a) - b)\,\nabla_\theta\log\pi_\theta(a)\big].

Phép trừ không làm thay đổi kỳ vọng, với mọi hằng số bb:

E[b ∇θlog⁡πθ(a)]=b∑aπθ(a) ∇θlog⁡πθ(a)=b∑a∇θπθ(a)=b ∇θ∑aπθ(a)=b ∇θ1=0.\begin{aligned} \mathbb{E}\big[b\,\nabla_\theta\log\pi_\theta(a)\big] &= b\sum_a\pi_\theta(a)\,\nabla_\theta\log\pi_\theta(a) = b\sum_a\nabla_\theta\pi_\theta(a) \\ &= b\,\nabla_\theta\sum_a\pi_\theta(a) = b\,\nabla_\theta 1 = 0. \end{aligned}

Tổng xác suất luôn bằng 1, nên đạo hàm của nó bằng 0. Với đường nền gần phần thưởng trung bình, hành động tốt hơn trung bình được đẩy lên, hành động kém hơn bị đẩy xuống, và phương sai giảm.

Hai hành động đủ để thấy điều này bằng số. Chính sách là softmax của θ=(0,0)\theta = (0, 0), tức chọn mỗi hành động với xác suất 0,5, và phần thưởng là 1 cho hành động thứ nhất, 3 cho hành động thứ hai. Với softmax, ∇θlog⁡πθ(a)=ea−π\nabla_\theta\log\pi_\theta(a) = e_a - \pi, nên lấy được hành động thứ nhất cho (0,5; −0,5)(0{,}5;\ -0{,}5) và lấy được hành động thứ hai cho (−0,5; 0,5)(-0{,}5;\ 0{,}5). Không có đường nền, ước lượng từ một mẫu là 1⋅(0,5; −0,5)1 \cdot (0{,}5;\ -0{,}5) hoặc 3⋅(−0,5; 0,5)=(−1,5; 1,5)3 \cdot (-0{,}5;\ 0{,}5) = (-1{,}5;\ 1{,}5). Trung bình của chúng là (−0,5; 0,5)(-0{,}5;\ 0{,}5), đúng hướng, nhưng mẫu thứ nhất chỉ sai hướng: nó đẩy hành động kém lên. Với đường nền b=2b = 2, hai mẫu cho (1−2)(0,5; −0,5)(1 - 2)(0{,}5;\ -0{,}5) và (3−2)(−0,5; 0,5)(3 - 2)(-0{,}5;\ 0{,}5), cả hai đều đúng bằng (−0,5; 0,5)(-0{,}5;\ 0{,}5). Kỳ vọng giữ nguyên, còn phương sai trong ví dụ này giảm về 0.

13.4Thí nghiệm về tác dụng của đường nền#

Bài toán một bước có 6 hành động với phần thưởng trung bình (1,0; 1,2; 0,9; 1,1; 3,0; 1,05)(1{,}0;\ 1{,}2;\ 0{,}9;\ 1{,}1;\ 3{,}0;\ 1{,}05), cộng nhiễu Gauss độ lệch chuẩn 0,25; hành động thứ năm tốt hơn hẳn, các hành động còn lại xấp xỉ nhau. Chính sách hiện tại là phân phối đều, tham số hoá bằng softmax. Với mỗi số mẫu nn, thí nghiệm lặp lại phép ước lượng gradient 400 lần và đo độ lệch chuẩn của ước lượng (trung bình trên 6 thành phần), không có và có đường nền. Đường nền là phần thưởng trung bình của chính nn mẫu đó.

Số mẫu nn Độ lệch chuẩn, không đường nền Có đường nền Tỉ số
16 0,13674 0,05776 2,37
64 0,06745 0,02944 2,29
256 0,03376 0,01449 2,33
1 024 0,01632 0,00718 2,27

Đường nền giảm độ lệch chuẩn khoảng 2,3 lần ở mọi cỡ mẫu. Vì số mẫu cần để đạt một độ chính xác tỉ lệ với phương sai, tức bình phương độ lệch chuẩn, điều này tương đương cần ít mẫu hơn khoảng 5,3 lần.

Trung bình của ước lượng không đổi (với 4 096 mẫu, lấy trung bình 200 lần):

Văn bản
gradient TB khong nen : [-0.06274 -0.03002 -0.08005 -0.04598  0.27275 -0.05396]
gradient TB co nen    : [-0.06272 -0.02927 -0.07917 -0.04593  0.2716  -0.05451]
lech lon nhat: 1.15e-03

Hai vector trùng nhau trong phạm vi sai số lấy mẫu, và cả hai đều chỉ đúng hướng: chỉ thành phần của hành động thứ năm dương. Còn một chi tiết kỹ thuật: dùng trung bình của chính các mẫu trong lô làm đường nền tạo ra một độ chệch cỡ 1/n1/n, vì đường nền phụ thuộc vào mẫu đang được dùng. Với nn lớn, độ chệch này không đáng kể, và có thể loại bỏ hoàn toàn bằng cách tính đường nền cho mỗi mẫu từ các mẫu còn lại.

13.5Hàm lợi thế và PPO#

Trong bài toán nhiều bước, đường nền tốt thường phụ thuộc trạng thái: b(s)=V(s)b(s) = V(s). Khi đó đại lượng nhân với ∇θlog⁡πθ\nabla_\theta\log\pi_\theta là

A(s,a)=Q(s,a)−V(s),A(s, a) = Q(s, a) - V(s),

gọi là hàm lợi thế (advantage function): hành động này tốt hơn mức trung bình tại trạng thái này bao nhiêu. Các thuật toán actor–critic học đồng thời chính sách (actor) và một ước lượng của VV (critic) để tính lợi thế; GAE (Schulman và cộng sự, 2016) là cách ước lượng lợi thế thông dụng.

Thuật toán được dùng trong RLHF là PPO (proximal policy optimization; Schulman và cộng sự, 2017). Ngoài lợi thế, PPO giới hạn mức thay đổi của chính sách trong mỗi lần cập nhật: nó cắt tỉ số πθ(a∣s)/πθcu˜(a∣s)\pi_\theta(a \mid s)/\pi_{\theta_{\text{cũ}}}(a \mid s) trong khoảng [1−ϵ,1+ϵ][1 - \epsilon, 1 + \epsilon], thường với ϵ=0,2\epsilon = 0{,}2, để một bước cập nhật lớn không làm chính sách thay đổi quá nhiều dựa trên những ước lượng lợi thế nhiễu. Ý tưởng này tương tự lý do tốc độ học khi tinh chỉnh phải nhỏ (Mục 6.4).

13.6Tóm tắt#

Gradient chính sách tối ưu trực tiếp phần thưởng kỳ vọng theo tham số của chính sách. Nhờ thủ thuật log, gradient viết được thành một kỳ vọng, E[R(a) ∇θlog⁡πθ(a)]\mathbb{E}\big[R(a)\,\nabla_\theta\log\pi_\theta(a)\big], và ước lượng được bằng lấy mẫu; đó là REINFORCE. Ước lượng này không chệch nhưng phương sai lớn. Trừ một đường nền không làm đổi kỳ vọng, vì tổng xác suất luôn bằng 1, và trong thí nghiệm giảm độ lệch chuẩn khoảng 2,3 lần, tương đương cần ít mẫu hơn khoảng 5,3 lần. Trong bài toán nhiều bước, đường nền tốt là V(s)V(s), cho hàm lợi thế A(s,a)A(s, a); PPO dùng lợi thế và cắt tỉ số xác suất để mỗi lần cập nhật không đổi chính sách quá nhiều.

Học tăng cường cần một phần thưởng. Với một trợ lý ngôn ngữ, không có sẵn hàm nào chấm được một câu trả lời là tốt hay tệ. Chương 14 trình bày cách học hàm thưởng đó từ những so sánh của con người.


Tự kiểm tra

3 câu. Chọn đáp án để xem ngay lời giải thích.

  1. 1Vì sao trừ một đường nền không làm lệch ước lượng gradient chính sách?

  2. 2Giảm độ lệch chuẩn của ước lượng gradient 2,3 lần tương đương cần ít mẫu hơn bao nhiêu lần?

  3. 3Vì sao phần thưởng luôn dương làm ước lượng REINFORCE nhiễu?

Đã trả lời 0/3