Backpropagation với softmax và crossentropy
Trong bài trước chúng ta đã tìm hiểu về hàm softmax. Trong này chúng ta sẽ đi phân tích thuật toán backpropagation với hàm softmax và crossentropy- thuật toán được ứng dụng trong mạng Neural Network rất thành công.
Chain rule
Trước này chúng ta đã biết cách tính đạo hàm cho hàm đơn giản như:
Đối với các hàm phức hợp:
trong đó
Tổng quát: nếu có hai hàm
cũng khả vi:
và khi đó:
Ví dụ
Cross entropy
Trong bài toán multiclass classification chúng ta có giá trị thực tế
Đi xác định đạo hàm của loss theo các predicted nodes (units).
Nhớ lại bài trước, đạo hàm của softmax theo từng thành phần
với
Do đó (3) tương đương với:
Do tổng các phần tử của softmax bằng 1 hay
Kí hiệu
Có biểu thức cuối do
Chốt lại từ (4) và (5) chúng ta có:
hay
Như vậy chúng ta đã làm từng bước tính đạo hàm của loss so với weights cho output layer. Một cách tổng quát hơn.
Kết hợp lại sẽ có:
trong đó
Đi vào một ví dụ cụ thể xem thế nào.
Chúng ta sẽ đi tính đạo hàm của loss theo
Cuối cùng áp dụng chain rule cho
Đối với
Như vậy chúng ta đã cùng tìm hiểu backpropagation algorithm cho hệ số của output layer. Hy vọng các bạn tìm thấy điều gì hữu ích từ bài viết.
Tài liệu tham khảo
- https://peterroelants.github.io/posts/neural-network-implementation-part02/
- https://stats.stackexchange.com/questions/235528/backpropagation-with-softmax-cross-entropy
- https://en.wikipedia.org/wiki/Chain_rule#Higher_dimensions
- https://eli.thegreenplace.net/2016/the-softmax-function-and-its-derivative/