Tôi nên sử dụng chức năng mất nào để chấm điểm mô hình RNN seq2seq?


10

Tôi đang làm việc thông qua bài báo Cho 2014 giới thiệu kiến ​​trúc bộ mã hóa-giải mã cho mô hình seq2seq.

Trong bài báo, dường như họ sử dụng xác suất của đầu ra cho đầu vào (hoặc đó là khả năng ghi nhật ký âm) làm hàm mất cho đầu vào có độ dài M và đầu ra y có độ dài N :xMyN

P(y1,,yN|x1,,xM)=P(y1|x1,,xm)P(y2|y1,x1,,xm)P(yN|y1,,yN1,x1,,xm)

Tuy nhiên, tôi nghĩ rằng tôi thấy một số vấn đề với việc sử dụng chức năng này như là một chức năng mất:

  1. Dường như giả sử giáo viên buộc trong quá trình đào tạo (nghĩa là thay vì sử dụng dự đoán của bộ giải mã cho một vị trí làm đầu vào cho lần lặp tiếp theo, nó sử dụng mã thông báo đã biết.
  2. Nó sẽ không phạt các chuỗi dài. Vì xác suất là từ đến N của đầu ra, nếu bộ giải mã tạo ra một chuỗi dài hơn thì mọi thứ sau N đầu tiên sẽ không ảnh hưởng đến tổn thất.1NN
  3. Nếu mô hình dự đoán mã thông báo End-of-String sớm, hàm mất vẫn yêu cầu bước - có nghĩa là chúng tôi đang tạo đầu ra dựa trên "đa tạp" của các mô hình. Điều đó có vẻ cẩu thả.N

Có bất kỳ mối quan tâm trong số này là hợp lệ? Nếu vậy, đã có bất kỳ tiến triển thành một chức năng mất nâng cao hơn?

Câu trả lời:


0

Dường như giả sử giáo viên buộc trong quá trình đào tạo (nghĩa là thay vì sử dụng dự đoán của bộ giải mã cho một vị trí làm đầu vào cho lần lặp tiếp theo, nó sử dụng mã thông báo đã biết.

logP(y1,,yN)P(y)=iP(yi|y<i)x

Do tính phổ biến của MLE và thiếu các lựa chọn thay thế tốt, tôi không nghĩ rằng giả sử "cưỡng bức giáo viên" là phản cảm.

Tuy nhiên, có những vấn đề được thừa nhận với nó - cụ thể là, mô hình gán khả năng cao cho tất cả các điểm dữ liệu, nhưng các mẫu từ mô hình không nhất thiết có khả năng trong phân phối dữ liệu thực (dẫn đến các mẫu "chất lượng thấp"). Bạn có thể quan tâm đến "Giáo sư cưỡng bức" (Lamb và cộng sự), người giảm thiểu điều này thông qua một quy trình đào tạo đối thủ mà không từ bỏ MLE.

Nó sẽ không phạt các chuỗi dài. Vì xác suất là từ 1 đến N của đầu ra, nếu bộ giải mã tạo ra một chuỗi dài hơn thì mọi thứ sau N đầu tiên sẽ không ảnh hưởng đến tổn thất.

Nếu mô hình dự đoán mã thông báo End-of-String sớm, hàm mất vẫn yêu cầu N bước - có nghĩa là chúng tôi đang tạo đầu ra dựa trên "đa tạp" của các mô hình. Điều đó có vẻ cẩu thả.

Đây không phải là những vấn đề xảy ra trong khi đào tạo. Thay vì nghĩ về một mô hình trình tự tự động như một thủ tục để đưa ra một dự đoán, hãy nghĩ về nó như một cách để tính toán mức độ có thể xảy ra của một chuỗi đã cho. Mô hình không bao giờ dự đoán bất cứ điều gì - bạn có thể lấy mẫu chuỗi hoặc mã thông báo từ phân phối hoặc bạn có thể hỏi nó mã thông báo tiếp theo có khả năng nhất là gì - nhưng chúng khác biệt lớn so với dự đoán (và bạn không lấy mẫu trong quá trình đào tạo hoặc).

Nếu vậy, đã có bất kỳ tiến triển thành một chức năng mất nâng cao hơn?

Cũng có thể có các mục tiêu được thiết kế riêng cho từng trường hợp cụ thể cho các nhiệm vụ mô hình hóa khác nhau. Tuy nhiên, tôi muốn nói rằng MLE vẫn chiếm ưu thế - mô hình GPT2 gần đây đã đạt được hiệu suất hiện đại trên một phạm vi rộng của các nhiệm vụ mô hình hóa và hiểu ngôn ngữ tự nhiên đã được đào tạo với nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.