[深度学习]训练神经网路——深度调参

10 篇文章 0 订阅
2 篇文章 0 订阅

在课堂上学习cs231n的知识,外加上对于神的调参的学习甚少。(平时只是在学习算法和网络;用的时候才看一看)


所以在此将站在“巨人”的肩膀上,看一看调参的经验都有哪些。方便拓展下思维和为后来提高训练精度、突破训练瓶颈做好准备/
在这里插入图片描述

激活函数使用

sigmoid-tanh-ReLU( ReLU,LeakyReLU,ELU ) - MaxOut<类似relu以及诡异华中参数学习.>

  • 如标题所示,介绍了 激活函数一步步的发展过程(因为出现了什么问题,继而提出了什么解决方案和激活函数)。提高了多少性能,优点是什么、存在的问题又是什么等。

激活函数


建议

总结,使用激活函数的建议


数据预处理(Data Preprocessing)

  • 首先介绍零均值归一化
  • 然后介绍降维
  • 最后进行总结 – 给出相应的建议.

在这里插入图片描述

权重初始化

权重初始化研究——所有层激活输出,随着层数越深,激活数值越趋向于零

激活无修饰权重初始化:
激活无修饰权重初始化

tanh() 和 ReLU() 激活权重初始化方法<相应的论文给出了方法>

权重初始化

更多适合的权重初始化研究论文

更多适合的权重初始化研究论文

BatchNormalization(批量标准化)–对比LN\IN\GN

批量标准化–BN

算法过程


  • 可以看到,由标准化的x得到第二层的输入h1的时候,经历了如下的步骤:
    1、第一层的权重项w 和 输入x想成,得到s1
    2、对s1进行0-1均值方差标准化,得到s2
    3、设置两个参数γ 和 β ,计算γ * s2 + β 得到s3。注意,这里的γ 和 β是网络要学习的变量。
    4、将s3经过激活函数激活之后得到h1

  • 优点:
    (1) 加速收敛速度
    (2) 在一定程度上防止梯度爆炸

  • 缺点:
    (1) 依赖于batch size
    (2) 只对批输入的数据有效。eg:训练集
    (3) 对于处理序列化数据无效,因为序列数据间存在一定关系,另外要计算一个维度上的标准化不合理。


具体来看有以下几个方面:


批量标准化

LayerNorm + InstanceNorm + GroupNorm

注意区分:BN和LN ,参考: BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm总结

  • 直观区别:
    直观区别
    batch是“竖”着来的,各个维度做归一化,所以与batch size有关系。
    layer是“横”着来的,对一个样本,不同的神经元neuron间做归一化。

    显示了同一层的神经元的情况。假设这个mini-batch一共有N个样本,则Batch Normalization是对每一个维度进行归一。而Layer Normalization对于单个的样本就可以处理。

    bn和ln都可以比较好的抑制梯度消失和梯度爆炸的情况。

  • BN和LN主要区别为:

  1. LN中同层神经元输入拥有相同的均值和方差,不同的输入样本有不同的均值和方差;
  2. BN中则针对不同神经元输入计算均值和方差,同一个batch中的输入拥有相同的均值和方差。

所以,LN不依赖于batch的大小和输入sequence的深度,因此可以用于batchsize为1和RNN中对边长的输入sequence的normalize操作。

  • IN针对图像迁移、图像风格化
    BN注重对每个batch进行归一化,保证数据分布一致,因为判别模型中结果取决于数据整体分布。

    但是图像风格化中,生成结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,因而对HW做归一化。可以加速模型收敛,并且保持每个图像实例之间的独立。

  • GN
    主要是针对Batch Normalization对小batchsize效果差,GN将channel方向分group,然后每个group内做归一化,算(C//G)HW的均值,这样与batchsize无关,不受其约束。

  • 具体来看:


其他三种对比

总结 – 四种使用方法对比 + 使用情况

归一化层,目前主要有这几个方法,Batch Normalization(2015年)、Layer Normalization(2016年)、Instance Normalization(2017年)、Group Normalization(2018年)Switchable Normalization(2018年);

将输入的图像shape记为[N, C, H, W],这几个方法主要的区别就是在,

  • batchNorm是在batch上,对NHW做归一化,对小batchsize效果不好;
  • layerNorm在通道方向上,对CHW归一化,主要对RNN作用明显;
  • instanceNorm在图像像素上,对HW做归一化,用在风格化迁移;
  • GroupNorm将channel分组,然后再做归一化;

对比+使用情形

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值