Softmax_cross_entropy_with_logits khác với softmax_cross_entropy_with_logits_v2 như thế nào?


41

Cụ thể, tôi cho rằng tôi tự hỏi về tuyên bố này:

Các phiên bản chính trong tương lai của TensorFlow sẽ cho phép độ dốc chảy vào đầu vào nhãn trên backprop theo mặc định.

Mà được hiển thị khi tôi sử dụng tf.nn.softmax_cross_entropy_with_logits. Trong cùng một thông điệp, nó thúc giục tôi phải xem xét tf.nn.softmax_cross_entropy_with_logits_v2. Tôi đã xem qua các tài liệu nhưng nó chỉ nói rằng tf.nn.softmax_cross_entropy_with_logits_v2:

Backpropagation sẽ xảy ra vào cả bản ghi và nhãn. Để không cho phép truyền ngược vào nhãn, chuyển các tenxơ nhãn qua stop_gradents trước khi đưa nó vào hàm này.

trái ngược với, tf.nn.softmax_cross_entropy_with_logits's:

Backpropagation sẽ chỉ xảy ra vào các bản ghi.

Là người rất mới đối với chủ đề (Tôi đang cố gắng tìm hiểu một số hướng dẫn cơ bản) những tuyên bố đó không rõ ràng lắm. Tôi có một sự hiểu biết nông cạn về backpropagation nhưng tuyên bố trước đó thực sự có ý nghĩa gì? Làm thế nào là backpropagation và các nhãn được kết nối? Và làm thế nào điều này thay đổi cách tôi làm việc tf.nn.softmax_cross_entropy_with_logits_v2trái ngược với bản gốc?

Câu trả lời:


56

Bạn có mọi lý do để bị nhầm lẫn, bởi vì trong việc học có giám sát, người ta không cần phải sao lưu vào nhãn. Chúng được coi là sự thật mặt đất cố định và chỉ có các trọng số cần được điều chỉnh để phù hợp với chúng.

Nhưng trong một số trường hợp, các nhãn có thể đến từ một nguồn khác biệt, một mạng khác. Một ví dụ có thể là học tập nghịch cảnh . Trong trường hợp này, cả hai mạng có thể được hưởng lợi từ tín hiệu lỗi. Đó là lý do tại sao tf.nn.softmax_cross_entropy_with_logits_v2được giới thiệu . Lưu ý rằng khi các nhãn là trình giữ chỗ (cũng là điển hình), sẽ không có sự khác biệt nếu độ dốc thông qua dòng chảy hay không, bởi vì không có biến để áp dụng độ dốc.


5
Ah tôi hiểu rồi, tôi vẫn chưa vượt ra ngoài việc học có giám sát, rất nhiều điều để học. Để tôi hiểu bạn một cách chính xác, về cơ bản miễn là tôi không chỉ ra rằng các nhãn của tôi có thể được tối ưu hóa (ei lưu trữ chúng dưới dạng tf. Biến đổi) chúng sẽ không bị chạm và softmax_..._with_logits_v2sẽ hoạt động như softmax_with_logitsthế nào? (Hoặc tôi có thể sử dụng tf.stop_gradient trên biến nhãn.)
Christian Eriksson

3
Vâng đúng vậy.
Maxim

2
Rất rõ ràng và giáo dục, cảm ơn bạn rất nhiều!
Haitao Du
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.