李宏毅机器学习------Regression

机器学习三步骤:

1.找一个Model(function set)

2.通过损失函数来评估Model中的function的好坏

3.找一个最好的function


一、Regression应用

1、股票预测分析(输入:过去十年股票起伏的资料  输出:明日某公司点数)

2、无人驾驶(输入:红外线感知到的信号、摄像头拍摄物体   输出:方向盘角度)

3、推荐系统(输入:使用者A、商品B    输出:使用者A购买商品B的可能性)

输出值都是一个数值(scalar)


二、实例分析

以宝可梦的cp值为例(输入:宝可梦的信息:可能包括重量(xw)、身高(xh)、原cp(xcp)、物种(xs)、生命值(xhp)    输出:进化后的cp值(y))

STEP 1

(1)假设function  set(Model)为y=b+w*xcp(b,w均为参数、未知,可为任意数值)--------该model属于LINEAR  MODEL

                    LINEAR  MODEL-----形如李宏毅机器学习------Regression(w,b为参数,x为不同的变量特征值)

STEP 2

(1)根据实际得到的宝可梦进化前的cp和进化后的cp(共10组)作为Training Data,定义一个LOSS FUNCTION

                    LOSS FUNCTION-----输入的是函数,输出的是一个数值,代表function有多坏

          假设LOSS FUNCTION为,这里假设的LOSS FUNCTION是以方差的方式来计算十组数据

                                         李宏毅机器学习------Regression

                                                该值越小越好

           针对任意x,找出w,b,使得L(f)最小。如下图所示,穷举所有w,b.图中每一点都代表一个函数,颜色越红LOSS越大,颜色越接近蓝色,LOSS 越小。

                                                                    李宏毅机器学习------Regression

STEP 3

  如何找出图中使LOSS最小的w,b呢(即找出最好的function)?--------梯度下降(Gradient Desent)

(1)单个参数。假设LOSS FUNCTION只与参数w相关。

         最笨的办法是穷举所有w,得到LOSS(f)的最小值(不考虑)

         梯度下降法(前提是LOSS(f)是可微分的):

             <1>任意选取一个初始值w0

             <2>计算w0处对w的微分(几何意义为切线斜率),如果切线斜率<0(切线左高右低),需要增加w;如果切线斜率                               >0(切线左低右高),需要减少w

             如下图所示,纵轴表示LOSS,横轴表示w(每次移动/改变w都是向LOSS减小的方向)。

        李宏毅机器学习------Regression

            <3>  每次需要移动多少呢?每次需要移动的量取决于两个值。第一个是当前所在点的微分值,微分值越大,移动的距离越大;第二个是学习率 η(learning rate),是事先定好的值,η越大,w的更新幅度越大。为了满足斜率为负时w增大,斜率为正时w减小,应该使原来的值减去更新的数值.计算的式子如下。

                 李宏毅机器学习------Regression

               <4>经过多次w改变之后,如果此时w的微分等于0,但他对应的并不是全局最小值,它对应的是局部最小值,但对于偏移量计算公式来说,已经计算不出下一个w。但是使用的LINEAR MODEL是没有局部最小值的,所以不影响。

(2)两个参数(w,b)

          <1>选取两个初始值w0,b0

          <2>计算w0,b0处的偏微分