CV第六讲—**函数与BN
一、知识梳理
二、**函数
1)关于simgoid函数中心非零的问题:中心非零:导致的结果是参数更新的梯度方向恒正或者恒负。
(1)首先,先说明网络计算的公式:
(2)求解梯度:
(3)分析梯度各部分——第一部分J/L,由下式可知此项可正可负(主要看差值)
(4)分析梯度各部分——第二部分L/f(有下图可知此部分恒正)
(5)分析梯度各部分——第二部分x
由下图可知sigmoid函数的输出始终为正数(非zero-centered),那下一层f的输入将全部为正数,因此如果第一层x的输入为负,则以后的每个梯度都为负(负*正*正*正=负);如果第一层x的输入为正,则以后的每个梯度都为正(正*正*正*正=正)。但更重要的问题是此时会导致W矩阵同正或同负。
(6)问:此时梯度可恒正可恒负与损失函数的梯度相乘是否会使的最终的梯度不恒正或恒负?
不会,因为反向传播中损失函数对L的导数就一项,所以梯度还是恒正恒负(写到这才发现,梯度恒正恒负跟损失求导没啥关系)
2)关于simgoid函数中心非零的影响
(1)导致梯度恒正恒负只是函数中心非零的一个直观表现,接下来讨论梯度恒正恒负对网络训练的影响。为此举个栗子(式中,w0为当前解,w0*为最优解):
(2)结果图:
注:关键在于在更新过程中,当前解始终都在最优解的上方,所以更新的方向只能同正或同负(因为函数只跟前一层损失值的梯度反馈有关了,而w0,w1的损失反馈都是一样的。(此时x正负只与初始方向有关))。因此,只能走Z字。
3)关于下图中坐标指什么、**函数**状态的直线位置是怎么来的、dead Relu为什么在图片的下方、这两条线为什么只切割一小部分?这个图想说明什么?
课程中的翻译:如果观察数据云,假设这个就是全部的训练数据,可以看到这些ReLU可能处于的位置。这些ReLU基本上在平面中的一半区域内能够产生**,在这个平面区域内能够**的又相应地定义了这些ReLU,可以看到这些dead ReLU基本不再数据云中,因此它从来不会被**和更新,相比**的ReLU,一些数据是正数,那么就能进行传递,一些则不会。
三、BN重点
四、权重初始化
问题1:为什么使用标准高斯分布中抽样并把抽样结果乘以0.01作为权重的初始值,可以使第一层的**值概率分布呈现出高斯分布(权重与X相乘后不能保证是高斯分布吧?更何况还要通过**函数)
四、作业
1. 随机梯度下降步骤
2.课中介绍的**函数表达式 和优缺点
见知识梳理**函数部分
3. 数据处理的目的是什么,alexnet, vgg 分别怎样处理的图像数据
数据处理目的:
数据中常存在奇异样本数据,奇异样本数据存在所引起的网络训练时间增加,并可能引起网络无法收敛。为了避免出现这种情况及后面数据处理的方便,加快网络学习速度,可以对输入进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。
VGG:
随机生成一个最短边的长度resize_side,范围在[256,512];对图像进行等比例变换,使最短边的大小等于resize_side;对图像进行随机裁剪,大小为output_height × output_width;水平翻转;减去ImageNet训练集的RGB均值。
Alex:
剪裁,去均值化