02-监督学习应用.梯度下降

约定符号:

m = 训练样本数

X = 输入变量(特征)

Y = 输出变量(目标变量)

(X,Y) = 表示一个样本

$\left ( X^{(i)},Y^{(i)} \right )$ = 第i个样本(上标i不是指数)

 用线性表示则是:

$h\left ( X \right )=\Theta _{0}+\Theta _{1}X$

$\Theta$称为学习算法的参数

如果有2个特征则写成:

$h\left ( X \right )=\Theta _{0}+\Theta _{1}X_{1}+\Theta _{2}X_{2}$

这里的X是一个输入特征

如果需要让假设h对$\Theta$依赖,则写成

$h _{\Theta}\left ( X \right )=\Theta _{0}+\Theta _{1}X_{1}+\Theta _{2}X_{2}$

 如果假设$X_{0}$=1,则公式可以简写成:

                  $h_{\Theta }\left ( X \right )=\sum\limits_{i=0}^{2}\Theta _{i}X_{i}=\Theta ^{T}X$

 最后一个符号n表示所有的特征数目,也就是X的个数。

则公式可以写成:

        $h_{\Theta }\left ( X \right )=\sum\limits_{i=0}^{n}\Theta _{i}X_{i}=\Theta ^{T}X$

 

 

我们要做的事情就是要让$\left ( h_{\Theta }\left ( X^{(i)} \right )-Y^{(i)} \right )^{2}$最小,也就是预测值减去实际值的平方最小,也就是误差最小

为了简化运算,引入一个$J\left ( \Theta  \right )$函数:

                        $J\left ( \Theta  \right ) = \frac{1}{2}\sum\limits_{i=0}^{m}\left ( h_{\Theta }\left ( X^{(i)} \right )-Y^{(i)} \right )^{2}$

我们所要做的是要是一个关于$ \Theta$ 函数$J\left ( \Theta  \right )$的值最小化,

 

 

如果我们初始化一个$ \Theta$ 为$\Theta=\vec{0}$,然后不断地去改变$\Theta$的向量,使得函数$J\left ( \Theta  \right )$的值不断减小,直到我们找到了一个$\Theta$使得$J\left ( \Theta  \right )$函数取到了最小值。

 

那么要按照什么方向寻找$\Theta$,并得到$J\left ( \Theta  \right )$的最小值呢?

我们需要根据$J\left ( \Theta  \right )$函数的最陡峭的部分往下走,最陡峭的部分也就是梯度。

 

梯度下降:

      $\Theta _{i}:=\Theta _{i}-\alpha \frac{\partial }{\partial \Theta _{i}}J\left ( \Theta  \right )$

 求导之后为:

      $\Theta _{i}:=\Theta _{i}-\alpha \left ( h_{\Theta }\left( X  \right )-Y \right )X_{i}$

称之为更新函数,$\alpha$为学习速度,表示朝着最低点迈步的大小。

 这里的冒号表示赋值

所以我们要做的是,将$\Theta$按照梯度下降的方法,最后使得$J\left ( \Theta  \right )$收敛,也就是找到了$J\left ( \Theta  \right )$的最小值。

 

如果样本数很多:

就要用到梯度下降方法的一些分类方法:

随机梯度算法,样本少,速度快,不收敛

批量梯度算法,样本多,速度慢,收敛。

 

另外一种计算$\Theta$的方法:

            $\Theta =\left ( X^{T}X \right )^{-1}X^{T}Y$

但是$\Theta$不一定可以直接求出来。

 

posted on 2018-09-21 17:53  医疗兵皮特儿  阅读(109)  评论(0编辑  收藏  举报

导航