Tại sao phải chuẩn hóa dữ liệu test sử dụng giá trị trung bình và độ lệch chuẩn của tập huấn luyện mà không phải của chính tập test?

  1. Trí tuệ nhân tạo

Mình có đọc được đoạn này trong khóa học của Stanford:

  "An important point to make about the preprocessing is that any preprocessing statistics (e.g. the data mean) must only be computed on the training data, and then applied to the validation / test data."

  Link:

http://cs231n.github.io/neural-networks-2/

Tại sao phải chuẩn hóa dữ liệu test sử dụng giá trị trung bình và độ lệch chuẩn của tập huấn luyện mà không phải của chính tập test?

Từ khóa: 

trí tuệ nhân tạo

Lý do là Trong các mô hình học máy, bạn có 2 tập: Tập mẫu hay là tập quan sát được (Samples hay Observations) và Tập phổ biến (Population). Bạn chia làm 3 tập Train, Validation,Test. Như vậy, tập Train được coi là Quan sát được, Validation và Test Set được gọi là Population.

Trong toán thống kê, các số liệu thống kê sẽ được tính trên từng tập để mang tính khách quan (các nguyên lý , giả định của toán thống kê cũng dựa trên lập luận này). Tập Train là tập mình đã biết trước giá trị Mean, tập Test và Validation là chưa rõ, cần đi tìm.

Để chuẩn hóa, bạn chỉ cần tính Mean của tập Train, dùng giá trị Mean đó, được trừ trong các giá trị của tập chưa rõ (Ở đây là Test và Validation).

Mục tiêu là với Mẫu (Train Set) mình có, thì mẫu đó có phản ánh đúng cái Population hay không? Vì vậy, chỉ được phép lấy Mean trên tập Train.

Trả lời

Lý do là Trong các mô hình học máy, bạn có 2 tập: Tập mẫu hay là tập quan sát được (Samples hay Observations) và Tập phổ biến (Population). Bạn chia làm 3 tập Train, Validation,Test. Như vậy, tập Train được coi là Quan sát được, Validation và Test Set được gọi là Population.

Trong toán thống kê, các số liệu thống kê sẽ được tính trên từng tập để mang tính khách quan (các nguyên lý , giả định của toán thống kê cũng dựa trên lập luận này). Tập Train là tập mình đã biết trước giá trị Mean, tập Test và Validation là chưa rõ, cần đi tìm.

Để chuẩn hóa, bạn chỉ cần tính Mean của tập Train, dùng giá trị Mean đó, được trừ trong các giá trị của tập chưa rõ (Ở đây là Test và Validation).

Mục tiêu là với Mẫu (Train Set) mình có, thì mẫu đó có phản ánh đúng cái Population hay không? Vì vậy, chỉ được phép lấy Mean trên tập Train.

Theo kinh nghiệm ít ỏi của mình thì: Chuẩn hóa normalize dữ liệu là một phương pháp để giảm thiểu những thứ không mong muốn như nhiễu, Như phương pháp chuẩn hóa trung bình là phương pháp mà chuyển dữ liệu về một hệ tọa độ mới trong đó gốc tọa độ là điểm trung bình, ở trong hệ tọa độ mới này một phần nhiễu nền sẽ bị loại bỏ. Vậy: Khi áp dụng chuẩn hóa trung bình vào tập dữ liệu huấn luyện thì ta tìm được gốc tọa độ mới của tập huấn luyện và chuyển dữ liệu huấn luyện sang miền mới ít nhiễu ơn, nên mô hình sau khi huấn luyện sẽ có chất lượng tốt hơn. Nhưng nếu ta áp dụng cho tập test vậy gốc tọa độ mới sẽ là gốc của tập test, và đôi khi gốc của tập test này khác với gốc của tập huấn luyện mà ta mong muốn và do đó hiệu quả của việc giảm thiểu nhiễu không được đảm bảo.

// Hi vọng cách giải thích của mình đúng :)

Hay