SGD、BGD、MBGD、Adam等优化器


前言

本篇文章用于记录深度学习当中所有的优化算法。
神经网络当中的优化器是一种用于反向传播算法中的算法,它能够自适应地调整神经网络模型的参数,以使神经网络在训练集上的表现良好。
在深度学习中,我们通常使用反向传播算法更新神经网络的参数。反向传播算法通过计算损失函数对每个参数的偏导数,从而得到每个参数的梯度,然后,我们可以使用梯度下降算法来更新参数,以最小化损失函数。


提示:以下是本篇文章正文内容,下面案例可供参考

一、BGD(Batch Gradent Descent)

在这里插入图片描述在这里插入图片描述

二、SGD(Stochastic Gradient Descent)

大多数机器学习或者深度学习算法都涉及某种形式的优化。 优化指的是改变 x x x以最小化或最大化某个函数 f ( x ) f(x) f(x)的任务。 我们通常以最小化 f ( x ) f(x) f(x)指代大多数最优化问题。 最大化可经由最小化算法最小化 − f ( x ) -f(x) f(x)来实现。
我们要把最小化或最大化的函数称为目标函数或准则,当我们对其进行最小化时,我们也把它成为代价函数、损失函数或误差函数。
假设一个损失函数为:
J ( ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ) − y ) J((\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x)-y) J((θ)=21i=1m(hθ(x)y)
其中 h θ = θ 0 + θ 1 x 1 + θ 2 x 2 . . . . + θ n x n h_{\theta}=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}....+\theta_{n}x_{n} hθ=θ0+θ1x1+θ2x2....+θnxn然后要使得最小化它。

注意:这里只是假设,不用知道这个目标函数就是平方损失函数等等,然后肯定有人问既然要最小化它,那求个导数,然后使得导数等于0求出不就好了吗?Emmmm…是的,有这样的解法,可以去了解正规方程组求解。说下这里不讲的原因,主要是那样的方式太难求解,然后在高维的时候,可能不可解,但机器学习或深度学习中,很多都是超高维的,所以也一般不用那种方法。总之,梯度下降是另一种优化的不错方式,比直接求导好很多。

梯度下降:我们知道曲面上方向导数的最大值的方向就代表了梯度的方向,因此我们在做梯度下降的时候,应该是沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解。这个 θ i \theta_{i} θi 的更新过程可以描述为:
θ j : = θ j − α α ( J ( θ ) ) α θ j \theta_{j}:=\theta_{j}-\alpha\frac{\alpha(J(\theta))}{\alpha\theta_{j}} θj:=θjααθjα(J(θ))
α ( J ( θ ) ) α θ j = α ( 1 2 ( h θ ( x ) − y ) ) α θ j \frac{\alpha(J(\theta))}{\alpha\theta_{j}}=\frac{\alpha(\frac{1}{2}(h_{\theta(x)}-y))}{\alpha\theta_{j}} αθjα(J(θ))=αθjα(21(hθ(x)y))
= ( h θ ( x ) − y ) x j =(h_{\theta}(x)-y)x_{j} =(hθ(x)y)xj

[a表示的是步长或者说是学习率(learning rate)]
好了,怎么理解?在直观上,我们可以这样理解,看下图,一开始的时候我们随机站在一个点,把他看成一座山,每一步,我们都以下降最多的路线来下山,那么,在这个过程中我们到达山底(最优点)是最快的,而上面的a,它决定了我们“向下山走”时每一步的大小,过小的话收敛太慢,过大的话可能错过最小值,扯到蛋…)。这是一种很自然的算法,每一步总是寻找使J下降最“陡”的方向(就像找最快下山的路一样)。
在这里插入图片描述

当然了,我们直观上理解了之后,接下来肯定是从数学的角度,我们可以这样想,先想在低维的时候,比如二维,我们要找到最小值,其实可以是这样的方法,具体化到1元函数中时,梯度方向首先是沿着曲线的切线的,然后取切线向上增长的方向为梯度方向,2元或者多元函数中,梯度向量为函数值f对每个变量的导数,该向量的方向就是梯度的方向,当然向量的大小也就是梯度的大小。现在假设我们要求函数的最值,采用梯度下降法,结合如图所示:
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

三、MBGD(Mini-Batch Gradient Descent)

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值