Đạo hàm của Softmax liên quan đến trọng lượng


8

Tôi mới học sâu và đang cố gắng tính đạo hàm của hàm sau đối với ma trận w:

p(a)=ewaxΣdewdx

Sử dụng quy tắc thương, tôi nhận được:

p(a)w=xewaxΣdewdxewaxΣdxewdx[Σdewdx]2=0

Tôi tin rằng tôi đã làm sai điều gì đó, vì chức năng softmax thường được sử dụng làm chức năng kích hoạt trong học tập sâu (và do đó không thể luôn có đạo hàm là 0). Tôi đã xem qua các câu hỏi tương tự , nhưng chúng dường như che đậy phần tính toán này.

Tôi đánh giá cao bất kỳ con trỏ theo hướng đúng.


1
Ký hiệu của bạn không thực sự hoạt động, có lẽ vì bạn chưa giải thích điều gì "x"là hoặc kích thước của wcó thể là. Đó dường như là cốt lõi của vấn đề của bạn, bởi vì bạn xuất hiện để điều trịxnhư một con số, nhưng điều đó không có ý nghĩa.
whuber

Câu trả lời:


13

Lớp ẩn cuối cùng tạo ra các giá trị đầu ra tạo thành một vectơ x=x. Lớp tế bào thần kinh đầu ra có nghĩa là để phân loại giữaK=1,,k các danh mục có chức năng kích hoạt SoftMax gán xác suất có điều kiện (đã cho x) cho mỗi người KThể loại. Trong mỗi nút trong lớp cuối cùng (hoặc ouput), các giá trị được kích hoạt trước (giá trị logit) sẽ bao gồm các sản phẩm vô hướngwjx, Ở đâu wj{w1,w2,Giáo dục,wk}. Nói cách khác, mỗi loại,k sẽ có một vectơ trọng số khác nhau chỉ vào nó, xác định sự đóng góp của từng phần tử trong đầu ra của lớp trước (bao gồm cả độ lệch), được gói gọn trong x. Tuy nhiên, việc kích hoạt lớp cuối cùng này sẽ không diễn ra yếu tố khôn ngoan (ví dụ như có chức năng sigmoid trong mỗi nơron), mà thông qua ứng dụng hàm SoftMax, sẽ ánh xạ một vectơ trongRk đến một vectơ Kcác phần tử trong [0,1]. Đây là một NN trang điểm để phân loại màu sắc:

nhập mô tả hình ảnh ở đây

Xác định softmax như

σ(j)= =điểm kinh nghiệm(wjx)Σk= =1Kđiểm kinh nghiệm(wkx)= =điểm kinh nghiệm(zj)Σk= =1Kđiểm kinh nghiệm(zk)

Chúng tôi muốn có được đạo hàm riêng đối với một vectơ trọng số (wTôi), nhưng trước tiên chúng ta có thể lấy đạo hàm của σ(j) đối với logit, tức là zTôi= =wTôix:

(wTôix)σ(j)= =(wTôix)điểm kinh nghiệm(wjx)Σk= =1Kđiểm kinh nghiệm(wkx)= =*(wTôix)điểm kinh nghiệm(wjx)Σk= =1Kđiểm kinh nghiệm(wkx)-điểm kinh nghiệm(wjx)(Σk= =1Kđiểm kinh nghiệm(wkx))2(wTôix)Σk= =1Kđiểm kinh nghiệm(wkx)= =δTôijđiểm kinh nghiệm(wjx)Σk= =1Kđiểm kinh nghiệm(wkx)-điểm kinh nghiệm(wjx)Σk= =1Kđiểm kinh nghiệm(wkx)điểm kinh nghiệm(wTôix)Σk= =1Kđiểm kinh nghiệm(wkx)= =σ(j)(δTôij-σ(Tôi))

*- quy tắc thương


Cảm ơn và (+1) cho Yuntai Kyong vì đã chỉ ra rằng có một chỉ số bị lãng quên trong phiên bản trước của bài đăng và những thay đổi trong mẫu số của softmax đã bị loại bỏ khỏi quy tắc chuỗi sau ...

Theo quy tắc chuỗi,

wTôiσ(j)= =Σk= =1K(wkx)σ(j)wTôiwkx= =Σk= =1K(wkx)σ(j)δTôikx= =Σk= =1Kσ(j)(δkj-σ(k))δTôikx

Kết hợp kết quả này với phương trình trước:

wTôiσ(j)= =σ(j)(δTôij-σ(Tôi))x

1. Con số đẹp nhưng giải thích là khó hiểu. "Lớp ẩn cuối cùng tạo ra các giá trị đầu ra tạo thành một vectơ x⃗ = x." Nhưng x đầu vào chứ không phải đầu ra? 2. "việc kích hoạt lớp cuối cùng này sẽ không diễn ra yếu tố khôn ngoan": điều này rất hữu ích nhưng một số hiểu biết sâu sắc về việc sử dụng hàm số mũ sẽ hữu ích.
coder.in.me

8

Tôi đã có một kết quả khác. Cũng thếσ(j) phụ thuộc wTôi bên trong mẫu số của softmax, vì vậy không chắc kết quả của Antoni là chính xác.

wTôiσ(j)= =Σk(wkx)σ(j)wTôiwkx= =Σk(wkx)σ(j)δTôikx= =Σkσ(j)(δjk-σ(k))δTôikx= =σ(j)(δTôij-σ(Tôi))x
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.