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:δ(l)i
∇( l )tôi j= ∑kθ( l + 1 )k tôiδ( l + 1 )k* ( Một( l )Tôi( 1 - một( l )Tôi) ) ∗ a( l - 1 )j
Nhắc nhở về các bước trong mạng nơ-ron:
Bước 1: truyền bá (tính toán )một( l )Tôi
Bước 2a: lan truyền ngược: tính toán các lỗiδ( l )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 ) i∇( l )tôi jΘδ( l + 1 )Tôimột( l )Tôi
Bước 3: giảm độ dốc: tính toán bằng cách sử dụng gradient ∇ ( l ) i jθ( l )tôi j∇( l )tôi j
Đầu tiên, để hiểu những gì làδ( l )Tôi , những gì họ thể hiện và lý 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 j∇( l )tôi jθ( l )tôi j
Độ dốc được định nghĩa là:
∇( l )tôi j= ∂C∂θ( l )tôi j
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à:
∇( l )tôi j= θ( l + 1 )Tδ( l + 1 ). * ( Một( l )Tôi( 1 - một( l )Tôi) ) ∗ a( l - 1 )j
Để đ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 ) i∇( l )tôi jθ( l )tôi jδ( l )Tôi
δ ( L ) i
∇( l )tôi j= δ( l )Tôi* một( l - 1 )j
Với được xác định (chỉ cho chỉ số L) là:
δ( L )Tôi
δ( L )Tôi= ∂C∂z( l )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δ( l )Tôiδ( l + 1 )Tôi
δ( l )Tôi= θ( l + 1 )Tδ( l + 1 ). * ( Một( l )Tôi( 1 - một( l )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:
∇( l )tôi j= θ( l + 1 )Tδ( l + 1 ). * ( Một( l )Tôi( 1 - một( l )Tôi) ) ∗ a( l - 1 )j
MÔ PHỎNG TRICK MAGIC ĐẦU TIÊN: ∇( l )tôi j= δ( l )Tôi* một( l - 1 )j
Chúng tôi đã xác định:
∇( l )tôi j= ∂C∂θ( l )tôi j
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:
∇( l )tôi j= ∑k∂C∂z( l )k∗ ∂z( l )k∂θ( l )tôi j
Tuy nhiên, như:
z( l )k= ∑mθ( l )k m* một( l - 1 )m
Sau đó chúng ta có thể viết:
∂z( l )k∂θ( l )tôi j= ∂∂θ( l )tôi jΣmθ( l )k m* một( l - 1 )m
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:
∂z( l )k∂θ( l )tôi j= ∑m∂θ( l )k m∂θ( l )tôi j* một( l - 1 )m
với:
tôi ek , m ≠ i , j , ∂ θ( l )k m∂θ( l )tôi j* một( l - 1 )m= 0
Tôiek , m = i , j , ∂ θ( l )k m∂θ( l )tôi j* một( l - 1 )m= ∂θ( l )tôi j∂θ( l )tôi j* một( l - 1 )j= a( l - 1 )j
Sau đó, với k = i (nếu không, nó rõ ràng bằng 0):
∂z( l )Tôi∂θ( l )tôi j= ∂θ( l )tôi j∂θ( l )tôi j* một( l - 1 )j+ Σm ≠ j∂θ( l )tôi m∂θ( l )tôi j* một( l - 1 )j= a( l - 1 )j+ 0
Cuối cùng, với k = i:
∂z( l )Tôi∂θ( l )tôi j= a( l - 1 )j
Kết quả là, chúng ta có thể viết biểu thức đầu tiên của gradient :∇( l )tôi j
∇( l )tôi j= ∂C∂z( l )Tôi∗ ∂z( l )Tôi∂θ( l )tôi j
Tương đương với:
∇( l )tôi j= ∂C∂z( l )Tôi* một( l - 1 )j
Hoặc là:
∇( l )tôi j= δ( l )Tôi* một( l - 1 )j
MÔ PHỎNG CỦA TRICK MAGIC THỨ HAI : hoặc:δ( l )Tôi= θ( l + 1 )Tδ( l + 1 ). * ( Một( l )Tôi( 1 - một( l )Tôi) )
δ( l )= θ( l + 1 )Tδ( l + 1 ). * ( Một( l )( 1 - một( l )) )
Hãy nhớ rằng chúng tôi đặt ra:
δ( l )= ∂C∂z( l ) a n d δ( l )Tôi= ∂C∂z( l )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:
δ( l )Tôi= ∑k∂C∂z( l + 1 )k∂z( l + 1 )k∂z( l )Tôi
Thay thế bằng , chúng tôi có:∂C∂z( l + 1 )kδ( l + 1 )k
δ( l )Tôi= ∑kδ( l + 1 )k∂z( l + 1 )k∂z( l )Tôi
Bây giờ, hãy tập trung vào . Chúng ta có:∂z( l + 1 )k∂z( l )Tôi
z( l + 1 )k= ∑jθ( l + 1 )k j* một( l )j= ∑jθ( l + 1 )k j∗ g( z( l )j)
Sau đó, chúng tôi rút ra biểu thức này liên quan đến :z( tôi )k
∂z( l + 1 )k∂z( l )Tôi= ∂Σjθ( l )k j∗ g( z( l )j)∂z( l )Tôi
Do tính tuyến tính của đạo hàm, chúng ta có thể viết:
∂z( l + 1 )k∂z( l )Tôi= ∑jθ( l )k j∗ ∂g( z( l )j)∂z( l )Tôi
Nếu j i, thì≠∂θ( l )k j∗ g( z( l )j)∂z( l )Tôi= 0
Hậu quả là:
∂z( l + 1 )k∂z( l )Tôi= θ( l )k tôi∗ ∂g( z( l )Tôi)∂z( l )Tôi
Và sau đó:
δ( l )Tôi= ∑kδ( l + 1 )kθ( l )k tôi∗ ∂g( z( l )Tôi)∂z( l )Tôi
Khi g '(z) = g (z) (1-g (z)), chúng ta có:
δ( l )Tôi= ∑kδ( l + 1 )kθ( l )k tôi∗ g( z( l )Tôi) ( 1 - g( z( l )Tôi)
Và như , chúng tôi có:g( z( l )Tôi= a( l )Tôi
δ( l )Tôi= ∑kδ( l + 1 )kθ( l + 1 )k tôi* một( l )Tôi( 1 - một( l )Tôi)
Và cuối cùng, sử dụng ký hiệu vector hóa:
∇( l )tôi j= [ θ( l + 1 )Tδ( l + 1 )* ( Một( l )Tôi( 1 - một( l )Tôi) ) ] ∗ [ a( l - 1 )j]