机器学习梯度下降算法(二)

目录

前言

一、多项式回归

二、多重回归

三、随机梯度下降法

总结


前言

前面讲到了梯度下降算法的由来,和具体的分析过程,下面进一步对之前的内容进行递进和细化。


一、多项式回归

之前的表达式为:

f_\theta (x)=\theta _0+\theta _1x

然后通过下图可以发现,其实曲线比直线拟合得更好。

机器学习梯度下降算法(二)_第1张图片机器学习梯度下降算法(二)_第2张图片

 f_\theta (x) 定义为二次函数,用它来表示这条曲线

f_\theta (x)=\theta _0+\theta _1x+\theta _2x^{2}

用更大次数的表达式可以表示更复杂的曲线

f_\theta (x)=\theta _0+\theta _1x+\theta _2x^{2}+\theta_3x^{3}+\cdot \cdot \cdot +\theta_nx^{^{n}}

虽然次数越大拟合得越好,但难免也会出现过拟合的问题

同之前一样,设u=E(\theta )v=f_\theta (x),然后用u\theta _2的微分

\frac{\partial v}{\partial \theta _2}=\frac{\partial }{\partial \theta _2}(\theta _0+\theta _1x+\theta _2x^{2})

=x^{2}

最终的参数更新表达式:

\theta_0 {:}=\theta_0-\eta \sum_{i=1}^{n}(f_\theta (x^{(i)})-y^{(i)})

\theta_1 {:}=\theta_1-\eta \sum_{i=1}^{n}(f_\theta (x^{(i)})-y^{(i)})x^{(i)}

\theta_2 {:}=\theta_2-\eta \sum_{i=1}^{n}(f_\theta (x^{(i)})-y^{(i)})x^{(i)}

像这样增加函数中多项式的次数,然后再使用函数的分析方法被称为多项式回归。

二、多重回归

实际中要解决的很多问题是变量超过2 个的复杂问题。之前只是根据广告费来预测点击量,现在呢,决定点击量的除了广告费之外,还有广告的展示位置和广告版面的大小等多个要素。

假设我们只考虑广告版面的大小,设广告费为x1、广告栏的宽为x2、广告栏的高为x3,那么fθ 可以表示如下:

f_\theta(x1,x2,x3)=\theta_0+ \theta_1x_1+\theta_2x_2+\theta_3x_3

若推广到n个变量,则有:

f_\theta(x1,x2,x3)=\theta_0+ \theta_1x_1+\cdot \cdot \cdot +\theta_nx_n

用向量表示:(x_0=1)

\mathbf{\theta }=\begin{bmatrix} \theta _0\\ \theta _1\\ \theta _2\\ \cdot \\ \cdot \\ \theta _n\\ \end{bmatrix}            x=\begin{bmatrix} \1\ \\ x_1 \\ x_2 \\ \cdot \\ \cdot \\ x_n \\ \end{bmatrix}

\mathbf{\theta }^{T}x=\theta _0x_0+\theta _1x_1+\theta _2x_2+\cdot \cdot \cdot +\theta _nx_n

f(x)=\mathbf{\theta} ^{T}x

设u = E(θ)、v = fθ(x) 的部分是一样的。为了一般化,我们可以考虑对第j 个元素θj 偏微分的表达式。

\frac{\partial u}{\partial \theta_j}=\frac{\partial u}{\partial v}\frac{\partial v}{\partial \theta _j}

\frac{\partial u}{\partial \theta_j}=\frac{\partial}{\partial \theta _j}(\theta ^{T}x)

=\frac{\partial }{\partial \theta _j}(\theta _0x_0+\theta _1x_1+\cdot \cdot \cdot +\theta _nx_n)

=x_j

那么第j 个参数的更新表达式:

\theta_j {:}=\theta_j-\eta \sum_{i=1}^{n}(f_\theta (x^{(i)})-y^{(i)})x_j^{(i)}

像这样包含了多个变量的回归称为多重回归

三、随机梯度下降法

机器学习梯度下降算法(二)_第3张图片

随机梯度下降算法,初始值是随机的,如上图所示,容易陷入局部最优解。

\theta_j {:}=\theta_j-\eta \sum_{i=1}^{n}(f_\theta (x^{(i)})-y^{(i)})x_j^{(i)}

这个表达式使用了所有训练数据的误差,而在随机梯度下降法中会随机选择一个训练数据,并使用它来更新参数。这个表达式中的k 就是被随机选中的数据索引

\theta _j{:}=\theta _j-\eta \left ( f_\theta(x^{(k)})-y^{(k)} \right )x_j^{(k)}

最速下降法更新1 次参数的时间,随机梯度下降法可以更新n 次。此外,随机梯度下降法由于训练数据是随机选择的,更新参数时使用的又是选择数据时的梯度,所以不容易陷入目标函数的局部
最优解

了随机选择1 个训练数据的做法,此外还有随机选择m 个训练数据来更新参数的做法,设随机选择m 个训练数据的索引的集合为K,那么我们这样来更新参数。

\theta_j {:}=\theta_j-\eta \sum_{k\in K}(f_\theta (x^{(k)})-y^{(k)})x_j^{(k)}

假设训练数据有100 个,那么在m = 10 时,创建一个有10 个随机数的索引的集合,例如K = {61, 53, 59, 16, 30, 21, 85, 31, 51,10},然后重复更新参数。

这种做法被称为小批量(mini-batch)梯度下降法,介于最速下降法和随机梯度下降法之间的方法。不管是随机梯度下降法还是小批量梯度下降法,我们都必须考虑学习率η。把η 设置为合适的值是很重要的。如何选取合适的η值,我们在后面会一起讨论。

总结

本文从多项式回归到多重回归,接着讲到随机梯度下降算法,再根据随机梯度下降算法的弊端(局部最优解),聊到小批量梯度下降算法,后面会继续当前的知识循序渐进的学习。

你可能感兴趣的:(随机梯度下降)