Thuật toán học lan truyền ngƣợc

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu mô hình ngôn ngữ dựa trên mạng nơron (Trang 33 - 35)

Chƣơng 2 : MÔ HÌNH NGÔN NGỮ MẠNG NƠRON

2.2 Mô hình ngôn ngữ mạng nơron hồi quy

2.2.1 Thuật toán học lan truyền ngƣợc

Cả kiến trúc truyền thẳng hay kiến trúc hồi quy thì mạng đƣợc huấn luyện sử dụng kỹ thuật tụt dốc gradient ngẫu nhiên trong thuật toán lan truyền ngƣợc [15]. Tuy nhiên, hiệu quả tính toán tốt nhất đạt đƣợc khi sử dụng thuật toán lan truyền ngƣợc thời gian. Theo thuật toán này thì thông tin về trạng thái của tầng ẩn đƣợc giữ lại cho lần tính toán sau.

Khi sử dụng kỹ thuật tụt dốc gradient ngẫu nhiên, ma trận trọng số của mạng đƣợc cập nhật lại sau mỗi lần tính toán. Entropy chéo đƣợc sử dụng để tính gradient vector lỗi tại đầu ra và dùng để lan truyền ngƣợc lại tầng ẩn. Trong suốt quá trình huấn luyện, dữ liệu đánh giá dùng để cập nhật lại tỉ lệ học (learning rate). Ban đầu tốc độ học α=0.1, sau mỗi lần thực hiện đánh giá lại hệ thống, nếu cần cải tiến kết quả, giảm

tốc độ học α và huấn luyện lại cho đến khi không cần cải tiến nữa. Tập dữ liệu đánh giá chỉ dùng thay đổi tốc độ học và để tính độ hỗn loạn thông tin (perlexity). Để tránh hiện tƣợng overfitting trên tập dữ liệu đánh giá thì mô hình sẽ không học các tham số khi chạy qua bộ dữ liệu này.

Các ma trận trọng số U, VW đƣợc khởi tạo giá trị ban đầu bằng một giá trị rất nhỏ (sử dụng phân bố chuẩn với kỳ vọng là 0 và phƣơng sai là 0.1). Thuật toán huấn luyện gồm các bƣớc sau:

1. Khởi gán giá trị t=0, khởi gán các giá trị cho trạng thái tầng ẩn s(t) =1

2. Tăng t = t+1

3. Gán giá trị cho tầng vào w(t) của từ wt

4. Sao chép trạng thái của tầng ẩn s(t)sang tầng vào 5. Thực hiện tính toán ở các tầng ẩn s(t) và tầng ra y(t)

6. Tính toán gradient lỗi e(t) ở tầng ra

7. Lan truyền ngƣợc lại mạng và thay đổi các trọng số 8. Nếu chƣa huấn luyện hết bộ dữ liệu, quay lại bƣớc 2. Hàm tính ƣớc lƣợng hợp lí hóa cực đại trên tập dữ liệu huấn luyện là:

𝑓 𝜆 = 𝑙𝑜𝑔𝑦𝑙𝑡 𝑇

𝑡=1

𝑡 (2.7)

trong đó t = 1..T là các từ huấn luyện đƣợc đánh nhãn, lt là từ đầu ra cho từ thứ t. Gradient của vector lỗi ở tầng ra eo(t) đƣợc tính sử dụng hàm lỗi cross-entropy:

𝑒𝑜 𝑡 = 𝑑 𝑡 − 𝑦(𝑡) (2.8)

với d(t) là vector đầu ra cần đạt đƣợc biểu diễn của từ w(t+1). Ở đây không sử dụng giá trị sai số toàn phƣơng trung bình (Mean Squared Error - MSE). Ma trận trọng số

V giữa tầng ẩn s(t) và tầng ra y(t) đƣợc cập nhật lại nhƣ sau:

𝑣𝑗𝑘 𝑡 + 1 = 𝑣𝑗𝑘 𝑡 + 𝑠𝑗(𝑡)𝑒𝑜𝑘(𝑡)𝛼 (2.9)

trong đó, α là tỉ lệ học, j là chỉ số trên tầng ẩn và k là chỉ sổ trên tầng ra, sj(t) là đầu ra của nơron thứ j trên tầng ẩn, eok(t) là gradient lỗi tại nơron thứ k ở tầng ra. Nếu sử dụng

𝑣𝑗𝑘 𝑡 + 1 = 𝑣𝑗𝑘 𝑡 + 𝑠𝑗 𝑡 𝑒𝑜𝑘 𝑡 𝛼 − 𝑣𝑗𝑘 𝑡 𝛽 (2.10)

với β là tham số regularization, thƣờng lấy giá trị β= 10-6. Regularization sử dụng để đảm bảo các giá trị trọng số gần giá trị 0. Biểu diễn ký hiệu công thức (2.10) ta có:

𝑉 𝑡 + 1 = 𝑉 𝑡 + 𝑠 𝑡 𝑒𝑜 𝑡 𝑇𝛼 − 𝑉 𝑡 𝛽 (2.11)

Sau đó tính gradient lỗi lan truyền từ tầng ra về tầng ẩn:

𝑒𝑕 𝑡 = 𝑑𝑕 𝑒𝑜 𝑡 𝑇𝑉, 𝑡 (2.12)

𝑑𝑕𝑗 𝑥, 𝑡 = 𝑥𝑠𝑗(𝑡)(1 − 𝑠𝑗 𝑡 ) (2.13)

Ma trận trọng số Ugiữa tầng vào w(t) và tầng ẩn s(t) cập nhật lại nhƣ sau:

𝑢𝑖𝑗 𝑡 + 1 = 𝑢𝑖𝑗 𝑡 + 𝑤𝑖 𝑡 𝑒𝑕𝑗 𝑡 𝛼 − 𝑢𝑖𝑗 𝑡 𝛽 (2.14)

Hay ký hiệu lại nhƣ sau:

𝑈 𝑡 + 1 = 𝑈 𝑡 + 𝑤 𝑡 𝑒𝑕 𝑡 𝛼 − 𝑈 𝑡 𝛽 (2.15)

Tại mỗi thời điểm thì chỉ có một nơron đƣợc kích hoạt tƣơng ứng với vector w(t). Theo công thức (2.14) thì các trọng số không thay đổi trên các nơron có giá trị 0. Do đó để tăng hiệu năng tính toán, chỉ cập nhật trọng số tƣơng ứng với nơron ở tầng vào. Phần trọng số hồi quy W đƣợc cập nhật:

𝑤𝑙𝑗 𝑡 + 1 = 𝑤𝑙𝑗 𝑡 + 𝑠𝑙 𝑡 − 1 𝑒𝑙𝑗 𝑡 𝛼 − 𝑙𝑙𝑗 𝑡 𝛽 (2.16)

Viết ngắn gọn lại nhƣ sau:

𝑊 𝑡 + 1 = 𝑊 𝑡 + 𝑠 𝑡 𝑒𝑕 𝑡 𝛼 − 𝑊 𝑡 𝛽 (2.17)

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu mô hình ngôn ngữ dựa trên mạng nơron (Trang 33 - 35)

Tải bản đầy đủ (PDF)

(62 trang)