博客
关于我
学习笔记之——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/

你可能感兴趣的文章
Python 使用哈希函数用于加密
查看>>
Python 依赖管理的革新——Poetry 深度解析
查看>>
python 保留精度及增加去除数字的千位分隔符(金额化数字)
查看>>
python 倒计时 9,8,7,。。。。。。0
查看>>
Python 入门开发学习笔记之数据的增删改查
查看>>
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
查看>>
Python 八大排序算法合集
查看>>
python 关于epoll的学习
查看>>
Python 内存管理
查看>>
Python 内嵌函数:它们有什么用处?
查看>>
Python 内置 sum 函数 vs. for 循环性能
查看>>
Python 内置时间模块
查看>>
python 内部如何实现命名元组?
查看>>
python 写入json数据到数据库
查看>>
Python 列表删除相同的元素
查看>>
Python 初学者需要知道的四条建议
查看>>
Python 判断字符串是否包含子字符串
查看>>
python 判断当前时间是否为零点
查看>>
python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
查看>>
python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
查看>>