Làm thế nào để rút ra lỗi trong mạng nơ ron với thuật toán backpropagation?


10

Từ video này của Andrew Ng khoảng 5:00

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

Làm thế nào được và có nguồn gốc? Trong thực tế, thậm chí có nghĩa là gì? có được bằng cách so sánh với y, không có sự so sánh nào như vậy đối với đầu ra của một lớp ẩn, phải không?δ3δ2δ3δ4


Liên kết video không hoạt động. Xin vui lòng, cập nhật nó, hoặc cung cấp một liên kết đến khóa học. Cảm ơn.
MadHatter

Câu trả lời:


15

Tôi sẽ trả lời câu hỏi của bạn về , nhưng hãy nhớ rằng câu hỏi của bạn là câu hỏi phụ của câu hỏi lớn hơn, đó là lý do:δi(l)

Tôij(tôi)= =ΣkθkTôi(tôi+1)δk(tôi+1)*(mộtTôi(tôi)(1-mộtTôi(tôi)))*mộtj(tôi-1)

Nhắc nhở về các bước trong mạng nơ-ron:

  • Bước 1: truyền bá (tính toán )mộtTôi(tôi)

  • Bước 2a: lan truyền ngược: tính toán các lỗiδTôi(tôi)

  • Bước 2b: lan truyền ngược: tính toán độ dốc của J ( ) bằng cách sử dụng các lỗi và , q delta ( l + 1 ) i một ( l ) iTôij(tôi)ΘδTôi(tôi+1)mộtTôi(tôi)

  • Bước 3: giảm độ dốc: tính toán bằng cách sử dụng gradient( l ) i jθTôij(tôi)Tôij(tôi)

Đầu tiên, để hiểu những gì làδTôi(tôi) , những gì họ thể hiệnlý do tại sao Andrew NG nó nói về chúng , bạn cần phải hiểu những gì Andrew đang thực sự làm tại pointand rằng tại sao chúng tôi làm tất cả những tính toán: Ông của tính gradient của được sử dụng trong thuật toán giảm dần Gradient.( l ) i j θ ( l ) i jTôij(tôi)θTôij(tôi)

Độ dốc được định nghĩa là:

Tôij(tôi)= =CθTôij(tôi)

Vì chúng tôi không thể thực sự giải quyết trực tiếp công thức này, chúng tôi sẽ sửa đổi nó bằng cách sử dụng TWO MAGIC TRICKS để đi đến một công thức mà chúng tôi thực sự có thể tính toán. Công thức có thể sử dụng cuối cùng này là:

Tôij(tôi)= =θ(tôi+1)Tδ(tôi+1).*(mộtTôi(tôi)(1-mộtTôi(tôi)))*mộtj(tôi-1)

Để đi đến kết quả này, FIRST MAGIC TRICK là chúng ta có thể viết gradient của bằng cách sử dụng : θ ( l ) i j δ ( l ) iTôij(tôi)θTôij(tôi)δTôi(tôi)

δ ( L ) i

Tôij(tôi)= =δTôi(tôi)*mộtj(tôi-1)
Với được xác định (chỉ cho chỉ số L) là:δTôi(L)

δTôi(L)= =CzTôi(tôi)

Và sau đó, THỨ HAI bằng cách sử dụng mối quan hệ giữa và , để xác định các chỉ mục khác, δ ( l + 1 ) iδTôi(tôi)δTôi(tôi+1)

δTôi(tôi)= =θ(tôi+1)Tδ(tôi+1).*(mộtTôi(tôi)(1-mộtTôi(tôi)))

Và như tôi đã nói, cuối cùng chúng ta có thể viết một công thức mà chúng ta biết tất cả các điều khoản:

Tôij(tôi)= =θ(tôi+1)Tδ(tôi+1).*(mộtTôi(tôi)(1-mộtTôi(tôi)))*mộtj(tôi-1)

MÔ PHỎNG TRICK MAGIC ĐẦU TIÊN: Tôij(tôi)= =δTôi(tôi)*mộtj(tôi-1)

Chúng tôi đã xác định:

Tôij(tôi)= =CθTôij(tôi)

Các quy tắc Chain cho kích thước cao hơn (bạn thực sự cần đọc tài sản của sự cai trị chuỗi này) cho phép chúng ta viết:

Tôij(tôi)= =ΣkCzk(tôi)*zk(tôi)θTôij(tôi)

Tuy nhiên, như:

zk(tôi)= =Σmθkm(tôi)*mộtm(tôi-1)

Sau đó chúng ta có thể viết:

zk(tôi)θTôij(tôi)= =θTôij(tôi)Σmθkm(tôi)*mộtm(tôi-1)

