美文网首页
CS231N 学习笔记 Lecture7 训练神经网络

CS231N 学习笔记 Lecture7 训练神经网络

作者: best___me | 来源:发表于2018-01-09 16:49 被阅读0次

权重初始化需要注意的有:

1. Fancier optimization

SGD,计算梯度然后更新权重

随机梯度下降的问题:

损失在一个方向很敏感,另一个方向的改变很小! 锯齿形状

不均衡 局部最小点,鞍点

并且saddle points在高纬度情况下更常见。根据minibatch计算的梯度可能有噪声,仅依赖当前batch的数据,更新很不稳定。

解决方法:

1. Momentum 

增加动量

不是梯度方向,而是速度方向。Momentum即动量,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样可以增加稳定性,从而学习地更快,并且具有摆脱局部最优的能力。

Momentum可以解决SGD的问题 动量的图形解释

红色点是当前的点,红色的向量是梯度的方向,绿色是速度矢量的方向,动量更新是红色绿色两个的加权平均。

其中Nesterov Momentum方法的思想是:按照原来的更新方向更新一步(绿色线),然后在该位置计算梯度值(红色线),然后用这个梯度值修正最终的更新方向(蓝色线)

由于往往是根据xt去更新参数的,那么对其进行修改之后,将x写成x上波浪线

2. AdaGrad

平方。遇到变化缓慢的纬度,它可以增速,遇到变化快的纬度,可以减速其改变。其训练时间增加时,它的改变会越来愈小。对于凸的问题时,是好的,应为收敛并且变化越来越小,然而对于非凸的问题,可能会陷入到局部最优点。一个解决方法就是RMSProp

3. RMSProp

好像SGD+Momentum过于兴奋了,哈哈哈哈。小哥有说在使用Adagrad的时候可能需要增加学习速率,不过现在好像不怎么用了。

4. Adam

结合了动量中速度的想法和AdaGrad和RMSProp中的平方思想。

在第一个时刻的问题:beta2是0.9或0.99,所以second_moment很接近零。所以第一个时刻可能会走很大一步。1e-7是为了保证分母不是0

解决起始为0的问题:使用无偏估计,并且下页ppt中给出了常用的参数设置。

学习速率:

一阶优化:线性近似,不能走太远

一阶泰勒近似

二阶优化:

二阶泰勒近似 没有学习速率,但是Hessian矩阵太大了

一些改进的方法:

L-BFGS:近似H,但是在很多深度学习问题上表现并不好,在实际中,通常使用一下两种方法:

在实际中,希望增强模型的泛化能力:

这些模型中的超参数往往不同 在测试阶段往往不是使用参数向量,而是在训练阶段将其平均值保存起来,用于测试阶段

2. 正则化

增强模型的泛化能力

Dropout的思想:每次前向的时候,随机设置一些神经元的值为0,通常概率为0.5。

1. Forces the network to have a redundant representation,prevents co-adaptation of features。2. Dropout is training a large ensemble of models(that share parameters)

dropout中的batch normalization

Data Augmentation:

图像的水平平移,旋转,随机选取等,color jitter

训练阶段:增加一些随机性的噪音

测试阶段:边缘化噪声。

Fractional Max Pooling: suggests a method for performing the pooling operation with filters smaller than 2x2. This is done by randomly generating pooling regions with a combination of 1x1, 1x2, 2x1 or 2x2 filters to tile the input activation map. The grids are generated randomly on each forward pass, and at test time the predictions can be averaged across several grids.

3. Transfer Learning:

可能不需要太多的数据,在大的数据集上训练好模型,然后将其他参数冻结,接着重新初始化最后一个参数

现在很多图像相关的任务都是在ImageNet上做预训练,然后再做Fine tune微调。

文本相关的:word vectors pretrained with word2vec

相关文章

网友评论

      本文标题:CS231N 学习笔记 Lecture7 训练神经网络

      本文链接:https://www.haomeiwen.com/subject/ptgvnxtx.html