Pytorch神经网络-加速神经网络训练过程

越复杂,越多的数据会是的我们在神经网络的计算时花费过多的时间。但是解决复杂的问题还有大数据是不可避免的。因此需要找到一种方法使得神经网络聪明起来,快起来。

Stochastic Gradient Descent(SGD)
如果将数据一股脑的放入NN中进行训练效率会很慢。换一种思路,将数据拆分成小批小批的,再分批放入NN中计算。使用批量数据虽然不能反映整体情况但也不会极大的损失准确率。

其它途径是在神经网络参数上动动手脚。
Momentum
m=b1m-Learning ratedx
W+=m

AdaGrad
该方法是在学习率上动动手脚。使得每个参数的更新都有自己与众不同的学习效率。作用和Momentum类似。
数学形式:
v+=dx^2
W+=-Learning rate*dx/sqrt(v)

RMSProp
v=b1v+(1-b1)dx^2
W+=-Learning rate*dx/sqrt(v)

Adam
m=b1m+(1-b1)dx(Momentum)
v=b2v+(1-b2)dx^2(AdaGrad)
W+=-Learning rate*m/sqrt(v)
该方法结合了Momentum和AdaGrad。大部分时候使用Adam都可以快速的达到目标并迅速的收敛。

你可能感兴趣的:(Pytorch神经网络-加速神经网络训练过程)