Micro-Batch Training with Batch-Channel Normalization and Weight Standardization

Siyuan Qiao, Huiyu Wang, Chenxi Liu, Wei Shen, Alan Yuille
3/25/2019
cs.CVcs.LG

Official code: joe-siyuan-qiao/WeightStandardization (547 stars, last commit 2022-02-26).

Abstract

Batch Normalization (BN) has become an out-of-box technique to improve deep network training. However, its effectiveness is limited for micro-batch training, i.e., each GPU typically has only 1-2 images for training, which is inevitable for many computer vision tasks, e.g., object detection and semantic segmentation, constrained by memory consumption. To address this issue, we propose Weight Standardization (WS) and Batch-Channel Normalization (BCN) to bring two success factors of BN into micro-batch training: 1) the smoothing effects on the loss landscape and 2) the ability to avoid harmful elimination singularities along the training trajectory. WS standardizes the weights in convolutional layers to smooth the loss landscape by reducing the Lipschitz constants of the loss and the gradients; BCN combines batch and channel normalizations and leverages estimated statistics of the activations in convolutional layers to keep networks away from elimination singularities. We validate WS and BCN on comprehensive computer vision tasks, including image classification, object detection, instance segmentation, video recognition and semantic segmentation. All experimental results consistently show that WS and BCN improve micro-batch training significantly. Moreover, using WS and BCN with micro-batch training is even able to match or outperform the performances of BN with large-batch training.

View on arXivView PDF

Code Implementations(1)

Standardizing weights to accelerate micro-batch training

54741Mar 25, 20194 years ago

Similar Papers

Cite this paper

@article{qiao2019microbatch,
  title  = {Micro-Batch Training with Batch-Channel Normalization and Weight Standardization},
  author = {Siyuan Qiao and Huiyu Wang and Chenxi Liu and Wei Shen and Alan Yuille},
  year   = {2019},
  eprint = {1903.10520},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1903.10520}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1903.10520.svg)](https://codeofpaper.com/paper/1903.10520)

Discussion