Chuyển tới nội dung chính

Batch normalization

Kéo thảTính lại thậtỔn định huấn luyện

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ề 01 đô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

Batch normalization · chuẩn hóa rồi cho mạng học lại tỉ lệ
TRƯỚC: mean 4.87std 2.22SAU: mean 0.00std 1.00
● TRƯỚC · kích hoạt thô✎ kéo được● SAU · đã chuẩn hóa
TRƯỚCSAU-10-8-6-4-20246810
Dải mờ là khoảng 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 ở 1 và 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.

Điều rút ra

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.

Câu hỏi tự kiểm0/3 đúngchưa trả lời
  1. 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?
  2. 2Vai trò của gamma và beta trong batch normalization là gì?
  3. 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?