Mạng lưới thần kinh - Mối tương quan mất mát và chính xác


11

Tôi hơi bối rối bởi sự cùng tồn tại của các số liệu Mất mát và Độ chính xác trong Mạng lưới thần kinh. Cả hai đều được cho là thể hiện "tính chính xác" của việc so sánh và , phải không? Vì vậy, không phải là ứng dụng của hai dự phòng trong thời đại đào tạo? Hơn nữa, tại sao chúng không tương quan?yy^

Câu trả lời:


9

Nhật ký mất có tài sản tốt đẹp đó là một chức năng khác biệt. Độ chính xác có thể quan trọng hơn và chắc chắn dễ hiểu hơn nhưng không thể sử dụng trực tiếp trong quá trình đào tạo mạng do thuật toán backpropagation yêu cầu chức năng mất phải khác biệt. Khi mất mát ưa thích của bạn không được tối ưu hóa trực tiếp (như độ chính xác), bạn sử dụng chức năng mất hoạt động tương tự như proxy cho số liệu thực. Trong trường hợp phân loại nhị phân, bạn sẽ sử dụng một sigmoid ở cuối và mất nhật ký để có độ chính xác gần đúng. Chúng có mối tương quan cao.


6

Mất mát là tổng quát hơn chính xác. Trong phân loại, bạn có thể đi đến độ chính xác 100%, trong đó tất cả các nhãn được dự đoán chính xác. Nhưng những gì về hồi quy hoặc dự báo? Không có định nghĩa về 0% và 100%

Mất có thể được tối ưu hóa với các phương pháp khác nhau. Trong lớp Phương thức số, bạn đã học cách giải một hàm bằng cách tối ưu hóa hàm đó (đó là tối thiểu hóa ) bằng nhiều phương pháp khác nhau như phương pháp của Newton, phương pháp chia đôi, v.v.|yhaty|


0

Vâng, cả hai đều đo lường tính chính xác của y và y_hat và vâng, chúng thường tương quan với nhau. Đôi khi chức năng mất có thể không chính xác nhưng bạn vẫn quan tâm đến việc đo độ chính xác mặc dù bạn không tối ưu hóa trực tiếp. Ví dụ về TensorFlow MNIST của Google giảm thiểu / tối ưu hóa mất entropy chéo nhưng hiển thị độ chính xác cho người dùng khi báo cáo kết quả và điều này hoàn toàn tốt.

Đôi khi bạn không muốn tối ưu hóa độ chính xác trực tiếp. Ví dụ: nếu bạn có sự mất cân bằng lớp nghiêm trọng, mô hình của bạn sẽ tối đa hóa độ chính xác bằng cách luôn luôn chọn lớp phổ biến nhất, nhưng đây sẽ không phải là một mô hình hữu ích. Trong trường hợp này, entropy / log-loss sẽ là một hàm mất tốt hơn để tối ưu hóa.


7
Quan trọng hơn, độ chính xác không phải là một chức năng khác biệt, do đó bạn không thể sao lưu thông qua nó.
Jan van der Vegt

@JanvanderVegt Vâng, đó là một điểm tuyệt vời
Ryan Zotti

Tôi đã học được rằng trong Keras tôi có thể đặt số liệu đánh giá "tùy chỉnh" (theo tùy chỉnh trong trường hợp này, tôi có nghĩa là không có triển khai tích hợp nào trong Keras, như AUC hoặc F1-Score) trong chức năng biên dịch. Tôi cho rằng trong trường hợp này, số liệu "tùy chỉnh" này sẽ được sử dụng / hiển thị thay vì Độ chính xác ở mọi nơi nơi show_accuracytham số được đặt thành True (như khi khớp hoặc trong đánh giá). Đúng không?
Hendrik

1
@Hendrik vâng, bạn có thể, chỉ cần tạo một def your_own_metric(y_true, y_pred)chức năng và chuyển nó đếnmodel.compile(..., metrics=[your_own_metric])
rilut
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.