Sách Deep Learning cơ bản
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
90 Chương 6. Backpropagation
Viết dưới dạng ma trận
∂J
Có thể tạm viết dưới dạng chain rule là
∂W (1) = ∂J
∂A
∂J
Từ trên đã tính được
∂A (1) = (Ŷ −Y ) ∗ (W (2) ) T
Đạo hàm của hàm sigmoid dσ(x)
dx
là ∂A(1)
∂Z (1) = A(1) ∗ (1 − A (1) )
∂Z
(1).
∂W (1)
∂A(1) ∂Z(1)
∗ ∗
(1) (1)
= σ(x) ∗ (1 − σ(x)) và A (1) = σ(Z (1) ), nên trong (1) có thể hiểu
Cuối cùng, Z (1) = X ∗W (1) +b (1) nên có thể tạm hiểu ∂Z(1)
= X, nó giống như f (x) = a∗x+b =>
∂W (1)
d f
dx = a vậy.
Kết hợp tất cả lại
∂J
∂W (1) = X T ∗ (((Ŷ −Y ) ∗ (W (2) ) T ) ⊗ A (1) ⊗ (1 − A (1) ))
Thế khi nào thì dùng element-wise (⊗), khi nào dùng nhân ma trận (∗) ???
• Khi tính đạo hàm ngược lại qua bước activation thì dùng (⊗)
• Khi có phép tính nhân ma trận thì dùng (∗), nhưng đặc biệt chú ý đến kích thước ma trận và
dùng transpose nếu cần thiết. Ví dụ: ma trận X kích thước N*3, W kích thước 3*4, Z = X *
∂J
W sẽ có kích thước N*4 thì
∂W = X T ∗ ( ∂J ∂J
) và
∂Z ∂X = ( ∂J
∂Z ) ∗W T
Tương tự,
∂L
∂b (1) = sum(((Ŷ −Y ) ∗ (W (2) ) T ) ⊗ A (1) ) T
Vậy là đã tính xong hết đạo hàm của loss function với các hệ số W và bias b, giờ có thể áp
dụng gradient descent để giải bài toán.
Giờ thử tính ∂L
∂x 1
, ở bài này thì không cần vì chỉ có 1 hidden layer, nhưng nếu nhiều hơn 1
hidden layer thì bạn cần tính bước này để tính đạo hàm với các hệ số trước đó.