Do tính tuyến tính của sự khác biệt [(u + v) '= u' + v '], chúng tôi có thể viết:

zk(tôi)θTôij(tôi)= =Σmθkm(tôi)θTôij(tôi)*mộtm(tôi-1)

với:

Tôifk,mTôi,j,  θkm(tôi)θTôij(tôi)*mộtm(tôi-1)= =0

Tôifk,m= =Tôi,j,  θkm(tôi)θTôij(tôi)*mộtm(tôi-1)= =θTôij(tôi)θTôij(tôi)*mộtj(tôi-1)= =mộtj(tôi-1)

Sau đó, với k = i (nếu không, nó rõ ràng bằng 0):

zTôi(tôi)θTôij(tôi)= =θTôij(tôi)θTôij(tôi)*mộtj(tôi-1)+ΣmjθTôim(tôi)θTôij(tôi)*mộtj(tôi-1)= =mộtj(tôi-1)+0

Cuối cùng, với k = i:

zTôi(tôi)θTôij(tôi)= =mộtj(tôi-1)

Kết quả là, chúng ta có thể viết biểu thức đầu tiên của gradient :Tôij(tôi)

Tôij(tôi)= =CzTôi(tôi)*zTôi(tôi)θTôij(tôi)

Tương đương với:

Tôij(tôi)= =CzTôi(tôi)*mộtj(tôi-1)

Hoặc là:

Tôij(tôi)= =δTôi(tôi)*mộtj(tôi-1)

MÔ PHỎNG CỦA TRICK MAGIC THỨ HAI : hoặc:δTôi(tôi)= =θ(tôi+1)Tδ(tôi+1).*(mộtTôi(tôi)(1-mộtTôi(tôi)))

δ(tôi)= =θ(tôi+1)Tδ(tôi+1).*(một(tôi)(1-một(tôi)))

Hãy nhớ rằng chúng tôi đặt ra:

δ(tôi)= =Cz(tôi)   mộtnd   δTôi(tôi)= =CzTôi(tôi)

Một lần nữa, quy tắc Chuỗi cho kích thước cao hơn cho phép chúng tôi viết:

δTôi(tôi)= =ΣkCzk(tôi+1)zk(tôi+1)zTôi(tôi)

Thay thế bằng , chúng tôi có:Czk(tôi+1)δk(tôi+1)

δTôi(tôi)= =Σkδk(tôi+1)zk(tôi+1)zTôi(tôi)

Bây giờ, hãy tập trung vào . Chúng ta có:zk(tôi+1)zTôi(tôi)

zk(tôi+1)= =Σjθkj(tôi+1)*mộtj(tôi)= =Σjθkj(tôi+1)*g(zj(tôi))

Sau đó, chúng tôi rút ra biểu thức này liên quan đến :zk(Tôi)

zk(tôi+1)zTôi(tôi)= =Σjθkj(tôi)*g(zj(tôi))zTôi(tôi)

Do tính tuyến tính của đạo hàm, chúng ta có thể viết:

zk(tôi+1)zTôi(tôi)= =Σjθkj(tôi)*g(zj(tôi))zTôi(tôi)

Nếu j i, thìθkj(tôi)*g(zj(tôi))zTôi(tôi)= =0

Hậu quả là:

zk(tôi+1)zTôi(tôi)= =θkTôi(tôi)*g(zTôi(tôi))zTôi(tôi)

Và sau đó:

δTôi(tôi)= =Σkδk(tôi+1)θkTôi(tôi)*g(zTôi(tôi))zTôi(tôi)

Khi g '(z) = g (z) (1-g (z)), chúng ta có:

δTôi(tôi)= =Σkδk(tôi+1)θkTôi(tôi)*g(zTôi(tôi))(1-g(zTôi(tôi))

Và như , chúng tôi có:g(zTôi(tôi)= =mộtTôi(tôi)

δTôi(tôi)= =Σkδk(tôi+1)θkTôi(tôi+1)*mộtTôi(tôi)(1-mộtTôi(tôi))

Và cuối cùng, sử dụng ký hiệu vector hóa:

Tôij(tôi)= =[θ(tôi+1)Tδ(tôi+1)*(mộtTôi(tôi)(1-mộtTôi(tôi)))]*[mộtj(tôi-1)]

1
Cảm ơn bạn vì câu trả lời. Tôi ủng hộ bạn !! Bạn có thể vui lòng trích dẫn các nguồn bạn đã giới thiệu để đi đến câu trả lời ... :)
Adithya Upadhya

@tmangin: Sau cuộc nói chuyện của Andrew Ng, chúng ta có là lỗi của nút j trong lớp l. Làm thế nào bạn có được định nghĩa về . δj(Tôi)δj(Tôi)= =CZj(tôi)
phuong

@phuong Trên thực tế, tôi có quyền hỏi: chỉ có chỉ số "l" cao nhất L được xác định là Trong khi các đồng bằng có chỉ số "l" thấp hơn được xác định theo công thức sau:
δTôi(L)
δTôi(L)= =CzTôi(tôi)
δTôi(tôi)= =θ(tôi+1)Tδ(tôi+1).*(mộtTôi(tôi)(1-mộtTôi(tôi)))
tmangin

3
Tôi đặc biệt khuyên bạn nên đọc ký hiệu véc tơ backprop để tính toán độ dốc.
CKM

Công thức có thể sử dụng cuối cùng của bạn không phải là những gì Andrew Ng đã có, điều này làm cho nó thực sự bực bội khi làm theo bằng chứng của bạn. Anh ta có (l) ij = θ (l) Tδ (l + 1). ∗ (a (l) i (1 − a (l) i)) ∗ a (l − 1) j, không phải (l + 1) Tδ (l + 1)
Aziz Javed

0

Tính toán này giúp. Sự khác biệt duy nhất từ ​​kết quả này với kết quả của Andrew là do định nghĩa của theta. Theo định nghĩa của Andrew, z (l + 1) = theta (l) * a (l). Trong phép tính này, z (l + 1) = theta (l + 1) * a (l). Vì vậy, thực sự không có sự khác biệt.

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.