Batch Normalization là gì
Batch Normalization
hamhochoi
2 years ago
X
Privacy & Cookies
This site uses cookies. By continuing, you agree to their use. Learn more, including how to control cookies.
Got It!
Advertisements
1. Tại sao cần Batch Normalization (BN)
- Hàm mất mát: Y = F(W.X + b)
- Ban đầu, F được lấy là hàm sigmoid. Tuy nhiên, đặc điểm của hàm này là tiến về 1 rất nhanh nên đạo hàm rất gần 0 > làm chậm quá trình training (vanishing gradients)
- Hàm ReLu được sử dụng thay thế cho hàm sigmoid để giải quyết vấn đề vanishing gradients ( ReLU(x)=max(x,0) ), tuy nhiên, việc lựa chọn learning rate và khởi tạo các tham số ban đầu cần hết sức cẩn trọng.
- BN lấy ý tưởng từ việc normalize dữ liệu input (thường là ảnh), trong đó dữ liệu được chuẩn hóa về dạng chuẩn (0,1) để thống nhất phân bố dữ liệu, tạo điều kiện cho việc training dễ dàng hơn.
2. Batch Normalization (BN)
- Trong quá trình training, ta tính toán kỳ vọng và phương sai của mini-batch đang training, sau đó chuẩn hóa input của mini-batch đó.
- Việc áp dụng BN áp dụng cho các lớp Convolution nên ta không thể tính toán cho toàn tập dữ liệu được (vì không đủ RAM, nếu không, ta đã không cần dùng tới mini-batch).
- Tham số cần học là gamma và beta được sử dụng lần lượt để học các tham số liên quan tới scale và shift để có một hình dạng và vị trí tốt hơn sau khi thực hiện normalization. Output: Y = F(BN((W.X+b))
- Trong quá trình testing, kỳ vọng, phương sai được tính trên toàn bộ dữ liệu (toàn bộ train data?).
3. Áp dụng BN vào các mạng Inception (Xem trong link phần reference)
4. Reference
- https://medium.com/@sh.tsang/review-batch-normalization-inception-v2-bn-inception-the-2nd-to-surpass-human-level-18e2d0f56651
Advertisements
Share this:
- Yolov4
- May 8, 2020
- With 6 comments
- Overview Object Detection ML
- December 29, 2019
- In "ML"
- Image Preprocessing
- March 2, 2020
- In "ML"
Categories: ML
Tags: Batch Normalize
Leave a Comment