ANN激活函数与代价函数等等等总结

激活函数

  1. sigmod梯度消失的解释:反向传播,sigmod函数接近饱和区时,变化缓慢,导致梯度接近0,经过几层网络的叠加,每层激活函数都需要相乘,梯度消失.(sigmod函数导数最大值为0.25,tanh导数最大为1)

  2. 梯度爆炸原因,前馈网络中W权值初始化过大(?),RNN中BPTT算法在这里插入图片描述
    若特征值大于一,则可能梯度爆炸,小于一可能梯度消失。
    解决办法:batchNorm 前馈网络,调整W,增设梯度截断阈值,RNN换LSTM
    3.ReLU的好处 Rectified Linear Units
    计算简便
    舍弃一半梯度,防止了过拟合(为此应适当减小学习率)
    有效减少梯度消失现象
    生物角度
    4.Loss Funtion的选择
    为什么二次代价函数比交叉熵慢
    交叉熵 H ( p , q ) = ∑ x p ( x ) l o g q ( x ) H(p,q)=\sum_xp(x)logq(x) H(p,q)=xp(x)logq(x)用于计算两个分布 p ( x ) , q ( x ) p(x),q(x) p(x),q(x)之间的距离,交叉熵越小,概率分布越接近(p是真实分布)

    求梯度分析
    在这里插入图片描述
    在这里插入图片描述
    看到梯度大小仅与预测差值和x有关
    而二次代价函数
    在这里插入图片描述
    求导后显然与激活函数的导数成正比,而sigmod的激活函数大小有限,所以迭代速度慢
    5.Softmax整理
    trick1:计算前先整理,-max(a1,a2,…,an)防止指数爆炸
    作ANN输出层的时候配合对数似然损失函数,和交叉熵本质上一样,当网络为二分网络时,退化softmax退化为逻辑回归
    6.pooling层作用
    1)减少网络复杂度,减少需计算的参数
    2)增加后面卷积核的感受野,增加网络的泛化能力
    3)translation invariance, rotation invariance, scale invariecne.
    4)减少重叠区域冗余
    7.数据集扩增方法
    1)噪声
    2)旋转
    3)elastic distortions弹性变换
    4)截取crop

8.感受野的计算
从输入层开始向后计算
公式 l k = l k − 1 + ( ( f k − 1 ) ∗ ∏ i = 1 k − 1 s i ) l_k = l_{k-1} + ((f_k - 1) * \prod_{i=1}^{k-1}s_i) lk=lk1+((fk1)i=1k1si)
其中l为感受野,f为卷积核大小,s为stride
感受野与padding无关

9.Batch Normalization
解决网络中internal covariate shift问题,即对于sigmod函数,导数有效区域有限,当输出 x = W U + b x=WU+b x=WU+b太大或太小时,反向梯度很小,网络收敛慢。
解决思路:把每层的的输出结果规范化, x ^ = ( x − μ ) / ( σ + ϵ ) \hat{x} =(x-\mu)/(\sigma+\epsilon) x^=(xμ)/(σ+ϵ),变为均值为零,方差为1的标准正态分布。但此时激活函数损失了非线性部分的功能,再加入伸缩和平移因子 y = γ x ^ + β y=\gamma\hat{x}+\beta y=γx^+β,两个因子通过网络迭代学习得到。
在网络测试时,用所有变量的统计结果的均值和方差代替 μ , σ \mu ,\sigma μ,σ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值