28.04.2020 Views

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 đó.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!