李宏毅机器学习------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-----形如(w,b为参数,x为不同的变量特征值)
STEP 2
(1)根据实际得到的宝可梦进化前的cp和进化后的cp(共10组)作为Training Data,定义一个LOSS FUNCTION
LOSS FUNCTION-----输入的是函数,输出的是一个数值,代表function有多坏
假设LOSS FUNCTION为,这里假设的LOSS FUNCTION是以方差的方式来计算十组数据
该值越小越好
针对任意x,找出w,b,使得L(f)最小。如下图所示,穷举所有w,b.图中每一点都代表一个函数,颜色越红LOSS越大,颜色越接近蓝色,LOSS 越小。
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减小的方向)。
<3> 每次需要移动多少呢?每次需要移动的量取决于两个值。第一个是当前所在点的微分值,微分值越大,移动的距离越大;第二个是学习率 η(learning rate),是事先定好的值,η越大,w的更新幅度越大。为了满足斜率为负时w增大,斜率为正时w减小,应该使原来的值减去更新的数值.计算的式子如下。
<4>经过多次w改变之后,如果此时w的微分等于0,但他对应的并不是全局最小值,它对应的是局部最小值,但对于偏移量计算公式来说,已经计算不出下一个w。但是使用的LINEAR MODEL是没有局部最小值的,所以不影响。
(2)两个参数(w,b)
<1>选取两个初始值w0,b0
<2>计算w0,b0处的偏微分