文章目录
一. 批量梯度下降(Batch gradient descent)
批量梯度下降(Batch gradient descent),是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新。
θ = θ − η ⋅ ∇ θ J ( θ ) θ = θ − η · ∇θJ(θ) θ=θ−η⋅∇θJ(θ)
由于我们需要计算整个数据集的梯度以仅执行一次更新,因此批量梯度下降可能非常缓慢,并且对于内存小而数据集庞大的情况来说很棘手。批次梯度下降法也不允许我们在线更新模型,即即时更新新示例。
批量梯度下降优点是理想状态下经过足够多的迭代后可以达到全局最优.
批量梯度下降伪代码:
for i in range(nb_epochs):
params_grad = evaluate_gradient(loss_function, data, params)
params = params - learning_rate * params_grad
其中nb_epoch是自己指定的迭代次数,params_grad是经过一次迭代后的参数
二. 随机梯度下降法(Stochastic Gradient Descent)
随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本来求梯度。正是为了加快收敛速度,并且解决大数据量无法一次性塞入内存的问题,所以stochastic gradient descent(SGD)就被提出来了,SGD的思想是每次只训练一个样本去更新参数(比如样本 j j j: ( x ( j ) 0 , x ( j ) 1 , . . . , x ( j ) n ) (x_{(j)}^0,x_{(j)}^1,...,x_{(j)}^n) (x<


2285

被折叠的 条评论
为什么被折叠?



