Bài báo · arXiv 1502.03167
Batch Normalization: Tăng tốc huấn luyện mạng sâu bằng cách giảm Internal Covariate Shift
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Tóm tắt trong ba dòng
- 🎯 Quá trình huấn luyện mạng sâu bị chậm lại do internal covariate shift—sự dịch chuyển liên tục của phân phối đầu vào các tầng gây ra bởi việc cập nhật tham số ở các tầng trước.
- 🔧 Đề xuất Batch Normalization (BN), một tầng kiến trúc chuẩn hóa các kích hoạt trong mini-batch về trung bình bằng 0 và phương sai bằng 1, theo sau bởi phép co giãn và dịch chuyển affine có thể học được (γ và β).
- 📈 Đạt độ chính xác validation 72,2% tương đương baseline Inception với số bước ít hơn 14 lần và đạt lỗi top-5 4,82% trên tập kiểm thử ImageNet khi kết hợp ensemble.
Tóm tắt
Việc huấn luyện các mạng nơ-ron sâu (Deep Neural Networks) gặp nhiều phức tạp do phân phối đầu vào của mỗi tầng liên tục thay đổi trong quá trình huấn luyện khi các tham số của các tầng trước đó cập nhật. Điều này làm chậm quá trình huấn luyện khi đòi hỏi tốc độ học thấp hơn cùng việc khởi tạo tham số cẩn trọng, đồng thời khiến các mô hình sử dụng hàm phi tuyến bão hòa cực kỳ khó huấn luyện. Chúng tôi gọi hiện tượng này là internal covariate shift, và giải quyết vấn đề bằng cách chuẩn hóa đầu vào của các tầng. Phương pháp của chúng tôi phát huy sức mạnh nhờ việc biến chuẩn hóa thành một phần trong kiến trúc mô hình và thực hiện chuẩn hóa cho từng mini-batch huấn luyện. Batch Normalization cho phép chúng tôi sử dụng tốc độ học cao hơn đáng kể và bớt khắt khe hơn trong khâu khởi tạo. Nó cũng đóng vai trò như một bộ điều chuẩn (regularizer), trong một số trường hợp loại bỏ hoàn toàn sự cần thiết của Dropout. Áp dụng vào một mô hình phân loại ảnh tiên tiến (state-of-the-art), Batch Normalization đạt cùng mức độ chính xác với số bước huấn luyện ít hơn 14 lần, và vượt trội mô hình gốc với khoảng cách đáng kể. Sử dụng một ensemble các mạng áp dụng chuẩn hóa theo batch, chúng tôi đã cải thiện kết quả tốt nhất từng được công bố trên bài toán phân loại ImageNet: đạt 4,9% lỗi top-5 trên tập validation (và 4,8% lỗi trên tập test), vượt qua độ chính xác của người đánh giá.
Tóm tắt gốc (tiếng Anh)
Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful parameter initialization, and makes it notoriously hard to train models with saturating nonlinearities. We refer to this phenomenon as internal covariate shift, and address the problem by normalizing layer inputs. Our method draws its strength from making normalization a part of the model architecture and performing the normalization for each training mini-batch. Batch Normalization allows us to use much higher learning rates and be less careful about initialization. It also acts as a regularizer, in some cases eliminating the need for Dropout. Applied to a state-of-the-art image classification model, Batch Normalization achieves the same accuracy with 14 times fewer training steps, and beats the original model by a significant margin. Using an ensemble of batch-normalized networks, we improve upon the best published result on ImageNet classification: reaching 4.9% top-5 validation error (and 4.8% test error), exceeding the accuracy of human raters.
Hướng dẫn đọc
Vấn đề và động lực
Trong quá trình tối ưu hóa mạng sâu bằng SGD, sự thay đổi tham số ở các tầng trước sẽ làm thay đổi phân phối đầu vào của các tầng tiếp theo. Các tác giả gọi hiện tượng này là Internal Covariate Shift.
Internal covariate shift tạo ra hai thách thức chính:
- Các mạng con phải liên tục thích ứng với các phân phối kích hoạt luôn dịch chuyển.
- Các kích hoạt dễ dàng rơi vào vùng bão hòa của các hàm phi tuyến (chẳng hạn như hàm sigmoid), gây ra hiện tượng triệt tiêu gradient (vanishing gradient) và đòi hỏi tốc độ học nhỏ cùng khâu khởi tạo tham số hết sức cẩn trọng.
Trong khi việc làm trắng (whitening - khử tương quan và chuẩn hóa) đầu vào của tầng trên toàn bộ tập dữ liệu có thể ổn định phân phối, thì việc tính ma trận hiệp phương sai đầy đủ và căn bậc hai nghịch đảo của nó ở mỗi bước cập nhật tham số lại quá tốn kém về mặt tính toán, đồng thời có thể khiến gradient bùng nổ nếu chuẩn hóa không được tích hợp vào quá trình lan truyền ngược (backpropagation).
Ý tưởng then chốt
- Tầng chuẩn hóa khả vi (Differentiable Normalization Layer): Thay vì chuẩn hóa các kích hoạt bên ngoài quá trình tối ưu, chuẩn hóa được tích hợp trực tiếp vào kiến trúc mô hình, đảm bảo lan truyền ngược xét đến sự phụ thuộc giữa các kích hoạt tầng và thống kê của mini-batch.
- Chuẩn hóa theo từng chiều (Per-Dimension Normalization): Thay vì làm trắng toàn phần (joint whitening), từng chiều đặc trưng vô hướng được chuẩn hóa độc lập về giá trị trung bình bằng 0 và phương sai bằng 1.
- Khôi phục khả năng biểu diễn (Restoring Representational Capacity): Để đảm bảo chuẩn hóa không làm mất đi khả năng biểu đạt của một tầng (như việc ép sigmoid hoạt động hoàn toàn tuyến tính), các tham số có thể học (co giãn) và (dịch chuyển) được đưa vào để cho phép tầng khôi phục lại phép biến đổi đồng nhất (identity transformation) nếu cần.
- Suy luận xác định (Deterministic Inference): Trong quá trình huấn luyện, các giá trị thống kê được tính trên từng mini-batch . Khi suy luận (test time), các thống kê cố định trên toàn quần thể (được tính qua trung bình động hoặc trên toàn bộ các batch huấn luyện) sẽ thay thế cho thống kê của mini-batch, đảm bảo suy luận mang tính xác định cho từng mẫu đơn lẻ.
- Bất biến với tỷ lệ tham số (Parameter Scale Invariance): Phép biến đổi tỷ lệ của trọng số tầng thỏa mãn , nghĩa là trọng số lớn hơn sẽ dẫn đến gradient hiệu dụng nhỏ hơn, giúp ngăn chặn hiện tượng bùng nổ gradient.
Phương pháp (với các phương trình chính)
Với một mini-batch tương ứng với một chiều kích hoạt đơn lẻ:
- Tính trung bình của mini-batch:
- Tính phương sai của mini-batch:
- Chuẩn hóa kích hoạt (với hằng số ổn định ):
- Co giãn và dịch chuyển bằng các tham số có thể học và :
Áp dụng vào các tầng
- Vị trí: Được áp dụng ngay trước các hàm phi tuyến: . Hệ số điều chỉnh bias ban đầu của tầng bị loại bỏ vì phép trừ trung bình đã triệt tiêu nó (vai trò của nó được thay thế bởi ).
- Các tầng tích chập (Convolutional Layers): Để bảo toàn tính tương đương tịnh tiến (translation equivariance), chuẩn hóa được áp dụng trên mỗi feature map thay vì trên từng kích hoạt không gian riêng biệt. Với batch size và độ phân giải không gian , kích thước mini-batch hiệu dụng trở thành , với một cặp duy nhất được chia sẻ trên mỗi feature map.
Phép biến đổi khi suy luận
Khi kiểm thử, phép biến đổi trở thành một phép toán tuyến tính tĩnh sử dụng thống kê quần thể và :
Kết quả (với các số liệu quan trọng nhất)
- MNIST với hàm Sigmoid: Các mạng trang bị Batch Normalization duy trì được phân phối kích hoạt ổn định trong suốt quá trình huấn luyện, tăng tốc hội tụ và đạt độ chính xác kiểm thử cao hơn so với các mạng không chuẩn hóa.
- Tốc độ huấn luyện ImageNet (Mạng đơn lẻ):
- Inception không chuẩn hóa đạt độ chính xác validation 72,2% sau bước.
- Baseline Batch-Normalized Inception đạt 72,2% chỉ sau bước.
- Với tốc độ học cao gấp 5 lần (BN-x5), mô hình đạt 72,2% sau bước—giảm 14 lần số bước huấn luyện cần thiết, cuối cùng đạt đỉnh ở mức 73,0%.
- Với tốc độ học cao gấp 30 lần (BN-x30), mô hình đạt độ chính xác tối đa 74,8% sau bước.
- Hàm phi tuyến bão hòa: Trong khi Inception không chuẩn hóa dùng kích hoạt sigmoid hoàn toàn thất bại khi huấn luyện (chỉ duy trì ở mức ngẫu nhiên 0,1%), thì BN-x5-Sigmoid đạt độ chính xác top-1 là 69,8%.
- SOTA Ensemble trên ImageNet: Một ensemble gồm 6 mạng có chuẩn hóa theo batch đạt tỷ lệ lỗi top-5 validation là 4,9% và tỷ lệ lỗi test là 4,82% trên test server của ILSVRC, vượt qua hiệu suất của con người.
Hạn chế và các câu hỏi mở
- Phụ thuộc vào kích thước Batch: Do việc chuẩn hóa dựa trên các giá trị thống kê mẫu của mini-batch, kích thước mini-batch quá nhỏ có thể làm suy giảm chất lượng ước lượng phương sai và giá trị trung bình.
- Mạng hồi quy (Recurrent Networks): Bài báo mới chỉ thử nghiệm trên các mô hình truyền thẳng (feedforward) và tích chập, để ngỏ câu hỏi về mạng nơ-ron hồi quy (RNNs) như một hướng nghiên cứu chưa được kiểm chứng, nơi internal covariate shift cũng có thể đóng vai trò then chốt.
- Cơ sở lý thuyết: Các tác giả phỏng đoán rằng Batch Normalization làm cho ma trận Jacobian của các tầng có các giá trị kỳ dị (singular values) gần bằng 1, nhưng lưu ý rằng việc kiểm chứng lý thuyết chính xác về hành vi gradient vẫn còn là vấn đề mở cho các phân tích trong tương lai.
Thuật ngữ chính
- Internal Covariate Shift
- Sự thay đổi phân phối kích hoạt bên trong mạng nơ-ron trong quá trình huấn luyện do việc cập nhật tham số ở các tầng phía trước gây ra.
- Batch Normalization
- Cơ chế chuẩn hóa đầu vào tầng theo từng mini-batch về trung bình bằng 0 và phương sai bằng 1 trước khi co giãn và dịch chuyển chúng bằng các tham số học được.
- Scale and Shift Parameters (γ and β)
- Các tham số có thể học cho mỗi kích hoạt giúp khôi phục khả năng biểu đạt của mạng, bao gồm khả năng biểu diễn lại phép biến đổi đồng nhất.
- Whitening
- Phép biến đổi đầu vào để tạo ra các chiều đặc trưng có trung bình bằng 0, phương sai bằng 1 và không tương quan với nhau.
- Batch Normalizing Transform
- Thuật toán khả vi chính xác dùng để tính trung bình và phương sai mini-batch, chuẩn hóa đầu vào và áp dụng phép co giãn cùng dịch chuyển affine học được.
- Population Statistics
- Giá trị kỳ vọng trung bình và phương sai không chệch tổng hợp được theo dõi qua các mini-batch huấn luyện nhằm cố định tham số chuẩn hóa cho giai đoạn suy luận xác định.
- Feature Map Normalization
- Việc áp dụng chuẩn hóa đồng thời trên các phần tử của mini-batch và các vị trí không gian để tất cả kích hoạt trong một feature map tích chập dùng chung thống kê và tham số affine.
Câu hỏi thường gặp
Batch Normalization được áp dụng ở vị trí nào so với hàm kích hoạt và bias?
Nó được áp dụng ngay trước hàm phi tuyến (). Tham số bias của phép biến đổi tuyến tính trước đó được bỏ qua vì phép trừ giá trị trung bình sẽ triệt tiêu nó, để đảm nhận vai trò của bias.
Batch Normalization hoạt động khác nhau như thế nào giữa lúc huấn luyện và khi suy luận?
Trong quá trình huấn luyện, trung bình và phương sai được tính trực tiếp trên mini-batch hiện tại để chuẩn hóa kích hoạt. Khi suy luận, các giá trị này được thay thế bằng thống kê quần thể cố định (trung bình động không chệch thu được qua các batch huấn luyện), biến tầng chuẩn hóa thành một phép biến đổi tuyến tính tĩnh.
Tại sao Batch Normalization lại cho phép sử dụng learning rate cao hơn?
Việc chuẩn hóa kích hoạt ngăn các thay đổi nhỏ của tham số leo thang vào các vùng bão hòa hoặc gây bùng nổ gradient. Hơn nữa, gradient lan truyền ngược qua một tầng có tính bất biến theo tỷ lệ đối với trọng số: trọng số lớn hơn sẽ tạo ra gradient tỷ lệ nhỏ hơn, giúp ngăn chặn sự mất ổn định.
Batch Normalization có thể thay thế Dropout không?
Có, trong rất nhiều trường hợp. Do kích hoạt đã chuẩn hóa của một mẫu phụ thuộc vào các ví dụ ngẫu nhiên khác cùng có mặt trong mini-batch, nó tạo ra nhiễu ngẫu nhiên đóng vai trò như một bộ điều chuẩn hiệu quả, cho phép giảm bớt hoặc loại bỏ hoàn toàn Dropout.
Phần giải thích trên trang này do AI viết dựa trên bài báo và có thể có sai sót. Hãy đọc bài báo gốc để biết chi tiết.