Sự khác biệt của Keras giữa val_loss và mất mát trong quá trình đào tạo


17

Sự khác biệt giữa val_losslosstrong quá trình đào tạo ở Keras là gì?

Ví dụ

Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032  

Trên một số trang web tôi đọc rằng khi xác thực, bỏ học không hoạt động.


Những gì bạn đọc về bỏ học có lẽ là, khi bỏ học được sử dụng (nghĩa dropoutlà không None), bỏ học chỉ được áp dụng trong quá trình đào tạo (nghĩa là không bỏ học nào được áp dụng trong quá trình xác nhận). Như vậy, một trong những khác biệt giữa mất xác thực ( val_loss) và mất đào tạo ( loss) là khi sử dụng bỏ học, mất xác thực có thể thấp hơn tổn thất đào tạo (thường không được dự kiến ​​trong trường hợp bỏ học không được sử dụng).
Psi

Câu trả lời:


15

val_losslà giá trị của hàm chi phí cho dữ liệu xác thực chéo của bạn và mất mát là giá trị của hàm chi phí cho dữ liệu đào tạo của bạn. Trên dữ liệu xác nhận, các nơ-ron sử dụng thả ra không làm rơi các nơ-ron ngẫu nhiên. Lý do là trong quá trình đào tạo, chúng tôi sử dụng bỏ học để thêm một số tiếng ồn để tránh phù hợp quá mức. Trong quá trình tính toán xác nhận chéo, chúng tôi đang trong giai đoạn thu hồi chứ không phải trong giai đoạn đào tạo. Chúng tôi sử dụng tất cả các khả năng của mạng.

Nhờ một trong những người bạn thân yêu của chúng tôi, tôi trích dẫn và giải thích các nội dung từ đây hữu ích.

validation_split: Float giữa 0 và 1. Phần dữ liệu đào tạo được sử dụng làm dữ liệu xác nhận. Mô hình sẽ phân tách phần dữ liệu đào tạo này, sẽ không đào tạo về nó và sẽ đánh giá sự mất mát và bất kỳ số liệu mô hình nào trên dữ liệu này vào cuối mỗi kỷ nguyên. Dữ liệu xác nhận được chọn từ các mẫu cuối cùng trong dữ liệu xy được cung cấp trước khi xáo trộn.

validation_data: tuple (x_val, y_val) hoặc tuple (x_val, y_val, val_sample_weights) để đánh giá tổn thất và bất kỳ số liệu mô hình nào ở cuối mỗi kỷ nguyên. Mô hình sẽ không được đào tạo về dữ liệu này. Điều này sẽ ghi đè xác thực_split.

Bạn có thể thấy

fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)

fitphương thức được sử dụng trong Kerascó một tham số có tên là verify_split, xác định tỷ lệ phần trăm dữ liệu được sử dụng để đánh giá mô hình được tạo sau mỗi epoch. Sau khi đánh giá mô hình bằng cách sử dụng lượng dữ liệu này, điều đó sẽ được báo cáo val_lossnếu bạn đặt dài dòng 1; hơn nữa, như tài liệu chỉ định rõ ràng, bạn có thể sử dụng validation_datahoặc validation_split. Dữ liệu xác thực chéo được sử dụng để điều tra xem mô hình của bạn có phù hợp với dữ liệu hay không. Đây là những gì chúng ta có thể hiểu liệu mô hình của chúng ta có khả năng khái quát hóa hay không.

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.