提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一、梯度下降的概念
梯度下降顾名思义就是不停的向下推进,比如,我们正在山顶现在需要快速回到山下,那么我们就需要找到一条安全且可靠的路下山,我们每走一步就会看一眼。如下图所示:
二、梯度下降的主要三种形式
1.批量梯度下降(Batch Gradient Descent,BGD)
- 梯度下降的每一步中,都用到了所有的训练样本,公式如下:
w j = w j − α 1 m ∑ i = 1 m ( ( h ( x ( i ) ) − y ( i ) ) x ( j ) ) w_{j}=w_{j}-\alpha \frac{1}{m}\sum_{i=1}^{m}((h(x^{(i)})-y^{(i)})x^{(j)}) wj=wj−αm1∑i=1m((h(x(i))−y(i))x(j)),其中 ( ( h ( x ( i ) ) − y ( i ) ) x ( j ) ) ((h(x^{(i)})-y^{(i)})x^{(j)}) ((h(x(i))−y(i))x(j))为梯度, α \alpha α为学习率
2.随机梯度下降(Stochastic Gradient Descent)
- 梯度下降的每一步中,用到一个样本,在每一次计算之后便更新参数 ,而不需要首先将所有的训练集求和,公式如下:
w = w − ∂ ∂ J ( w ) ∂ w w=w-\partial \frac{\partial J(w)}{\partial w} w=w−∂∂w∂J(w)
h ( x ) = w T x = w 0 x 0 + w 1 x 1 + . . . + w n x n h(x)=w^{T}x=w_{0}x_{0}+w_{1}x_{1}+...+w_{n}x_{n} h(x)=wTx=w0x0+w1x1+...+wnxn
J ( w ) = 1 2 ( h ( x ( i ) ) − y ( i ) ) 2 J(w)=\frac{1}{2}(h(x^{(i)})-y^{(i)})^{2} J(w)=21(h(x(i))−y(i))2
∂ J ( w ) ∂ w j = ∂ ∂ w j 1 2 ( h ( x ( i ) ) − y ( i ) ) 2 = 2 × 1 2 ( h ( x ( i ) ) − y ( i ) ) × ∂ ∂ w j ( h ( x ( i ) ) − y ( i ) ) = ( h ( x ( i ) ) − y ( i ) ) × ∂ ∂ w j ( ∑ i = 0 n ( w i x i ( i ) − y ( i ) ) ) = ( h ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial J(w)}{\partial w_{j}}=\frac{\partial }{\partial w_{j}}\frac{1}{2}(h(x^{(i)})-y^{(i)})^{2}=2\times \frac{1}{2}(h(x^{(i)})-y^{(i)})\times \frac{\partial }{\partial w_{j}}(h(x^{(i)})-y^{(i)})=(h(x^{(i)})-y^{(i)})\times \frac{\partial }{\partial w_{j}}( \sum_{i=0}^{n}(w_{i}x_{i}^{(i)}-y^{(i)})) = (h(x^{(i)})-y^{(i)}) x_{j}^{(i)} ∂wj∂J(w)=∂wj∂21(h(x(i))−y(i))2=2×21(h(x(i))−y(i))×∂wj∂(h(x(i))−y(i))=(h(x(i))−y(i))×∂wj∂(∑i=0n(wixi(i)−y(i)))=(h(x(i))−y(i))xj(i)
因此,通过上述公式的推导我们就可以得到 w j = w j − α 1 m ∑ i = 1 m ( ( h ( x ( i ) ) − y ( i ) ) x ( j ) ) w_{j}=w_{j}-\alpha \frac{1}{m}\sum_{i=1}^{m}((h(x^{(i)})-y^{(i)})x^{(j)}) wj=wj−αm1∑i=1m((h(x(i))−y(i))x(j))
3.小批量梯度下降(Mini-Batch Gradient Descent)
- 梯度下降的每一步中,用到了一定批量的训练样本每计算常数𝑏次训练实例,便更新一次参数
w
w
w,公式如下
w j = w j − α 1 b ∑ k = i i + b − 1 ( h ( x ( k ) ) − y ( k ) ) x j ( k ) w_{j}=w_{j}-\alpha \frac{1}{b}\sum_{k=i}^{i+b-1}(h(x^{(k)})-y^{(k)})x_{j}^{(k)} wj=wj−αb1∑k=ii+b−1(h(x(k))−y(k))xj(k) - 当𝑏=1(随机梯度下降,SGD)
- 当𝑏=m(批量梯度下降,BGD)
- 当𝑏=batch_size,通常是2的指数倍,常见有32,64,128等。(小批量梯度下降,MBGD)
4.数据归一化/标准化
- 为什么要归一化/标准化?
提升模型精度:不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
加速模型收敛:最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。 - 归一化:数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数据进行伸缩变化,所以数据归一化是会改变特征数据分布的,能将数据映射到[0,1]之间。归一化公式如下: x ∗ = x − x m i n x m a x − x m i n x^{*}=\frac{x-x_{min}}{x_{max}-x_{min}} x∗=xmax−xminx−xmin
- 标准化:数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特 征数据分布没有发生改变。就是当数据特征取值范围或单位差异较大时,最好是做一下标准化处理。处理后的数据均值为0,方差为1.公式如下: x ∗ = x − μ σ x^{*}=\frac{x-\mu }{\sigma } x∗=σx−μ
总结
本人也才刚刚开始学习,请大家多多包涵。大家在学习机器学习之前可以先学习下线性代数