Batch normalization
Batch normalization
Chuẩn hóa kích hoạt trong batch về trung bình 0 độ lệch 1, rồi để mạng học lại tỉ lệ.
Mỗi lớp trong mạng sâu nhận đầu vào là đầu ra của lớp trước. Khi các trọng số phía dưới thay đổi theo từng bước huấn luyện, phân phối những con số đi vào một lớp cũng trôi dạt theo: lúc thì dồn về một phía, lúc thì phình rộng ra. Lớp phía trên vừa mới quen với dải giá trị cũ thì dải đó đã đổi, nên nó phải học đi học lại một mục tiêu chạy. Mạng càng sâu thì cái trôi này càng chồng chất, khiến tốc độ học phải để nhỏ và quá trình hội tụ chậm.
Ý tưởng của batch normalization rất gọn: trước khi đưa vào lớp sau, hãy kéo cả batch giá trị về một
mốc cố định là trung bình 0 và độ lệch chuẩn 1. Lớp trên luôn thấy đầu vào
ở cùng một thang, không còn phải chạy theo mục tiêu di động. Nhưng ép cứng về 0 và
1 đôi khi làm mất thông tin mà lớp cần, nên ta thêm hai con số học được là gamma và beta
để mạng tự co giãn và dịch lại đúng tỉ lệ nó muốn.
Thử ngay
mean ± std của mỗi hàng; vạch đậm là trung bình. Đường nối cho thấy mỗi giá trị thô rơi về đâu sau khi chuẩn hóa và tái định vị.Thử điều này:
- Kéo một điểm hàng TRƯỚC ra xa hẳn, để ý trung bình và độ lệch của cả hàng TRƯỚC nhảy theo ngay, và hàng SAU tính lại tức thì.
- Để gamma ở
1và beta ở0, đọc hai con số của hàng SAU: mean về0.00, std về1.00. Đó chính là bước chuẩn hóa. - Trượt beta sang phải, cả đám điểm SAU trượt ngang mà hình dạng không đổi: beta chỉ dịch tâm.
- Trượt gamma về gần
0, cả đám co cụm lại một điểm; tăng gamma lên thì nó giãn rộng ra: gamma điều khiển bề rộng.
Gamma và beta
Sau khi chuẩn hóa, mỗi giá trị thành chuẩn hóa, rồi mạng tính đầu ra cuối theo công thức
y = gamma * chuẩn hóa + beta. Ở đây gamma là tỉ lệ co giãn và beta là lượng dịch, cả hai
đều là tham số học được cùng với phần còn lại của mạng. Nói cách khác, chuẩn hóa dọn sẵn một mốc ổn
định là mean 0 std 1, còn gamma và beta cho mạng quyền lấy lại đúng thang mà
nó thấy có ích, kể cả khi thang đó tình cờ trùng với phân phối gốc.
Batch normalization chốt đầu vào mỗi lớp về một mốc cố định để mạng khỏi chạy theo mục tiêu di động, rồi trả lại quyền chọn tỉ lệ qua hai số học được gamma và beta.
- 1Đặt gamma bằng 1 và beta bằng 0 rồi đọc hàng SAU, trung bình và độ lệch chuẩn của nó bằng bao nhiêu?
- 2Vai trò của gamma và beta trong batch normalization là gì?
- 3Vì sao chốt phân phối đầu vào mỗi lớp lại giúp huấn luyện ổn định hơn?