李宏毅机器学习三天速成~~~第二课~~~Regression

目录

第一步:选择模型Model

第二步:模型优良度(Goodness)的计算方法

第三步:Gradient Descent梯度下降

四 开始实验

Regression的输出是一个标量,如下图

下面利用一个example来学习,神奇宝贝宝可梦的升级计划。

宝可梦升级后的的战斗力(Combat Power,下面用CP值代替)的预测。

第一步:选择模型Model

首先选择宝可梦的升级模型

y=b+w* {x_{cp}}

其中y是宝可梦升级后的cp值,{x_{cp}}是宝可梦升级前的CP值,b,w是Model的参数。这是一个简单的线性模型。

第二步:模型优良度(Goodness)的计算方法

这里引入一个概念叫做损失函数Loss Function

计算损失函数的方法为

上面式子中为真实数据中宝可梦升级后的cp值,为预测model中宝可梦cp值的预测值。

在函数集合Model中拟合最好的function的损失函数数值最小,训练数据的目标就是找到最好的function,那么如何在函数集合Model中找到最好的function呢?如何寻找就要利用梯度下降。

上图中画X的地方就是损失函数最小的function对应的参数w,b。颜色越蓝,损失函数值越小。

第三步:Gradient Descent梯度下降

Gradient Descent是为了寻找损失函数值的最小值,如何寻找最小值,运用到积分学中求最小值的方法,计算损失函数对每一个一个参数的微分函数,还是用图解释吧

上图中“猴子”站的地方就是w的初始值的位置,可以看见初始值处的loss值不是最小值,等价于该点处的导数值也不等于0,所以w值要向loss值减小的方向移动,怎么移动呢,按照以下规则移动:

1.如果所处位置的损失函数的导数值为负(导函数的线向下,如上图蓝色虚线线),w增加

2.如果所处位置的损失函数的导数值为正(导函数的线向上),w减小

移动的数值如上图中画红色框框所示,其中\eta为learning rate(学习速率),当损失函数越陡峭(损失函数的导函数的绝对值越大),移动的数值越大。

知道移动的方向和移动的数值之后(其实这就是梯度下降),经过多次移动将会移动到最小值处,见下图。

但是有一个问题就是可能会移动到局部最优的“坑”(这里的坑就是损失函数的最小值处,非极小值处,上图可以看见两个坑。)里去,但这不是全局最优的结果,这和w的初始值选取有关,不同的初始值会下降到不同的“坑”中,如何解决这个问题不是现在所讨论的,以后我再深入展开。

找到“坑”,坑对应的w值就是最优function的参数值,这就从Model中找出了最优的function。

如果损失函数涉及到多个参数(即Model中有多个参数),那就需要利用偏导数的方法找到每个参数对应的“坑”,见下图。

四 开始实验

首先选取的函数集Model是线性函数,利用Training data对Model进行训练,得到Model中最优function,见下图。

上图中b=-188.4,w=2.7为线性函数中的最优解,利用该函数得到的平均误差为31.9,下面用测试数据对其进行测试

那么线性模型就是最好的吗?不要急,一个个试一下,下面用一个复杂一点的Model,如下

利用这个model进行训练,得到的结果和测试的结果数据如下:

看起来结果是要比线性的要好一点,那么Model再复杂点

结果如下:

再复杂点:

结果如下:

这个结果就糟糕透了,看来并不是Model越复杂,结果越好。

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值