Vector hóa của mất Entropy chéo


9

Tôi đang xử lý một vấn đề liên quan đến việc tìm độ dốc của hàm mất entropy chéo, ghi tham số trong đó:θ

CE(θ)=iyilog(y^i)

Trong đó, và là một đầu vào vector.y^i=softmax(θi)θi

Ngoài ra, là một vectơ nóng của lớp đúng và là dự đoán cho mỗi lớp sử dụng hàm softmax.yyy^

Do đó, ví dụ: hãy để vày i = ( 0,10 0,20 0,10 0,40 0,20 )yi=(00010)y^i=(0.100.200.100.400.20)

Để tìm đạo hàm riêngCE(θ)θik=yiky^ik

Lấy từ đó cho mỗi , độ dốc từng phần riêng lẻ sẽ là iCE(θ)θi=(yi1y^i1yi2y^i2yi3y^i3yi4y^i4yi5y^i5)

Nhưng điều này không đúng vì độ dốc thực sự phải là 0 cho tất cả các hàng khác ngoại trừ hàng thứ 4 vì chúng ta đã sử dụng thuộc tính của một vectơ nóng. Vì vậy, độ dốc thực tế phải là CE(θ)θi=(000yi4y^i40)

Và do đó, độ dốc cho tất cả phải là C E ( θ )iCE(θ)θ=(000yi4y^i4000yi3y^i300...0yi2y^i2000)

Nhưng điều này không bằng . Vì vậy, chúng ta không nên gọi độ dốc của hàm entropy chéo là sự khác biệt vectơ giữa dự đoán và bản gốc.y^y

Ai đó có thể làm rõ về điều này?

CẬP NHẬT: Đã sửa lỗi phái sinh của tôi

θ=(θ1θ2θ3θ4θ5)

CE(θ)=iyilog(y^i)

Trong đó, và là một đầu vào vector.θiy^i=softmax(θi)θi

Ngoài ra, là một vectơ nóng của lớp đúng và là dự đoán cho mỗi lớp sử dụng hàm softmax.yyy^

CE(θ)θi=(log(y^k))

CẬP NHẬT: Đã xóa chỉ mục khỏi vàyyy^ Do đó, ví dụ: hãy để vày = ( 0,10 0,20 0,10 0,40 0,20 )y=(00010)y^=(0.100.200.100.400.20)

CẬP NHẬT: Đã sửa lỗi Tôi đang dùng wrt phái sinh nó chỉ nên là wrt . θ iθikθi Để tìm đạo hàm riêngCE(θ)θi=yky^k

Lấy từ đó cho mỗi , độ dốc từng phần riêng lẻ sẽ là C E ( θ )iCE(θ)θ=(y1y^1y2y^2y3y^3y4y^4y5y^5)

Điều trên xảy ra vì Và, Lấy đạo hàm riêng của wrt chúng tôi nhận được:CE(θ)=(yklog(y^k))CE(y^k=log(softmax(θk))=θklog(jexp(θj))θ iCE(θ)θi

CE(θ)θi=(θkθisoftmax(θi))

BƯỚC CHÍNH: Thực tế là và làm cho vectơ hoàn thành bằng chứng. q kθkθi=0,ikCE(θ)θkθi=1,i=kCE(θ)θ=y^y

Câu trả lời:


2

Không, độ dốc không nên bằng 0 đối với các thành phần khác. Nếu dự đoán của bạn là đối với một số và quan sát của bạn , thì bạn đã dự đoán quá nhiều bởi .i,jyij=0 yy^iji,jyij=0y^ij


Nhưng sẽ luôn là giá trị softmax và quan sát thực tế. Và bởi vì chúng tôi sử dụng thực tế là một vectơ nóng, do đó, đạo hàm riêng , đã cho Tôi có đang mắc lỗi trong phân biệt không? yijyiCE(θ)y^ijyijyiyikCE(θ)θij=0,jkyik=1
Shubhanshu Mishra

1
Cảm ơn bạn đã nhập @ neil-g Tôi đã có thể sửa lỗi dẫn xuất của tôi.
Shubhanshu Mishra

15

Dưới đây là nội dung tương tự như chỉnh sửa, nhưng ở định dạng từng bước rõ ràng hơn (đối với tôi):

Chúng tôi đang cố gắng chứng minh rằng:

CEθ=y^y

được

CE(θ)=iyilog(y^i)

y^i=exp(θi)jexp(θj)

Chúng tôi biết rằng cho và , vì vậy:yj=0jkyk=1

CE(θ)= log(y^k)

= log(exp(θk)jexp(θj))

= θk+log(jexp(θj))

CEθ=θkθ+θlog(jexp(θj))

Sử dụng thực tế là và cho , để cho thấy rằng.θkθk=1θkθq=0qk

θkθ=y

Đối với phần thứ hai, chúng tôi viết ra đạo hàm cho từng phần tử riêng lẻ của và sử dụng quy tắc chuỗi để nhận:θ

θilog(jexp(θj))=exp(θi)jexp(θj)=y^i

Vì thế,

CEθ=θlog(jexp(θj))θkθ=y^ - y

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.