chapter-6-训练神经网络(上)

激活函数



一、sigmoid
在这里插入图片描述
sigmoid有一些优秀的性质,比如它的值域为[0,1];它的函数性质和神经元有一定的相似性;它的导数简洁而优雅 。但现在一般不选择它,因为它有上图提及的三个问题。

关于第二个问题,我们考虑w是二维的情况:
在这里插入图片描述
可以看出,当输入神经元的值始终为正时,导致w的变化只能朝向第一和第三象限,这也不是不可以,但这样会导致梯度变化速度过慢。

二、tanh
在这里插入图片描述
tanh相较于sigmoid,由于是以0为中心点,所以要好一些,但其它方面和sigmoid一样。

三、ReLU
在这里插入图片描述
它有着种种优点,但又有一些新问题:一个问题是,它不是以0为中心,它的坏处前面已经说明了;另一个问题是,由于在负轴梯度为0(一般在0处设梯度为0),所以导致,当初始设置使初始结果落入负轴或学习率过大导致结果落入负轴时,之后的函数就不再被激活。

四、Leaky ReLU

这是ReLu的一个改进,为了解决上述两个问题,它在负轴给出了一个微小的斜率。

对它的一个改进是,将负轴的斜率从指定的变为参数,使得其在后续的训练中可以被改变。这种方法称为Parametric Rectifier(PReLU)。
在这里插入图片描述
五、ELU
在这里插入图片描述
它看上去有点像reLU,但区别在于它在负轴上有一个指数函数,且其均值为。

六、Maxout Neuron
在这里插入图片描述

训练



一、预处理

常用的方法是,得到所有图像的均值图,然后再用所有图像减去它。有时候由于多通道图像处理起来较麻烦,且结果和减去均值图的效果相似,我们也使用减去均值单通道的做法。

(但这里没说明白,是所有通道减去某通道的均值,还是各通道减去各通道的。不过常理来想,应该是后者。)

二、选择神经网络结构

三、选择学习率

四、超参数优化

首先选取一小部分较分散的数据,在上边实验各种超参数,然后将效果最好的区间挑出来,进行更精确的搜索。

还有一种方法是随机选取或网格固定选取:
在这里插入图片描述
看上去网格选取是更好的方法,但实际上,可能是随机选取效果更好一些:当你的模型性能对某一个超参数比对其它超参数更敏感的时候,随机搜索可以对超参数空间覆盖得更好。

五、初始化参数

当所有参数设置为0时,所有的神经元都会得到相同的结果,因此输出会相同,梯度相同,因此更新也会相同,所以最终得到的神经元也会相同。但我们希望能够训练出拥有不同知识的神经元,所以这种做法是错误的。

一个改进的思路是,给每个参数一个小的随机值:
在这里插入图片描述
但由于0.01太小,对很深的神经网络来说,在几层之后,参数就会迅速归为0。

那么很直接的,我们改进的思路是,增大权重的系数,比如说,把0.01去掉。

但这也是不行的,因为这里使用的是tanh作激活函数(那为什么不用其它函数),当参数过大时,会很容易饱和。

为了解决这个问题,一个合理的方式是Xavier initialization:
在这里插入图片描述
具体的推算过程可以看:https://www.cnblogs.com/adong7639/p/9547789.html

六、批量归一化

有时候我们希望能够得到特定范围的输出,一个可行的方法是使用批量归一化。

考虑下面的函数:
在这里插入图片描述
这是一个得到近似标准高斯函数的式子,学过概率论的同学应该都能看懂。

在归一化之后,我们对其进行适当的缩放和 变化:
在这里插入图片描述
为什么要归一化呢?以下是其中一个原因:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值