2017 - Derivatives Backpropagation and Vectorization - Justin Johnson

Nguồn

Câu hỏi trung tâm

Làm thế nào hiểu derivative/backprop từ scalar đến vector/matrix để triển khai neural network đúng shape?

Kiến thức cốt lõi

  • Derivative đo mức output thay đổi khi input thay đổi nhỏ.
  • Gradient là vector đạo hàm khi input là vector và output là scalar.
  • Jacobian tổng quát hoá đạo hàm cho vector-to-vector functions.
  • Backprop là chain rule có tổ chức qua computation graph.
  • Vectorization giúp viết gradient theo tensor/matrix để chạy hiệu quả và kiểm tra shape.

Cơ chế / công thức / kiến trúc

Chain rule scalar:

rac{dz}{dx}= rac{dz}{dy} rac{dy}{dx}

Trong vector case, phải theo dõi shape của Jacobian. Một cách debug quan trọng: dimension của các tích gradient phải khớp.

Khi áp dụng

  • Dùng khi tự derive backprop cho assignment CS224N.
  • Khi code gradient, luôn kiểm tra shape trước khi kiểm tra số.
  • Hữu ích để hiểu vì sao framework autodiff vẫn cần tư duy computation graph.

Kết quả / bằng chứng đáng giữ

  • Source bắt đầu từ derivative scalar rồi mở rộng sang gradient/Jacobian.
  • Note nhấn mạnh derivative như xấp xỉ thay đổi local.
  • Các ví dụ matrix/vector giúp nối toán với vectorized implementation.

Cách hiểu bằng lời của tôi

Đạo hàm trong deep learning không đáng sợ nếu xem nó như tracking local change. Backprop chỉ là cách ghép nhiều local changes lại cho đúng shape.

Câu hỏi review

  1. Gradient khác derivative scalar thế nào?
  2. Jacobian dùng khi function có input/output dạng gì?
  3. Vì sao kiểm tra shape giúp tránh lỗi gradient?

Liên kết