深度学习个人总结(3)

深度学习个人总结(3)

一、如何解决过拟合
1)提前停止
最简单的正则化,当网络的表现开始变差时,即准确度下降时,停止训练,不让网络训练足够长的时间来学到噪声。这是成本最低的正则化形式;如果面临严重的过拟合场景,它可能非常有效。

2)随机失活
方法即在训练过程中随机关闭神经元(设置为0)。

过程:在训练的运行的时候,让神经元以超参数p的概率被激活(也就是1-p的概率被设置为0), 每个w因此随机参与, 使得任意w都不是不可或缺的, 效果类似于数量巨大的模型集成。虽然大型非正则化神经网络更可能对噪声过度拟合,但它们不大可能对相同的噪声过拟合。(它们的初始化是随机的,一旦其学会的噪声信息足以区分训练数据集中的图像,就会停止学习)尽管神经网络是随机 生成的,但它们仍然是学习最大的、最广泛的特征开始的,之后才会捕捉更多关于噪声的信息。

原理:如果你训练100个神经网络(所有的初始化都是随机的),它们每个都倾向于捕捉不同的噪声和相似的信号。因此,当这些神经网络出错时,它们犯得错误往往不同。如果你把它们整合在一起,让它们平等地投票,则它们的误差往往相互抵消,最终只展示出它们学到的共同的东西:信号。

代码:

i=0
layer_0=images[i:i+1] #layer_0表示输入层,image是训练数据,这里[0:1]表示训练数据中第一个数据
dropout_mask=np.random.randint(2,size=layer_1.shape)#用随机函数建立一个由01组成的随机失活矩阵

layer_1*=dropout_mask*2#layer_1为隐藏层,乘以随机失活矩阵是将隐藏层中的某些矩阵设置为0,可以随机关闭他们
#将layer_1乘以2是为了增加layer_2对layer_1的敏感度。因为关闭layer_1中一般的节点会使输出的加权和减半

layer_2=np.dot(layer_1,weights_1_2)#layer_2为输出层

3)正则化
减弱不相关权重的值,使真正具有强相关性的权重才能保持不变,从而做到减少噪声,是使模型泛化到新的数据点(而不仅是记忆训练数据)的方法的子领域。

有两种正则化的方法:
L1正则化:目标函数中增加所有权重w参数的绝对值之和, 逼迫更多w为零(也就是变稀疏. L2因为其导数也趋0, 奔向零的速度不如L1给力了).

L2正则化:目标函数中增加所有权重w参数的平方之和, 逼迫所有w尽可能趋向零但不为零. 因为过拟合的时候, 拟合函数需要顾忌每一个点, 最终形成的拟合函数波动很大, 在某些很小的区间里, 函数值的变化很剧烈, 也就是某些w非常大. 为此, L2正则化的加入就惩罚了权重变大的趋势.

二、学习率
控制每次更新参数的幅度(步长),即w=w+αΔw中的α,能够减少权重的增量,用来防止过度修正权重,过高和过低的学习率都可能对模型结果带来不良影响,合适的学习率可以加快模型的训练速度。

在这里插入图片描述图中,如果learning rate刚刚好,就可以像下图中红⾊线段⼀样顺利地到达到loss的最⼩值;
如果learning rate太⼩的话,像下图中的蓝⾊线段,虽然最后能够⾛到local minimal的地⽅,但是它可能会⾛得⾮常慢,以⾄于你⽆法接受
如果learning rate太⼤,像下图中的绿⾊线段,它的步伐太⼤了,它永远没有办法⾛到特别低的地⽅,可能永远在这个“⼭⾕”的⼝上振荡⽽⽆法⾛下去;
如果learning rate⾮常⼤,就会像下图中的⻩⾊线段,⼀瞬间就⻜出去了,结果会造成update参数以后,loss反⽽会越来越⼤(这⼀点在上次的demo中有体会到,当lr过⼤的时候,每次更新loss反⽽会变⼤。

动态学习率:
1)最简单的动态调整学习率
learning rate通常是随着参数的update越来越⼩的
α=α/√(t+1) t表示第几次更新
这种⽅法使所有参数以同样的⽅式同样的learning rate进⾏update,⽽最好的状况是每个参数都给他不同的learning rate去update

2)Adagrad
一种基于梯度的优化算法,能够对每个参数自适应不同的学习速率,对稀疏特征能得到较大的学习更新,对非稀疏特征则得到较小的学习更新,因此该优化算法适合处理稀疏特征数据。每一个参数保留一个学习率以提升在稀疏梯度(即自然语言和计算机视觉问题)上的性能。

在这里插入图片描述在这里插入图片描述我们在做gradient descent的时候,希望的是当梯度值即微分值越⼤的时候(此时斜率越⼤,还没有接近最低点)更新的步伐要更⼤⼀些,但是Adagrad的表达式中,分⺟表⽰梯度越⼤步伐越⼤,分⼦却表⽰梯度越⼤步伐越⼩,两者似乎相互⽭盾,这种方法是预估了二次微分的大小
gradient越⼤,离最低点越远这件事情在有多个参数的情况下是不⼀定成⽴的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值