梯度下降中,计算完各个参数的导数之后就需要更新参数值了,最常用的更新参数方法就是:
【SGD】:
x += - learning_rate * dx
但是这种方法收敛速度非常慢,其实除了这个更新参数的方法,还有很多的方法可以进行参数更新。
【Momentum update】:
这个方法对于深度学习的网络参数更新往往有不错的效果。本质意思是,在更新新的参数的时候需要考虑前一个时刻的“惯性”,其更新参数如下:
# Momentum update v = mu * v - learning_rate * dx # integrate velocity x += v # integrate position
上面计算方法和下面的等价(其中的ρ等价于上面的mu):
其中一般的,v初始为0,mu是优化参数,一般初始化参数为0.9,当使用交叉验证的时候,参数mu一般设置成[0.5,0.9,0.95,0.99],在开始训练的时候,梯度下降较快,可以设置mu为0.5,在一段时间后逐渐变慢了,mu可以设置为0.9、0.99。也正是因为有了“惯性”,这个比SGD会稳定一些。
【Nesterov Momentum】
这是一个和上面的Momentum update有点不一样的方法,这种方法最近得到了较为广泛的运用,对于凸函数,它有更为快的收敛速度。
计算公式:
x_ahead = x + mu * v # evaluate dx_ahead (the gradient at x_ahead instead of at x) v = mu * v - learning_rate * dx_ahead x += v
其基本思路如下:(参考自各种优化方法的比较)
首先,按照原来的更新方向更新一步(x_ahead,也就是棕色线),然后在该位置计算梯度值(也就是dx_ahead,红色线),然后用这个梯度值修正最终的更新方向(绿色线)。上图中描述了两步的更新示意图,其中蓝色线是标准momentum更新路径
【Adagrad】
adagrad是一种自适应学习率的更新方法,计算方法如下:
# Assume the gradient dx and parameter vector x cache += dx**2 x += - learning_rate * dx / (np.sqrt(cache) + eps)
这个方法其实是动态更新学习率的方法,其中cache将每个梯度的平方和相加,而更新学习率的本质是,如果求得梯度距离越大,那么学习率就变慢,而eps是一个平滑的过程,取值通常在(10^-4~10^-8 之间)
【RMSprop】
RMSpro是还没有发布的方法,但是已经使用的额相当广泛,其和Adagrad的方法差不多,计算方法如下:
cache = decay_rate * cache + (1 - decay_rate) * dx**2 x += - learning_rate * dx / (np.sqrt(cache) + eps)
其中,decay_rate取值通常在[0.9,0.99,0.999]
【Adam】
adam现在已经被广泛运用了,adam的更新参数方法如下:
m = beta1*m + (1-beta1)*dx v = beta2*v + (1-beta2)*(dx**2) x += - learning_rate * m / (np.sqrt(v) + eps)
m,v一般初始化为0,而这篇论文中,eps取值为1e-8 beta1=0.9 beta2=0.9999
【几种常见参数更新方法的比较】:
相关推荐
【摘要】小波神经网络参数初始值影响着网络收敛速度的快慢,甚至关系到网络能否收敛。为了减少网络训练 次数,提高收敛速度,提出了一种更简便易行的选择方法,通过将此方法的仿真结果与采用随机选取初始值的方 法...
人工神经网络具有并行处理能力、自学习能力、自适应能力和以任意精度逼 近任意非线性函数的特点,在模式...本文就神经网络在模式识别与系统辨识方面的应用展开研究,提出了几种 较新的系统模型辨识和模型参数辨识方法。
本文以几种典型神经网络为例(BP神经网络Function Approximation 、RBF神经网络www.BoliLib.com Approximation 、正交多项式基函数神经网络、样条基函数神经网络),对基于神经网络的函数逼近方法进行了研究。...
(8)用全局优化方法——填充函数法研究了小 波神经网络 的优化方法,构造了一种新的易于计算的单参数的填 充函数,不 仅证明了新构造的函数具有填充函数的性质,还把填 充函数和 BP算法相结合,提出一种训练小波...
MATLAB 中常用的神经网络优化算法包括以下几种: 背景误差反向传播(Backpropagation):通过计算网络输出和实际目标之间的误差,然后反向传播更新网络参数。这是最基本的神经网络优化算法,在 MATLAB 中可以使用...
【摘要】小波神经网络参数初始值影响着网络收敛速度的快慢,甚至关系到网络能否收敛。为了减少网络训练 次数,提高收敛速度,提出了一种更简便易行的选择方法,通过将此方法的仿真结果与采用随机选取初始值的方 法...
【摘要】小波神经网络参数初始值影响着网络收敛速度的快慢,甚至关系到网络能否收敛。为了减少网络训练 次数,提高收敛速度,提出了一种更简便易行的选择方法,通过将此方法的仿真结果与采用随机选取初始值的方 法...
个人编写的一个3层手写体识别神经网络,加入了几种优化方法,包括更新算法和初始参数的优化。
该方法基于使用神经网络开发的预测模型。 使用带有监督反向传播学习的3层NN模型来预测预成型坯的温度分布模型。 另外,考虑到内部气压与预成型坯体积之间的关系,该模型用于预测施加在预成型坯内部的均匀气压。 ...
【摘要】小波神经网络参数初始值影响着网络收敛速度的快慢,甚至关系到网络能否收敛。为了减少网络训练 次数,提高收敛速度,提出了一种更简便易行的选择方法,通过将此方法的仿真结果与采用随机选取初始值的方 法...
卷积神经网络是由一个或多个卷积层和顶端的全连通层(也可以使用1×1的卷积层作为最终的输出)组成的一种前馈神经网络 基本概念 局部感受野(Local Receptive Fields) 一般的神经网络往往会把图像的每一个像素点连接...
【摘要】小波神经网络参数初始值影响着网络收敛速度的快慢,甚至关系到网络能否收敛。为了减少网络训练 次数,提高收敛速度,提出了一种更简便易行的选择方法,通过将此方法的仿真结果与采用随机选取初始值的方 法...
借用微细菌群体趋药性算法的思想来确定RBF神经网络隐层神经元的控制参数;把改进的ROLS算法和M-BCC算法相结合 ,来全结构优化RBF神经网络,使RBF网络不但可以得到合适的结构,同时也可以得... 【英文摘要】 RBF ...
针对该问题,提出一种基于BP神经网络的煤矿水泵系统控制方法。该方法选取水位、涌水量、时段、累计运行时间这4个关键参数来建立BP神经网络,通过对网络不断调整和优化,得到一个稳定的网络模型;用该模型对水泵的启停...
2、PW 卷积,降维或升维的同时,提高网络的表达能力 PW卷积:Pointwise Convolution,俗称 1×1 卷积,主要用于数据降维,减少参数量。 使用 1×1 卷积核对输入的特征图进行降维处理,这样就会极大地减少参数量...
【摘要】小波神经网络参数初始值影响着网络收敛速度的快慢,甚至关系到网络能否收敛。为了减少网络训练 次数,提高收敛速度,提出了一种更简便易行的选择方法,通过将此方法的仿真结果与采用随机选取初始值的方 法...
首先简要介绍了目前几种流行的解决方法,并详细阐述了六个轻量化卷积神经网络模型,展示了其中应用的不同网络计算方式的计算量和参数量,论述了模型的核心构建模块、整体网络结构和创新之处。分析了各网络以及常规...
【摘要】小波神经网络参数初始值影响着网络收敛速度的快慢,甚至关系到网络能否收敛。为了减少网络训练 次数,提高收敛速度,提出了一种更简便易行的选择方法,通过将此方法的仿真结果与采用随机选取初始值的方 法...
基于这些探索并使用大量的统计工具,使用几种人工神经网络体系结构对包含在预测模型中的最相关变量进行识别和融合。 在悬臂杆的CNC车削上的应用表明,由于其简单,准确和高效,所提出的建模过程可以有效且有利地...