Thứ Năm, 20 tháng 12, 2018

Cách tính toán đạo hàm với Graph

Trong ML, việc tính toán đạo hàm có rất nhiều ứng dụng (thuật toán Gradient Descent, thuật toán Back-propagation ...). Trong bài này ta sẽ tìm hiểu cách tính đạo hàm cho 1 hàm đơn giản.
Ví dụ ta có.
a = 5
b = 3
c = 2
và u = bc; v = a + u
J = 3v

Tôi sẽ giải thích hình trên. Ví dụ đầu tiên ta muốn tính dJ/dv.
Lúc này, với các đầu vào a b c đã biết, v = 5 + 2*3 = 11 nên J = 3*11 = 33.
Ví dụ ta tăng v 1 lượng nhỏ dv = 0.001, lúc này v' = v + dv = 11 + 0.001 = 11.001. Khi này J' = 3*v' = 3*11.001 = 33.003.
Lúc này, đạo hàm của J theo v được tính là. dJ/dv = (33.003-33)/(11.001-11) = 3.

Tiếp theo ta muốn tính dJ/da.
dJ/da = (dJ/dv)*(dv/da) (chain rules)
mà (dJ/dv) = 3 đã được tính ở trên

Đầu vào cho a = 5 nên v = 11
Khi ta tăng 1 lượng da = 0.001 thì a' = a + da = 5.001.
v' = a' + bc = 5.001 + 2*3 = 11.001
Tương tự như trên. dv/da = (11.001 - 11)/(5.001 - 5) = 1.
Từ đó theo chain rule ta có dJ/da = 3*1 = 3



Tương tự, ta tính được các đạo hàm sau.
dJ/du = 3
dJ/db = 6
dJ/da = 9

Tương tự ta có cách tính các đạo hàm cho Logistic Regression dựa vào graph như sau:



Không có nhận xét nào:

Đăng nhận xét