一谈到机器学习,我们可能会思考,什么是机器学习,到底学习什么?

    一、机器学习学什么?

    我们先来看一张图,如图1所示,这张图来自Andrew Ng机器学习课程第二章,什么意思?我总结一下:

    1) 机器学习目的:建立输入(x)到输出(y)之间的映射关系(h);

    2) 模型建立:模型建立过程中,我们需要根据经验,对要建立模型做一些假设(Hypothesis),比如说,这里假设输入(房屋面积)和输出(房屋价格)之间是满足线性关系的,这样模型的类型就确定了;

    3) 机器学习学的内容:学习内容,其实就是学习我假定模型的参数,例如,这里我们假定是线性的,那么相当于就是假定了一个线性方程机器学习——由线性回归到梯度下降法,我们学习的过程,其实就是得到确切的模型参数机器学习——由线性回归到梯度下降法学习的本质是学习模型的参数。

                               机器学习——由线性回归到梯度下降法

                                                                         图1 机器学习流程示意图(摘自参考资料[1])

    二、如何学?

    在说如何学之前,我们先聊一下我们是如何去判别一件事情完成的好坏程度。我们在衡量一件事情完成好坏之前,自身会有一个期望结果(预期值),而这件事情有一个实际结果(真实值),这样,我们就可以通过这种实际值与预期值之间的偏差,就可以很好的来判断这件事情的好坏。

    2.1 损失函数

    在机器学习中,同样也是类似的,机器学习中有一个专门的名词:loss(cost),描述loss(cost)使用loss function(损失函数)或error function(误差函数)。

    这里,我们看一下一个具体模型的loss计算过程,如图2所示。

机器学习——由线性回归到梯度下降法

                                                                      图2 Loss 直观解释(摘自参考资料[1])

    期望值与预测值之间的偏差就对应于蓝色线段,预测总的偏差等于所有蓝色线段长度之和,所以,Loss function可以定义如下:

                                                                    机器学习——由线性回归到梯度下降法

    2.2 学习目标

    如果当前模型能够完美的拟合所有样本点,这个时候有:   机器学习——由线性回归到梯度下降法,  对应的机器学习——由线性回归到梯度下降法,如图3所示。

机器学习——由线性回归到梯度下降法

                                                                      图3 模型完美拟合样本(摘自参考资料[1])

    因此,如果我们能够最小化损失函数机器学习——由线性回归到梯度下降法,让机器学习——由线性回归到梯度下降法足够小,那么这个时候参数机器学习——由线性回归到梯度下降法对应模型就能较好的拟合样本集,我们就能得到一个我们希望得到的模型,因此,如何学习问题其实就等价于如何来最小化损失函数机器学习——由线性回归到梯度下降法,学习的目标就是最小化损失函数机器学习——由线性回归到梯度下降法机器学习——由线性回归到梯度下降法

    对于求解的问题,我们可以考虑直接求偏导,然后令之为0,就可以得到解:

                                                                              机器学习——由线性回归到梯度下降法

    实际求解过程中,求矩阵的逆比较难求,因此采用另外一种思路:梯度下降法。

    2.3 梯度下降法

    我们先看一下损失函数长什么样,损失函数的图像如图4所示。我们需要找寻全局最小值,直接求解可能太过于困难,因此我们考虑将问题进行分解,每一次优化一点,让模型变得更好一点,通过一次次迭代,最终得到一个最优的模型参数。梯度下降法就是按照这个思路设计的,每一次对参数机器学习——由线性回归到梯度下降法机器学习——由线性回归到梯度下降法的调整,都会使得损失函数机器学习——由线性回归到梯度下降法变小,这样多次调整之后,我们就能使得机器学习——由线性回归到梯度下降法足够小,最终得到理想的模型参数。

机器学习——由线性回归到梯度下降法

                                                                        图4 损失函数图像(摘自参考资料[1])

    那么,具体怎么做?首先回忆一下我们本科学习过的泰勒级数展开式,我们先看一下一阶的泰勒展式:

                                                                      机器学习——由线性回归到梯度下降法

    类似的,对于一个向量机器学习——由线性回归到梯度下降法有:

                                                                    机器学习——由线性回归到梯度下降法

    这个式子说明了什么问题?我们先将这个式子做一下移项变形,有:

                                                                     机器学习——由线性回归到梯度下降法

    这样就明显了,如果我们沿着机器学习——由线性回归到梯度下降法方向做一个改变,会引起机器学习——由线性回归到梯度下降法大小变化,我们再分析一下机器学习——由线性回归到梯度下降法

                                                                 机器学习——由线性回归到梯度下降法

    我们希望损失函数机器学习——由线性回归到梯度下降法尽可能的变小,因此要求机器学习——由线性回归到梯度下降法尽可能的大,而当机器学习——由线性回归到梯度下降法时,机器学习——由线性回归到梯度下降法取得最大值机器学习——由线性回归到梯度下降法,这个时候机器学习——由线性回归到梯度下降法同向,这也是为什么梯度下降法要沿着梯度方向来做的原因。

    我们可以再进一步,将问题进行简化,假设当前模型为:机器学习——由线性回归到梯度下降法,损失函数的图像如图5所示。

机器学习——由线性回归到梯度下降法

                                                                    图5 梯度下降法示意图(摘自参考资料[1])

    梯度下降的过程为:

                                                                                 机器学习——由线性回归到梯度下降法

                                                                                      机器学习——由线性回归到梯度下降法

    其中,机器学习——由线性回归到梯度下降法为学习率,在经过一次次迭代之后,偏导数会变得越来越小,直至接近于0,这个时候,机器学习——由线性回归到梯度下降法乘以这个偏导数任然接近于0,算法就自然收敛了。

    三、梯度下降法做线性回归

    偏导数求解:

   机器学习——由线性回归到梯度下降法   

    

 

~~~~未完待续~~~~~~

 

参考资料:

[1] Andrew Ng 的 机器学习课程

 

相关文章:

  • 2021-08-08
  • 2022-01-18
  • 2021-07-21
  • 2022-12-23
  • 2021-08-06
  • 2021-12-21
  • 2021-04-23
  • 2021-11-06
猜你喜欢
  • 2021-07-17
  • 2021-04-03
  • 2022-12-23
  • 2021-11-12
  • 2021-09-29
  • 2021-09-07
  • 2021-12-26
相关资源
相似解决方案