博客
关于我
学习笔记之——Normalization
阅读量:515 次
发布时间:2019-03-07

本文共 3662 字,大约阅读时间需要 12 分钟。

Normalization Methods in Deep Learning

Normalization techniques are crucial in deep learning, particularly for training deep neural networks efficiently. These techniques help address issues like Internal Covariate Shift, which can hinder training due to varying input distributions across batches. Here, we explore key normalization methods and their applications.

Batch Normalization (BN)

Batch Normalization (BN) was introduced to address the Internal Covariate Shift issue. By normalizing each batch to have a mean of 0 and variance of 1, BN stabilizes the input distribution, preventing gradient issues like vanishing or exploding gradients. BN introduces learnable parameters β and γ to shift and scale the normalized values, allowing the model to adapt to different data distributions.

Advantages of BN

  • Reduces Internal Covariate Shift, accelerating training.
  • Mitigates gradient issues, especially with activation functions like sigmoid or tanh.
  • Less sensitive to initial parameter values, enhancing training stability.

Disadvantages of BN

  • Batch size sensitivity: Small batch sizes lead to inaccurate mean and variance estimates.
  • Requires storing batch statistics during training, which can be memory-intensive for large batches.
  • Not suitable for RNNs due to varying sequence lengths.

Layer Normalization (LN)

Layer Normalization (LN) normalizes all features in a layer across the batch. Unlike BN, LN does not depend on batch size, making it suitable for small batches. It computes mean and variance across the entire layer, ensuring consistent normalization regardless of batch size. This makes LN more versatile, particularly for RNNs where sequence lengths vary.

Differences Between BN and LN

  • BN normalizes features per batch, while LN normalizes features across the entire layer.
  • LN does not require storing batch statistics, saving memory.

Weight Normalization (WN)

Weight Normalization (WN) normalizes filter weights rather than features. It decouples weights into magnitude (beta) and direction (gamma), allowing independent training of these parameters. Unlike BN and LN, WN does not depend on input data distribution, making it a form of parameter normalization.

Instance Normalization (IN)

Instance Normalization (IN) is ideal for tasks like image style transfer, where the model's output depends on individual image instances rather than the entire batch. IN normalizes features within each image instance, ensuring consistent output while allowing diverse styles across instances.

Group Normalization (GN)

Group Normalization (GN) addresses the limitations of BN by grouping features along the channel dimension. Each group is normalized separately, reducing the impact of batch size on normalization accuracy. GN is particularly effective for small batches and can be seen as a middle ground between BN and LN.

Key Characteristics of GN

  • Divides features into groups and normalizes each group separately.
  • Reduces dependency on batch size, making it suitable for small batches.
  • Combines aspects of BN and LN, providing a flexible normalization approach.

Switchable Normalization (SN)

Switchable Normalization (SN) allows each layer to choose the most appropriate normalization method dynamically during training. This adaptability addresses the limitation of fixed normalization methods, offering a solution for diverse applications without manual tuning.

Summary

Normalization techniques like BN, LN, WN, IN, GN, and SN each address specific challenges in deep learning. Understanding their unique properties and applications can help choose the optimal method for a given task, ensuring efficient and stable training of deep neural networks.

转载地址:http://tiajz.baihongyu.com/

你可能感兴趣的文章
OpenCV 中的图像转换
查看>>
OpenCV 人脸识别 C++实例代码
查看>>
OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
查看>>
Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
查看>>
opencv 模板匹配, 已解决模板过大程序不工作的bug
查看>>
OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
查看>>
opencv&Python——多种边缘检测
查看>>
opencv&python——高通滤波器和低通滤波器
查看>>
OpenCV+Python识别车牌和字符分割的实现
查看>>
OpenCV-Python接口、cv和cv2的性能比较
查看>>
OpenCV/Python/dlib眨眼检测
查看>>
opencv1-加载、修改、保存图像
查看>>
opencv10-形态学操作
查看>>
opencv11-提取水平直线和垂直直线
查看>>
opencv12-图像金字塔
查看>>
opencv13-基本阈值操作
查看>>
opencv14-自定义线性滤波
查看>>
opencv15-边缘处理
查看>>
opencv16-Sobel算子
查看>>
opencv17-laplance算子
查看>>