重庆企业网站推广流程,开源网站后台,建设网站银行,北京软件开发平均工资数值稳定性
神经网络的梯度
t表示层#xff0c;h^t是隐藏层#xff0c;y是要优化的目标函数#xff0c;不是预测还包括了损失函数 损失函数l关于参数Wt的梯度#xff1a;由链式法则#xff0c;损失函数l关于最后一层隐藏层求导*最后一层隐藏层对倒数第二层隐藏层求导*……数值稳定性
神经网络的梯度
t表示层h^t是隐藏层y是要优化的目标函数不是预测还包括了损失函数 损失函数l关于参数Wt的梯度由链式法则损失函数l关于最后一层隐藏层求导*最后一层隐藏层对倒数第二层隐藏层求导*……
所有的h都是向量向量关于向量的导数是矩阵因此会出现d-t次矩阵乘法
这样的矩阵乘法会带来两个问题梯度爆炸和梯度消失 举个例子梯度爆炸
创建对角矩阵当 diag 函数应用于一个向量时它会生成一个以该向量为主对角线元素的对角矩阵其他位置为零。 因为relu会出现0和1两种结果所以一些元素会来自。。。
假设每个W的值都会大于1累乘之后就会得到很大的值 e.g.梯度过大---学习率变化大原参数-梯度乘学习率后新的参数值会波动较大----如果参数更新过程中连续几次都以过大的步长更新参数值可能会变得异常大导致数值上的不稳定。这种“爆炸”效应可以迅速放大使得参数值达到非常大的正值或负值-----如果网络中有大的参数值它们在链式法则中相乘时会导致更大的梯度值 梯度消失如果输入值大一些sigmoid导数值就趋近于0梯度计算就会变成极小数的累乘 对于底部尤为严重梯度是反传的顶部的梯度还会是正常多层累乘过后梯度就趋近于零
神经网络无法更深和浅层神经网络无差别
总结当数值权重过大或者过小都会导致问题
让训练更加稳定 梯度归一化将梯度控制在均值为0方差为1的正态分布里控制范围
梯度裁剪强行把梯度减在一个范围里比如如果梯度大于上限就让梯度等于上限
合理的权重初始和激活函数
将每层的输出和梯度都看做随机变量并且他们的均值和方差都保持一致这样无论层数深度数值都会在一定的范围内 权重初始化
在合理值区间内随机初始函数
如果在数值大的地方初始化数据梯度就会很大
如果在最优解较小的地方梯度会小
使用N0,0.01可能对小网络没问题但不能保证深度神经网络
例子MLP 假设权重是i.i.d 独立同分布 独立Independent每个随机变量的取值不受其他随机变量取值的影响。也就是说任意一个变量的出现都不会改变其他变量出现概率的大小。 同分布Identically Distributed这些随机变量有着相同的概率分布。这意味着它们具有相同的概率密度函数连续变量的情况或概率质量函数离散变量的情况以及相同的期望值、方差等统计性质。
当前层的输入和当前层的权重也是独立的 假设要求输入的方差和输出的方差一致就可以得到。。。 Xavier初始 n t-1是输入的维度n t是输出的维度个数两者相等太过困难
Xavier就是折中一下取平均值为1
当输入和输出的维度有差别时适配权重形状变换 假设线性的激活函数理论分析真正不可行 式子1已知输入h t-1的均值已经是0输出的导数均值就是0α*00因此β0
式子2希望激活函数不改变输入和输出的方差两者依然相等因此α1
反向同理 调整前的sigmoid的不符合零点
总结合理的权重初始值和激活函数的选取可以提升数值稳定性