机器学习课程笔记(二)

学习李宏毅《机器学习》课程笔记,具体视频可以到https://www.bilibili.com/video/av59538266/中观看。

Regression

股票预测(Stock Market Forecast)

f(历史股市情况)=明天的股市情况

无人驾驶(Self-driving Car)

f(道路状态,车辆状态)=方向盘角度等

推荐系统(Recommendation)

f(使用者A 商品B)=A购买B的可能性


例子:预测宝可梦进化后的CP(Combat Power)值(精灵宝可梦GO)

f(宝可梦)=进化后的CP值

一整只宝可梦表示为x,则CP值表示为xcp,xs表示宝可梦种类,xhp表示HP值,xw表示重量,xh表示高度,进化后的CP值表示为y。

Step1:Model

要找一个函数集(model)

假设是线性模型:y=W*Xcp+b

Linear model:y=b+sum(wixi)#xi表示x的一个属性的值,称之为特征feature

                                                 #wi为权重weight,b为偏差bias

Step2:Goodness of Function

找到评判函数好坏的方法。

首先要找到Training Data数据集:假设有10只宝可梦的数据已经有了(x1,y1)(x2,y2)......(x10,y10)

接下来定义一个函数的好坏:使用Loss function L:L(一个函数)=这个函数有多不好。L(f)=L(w,b)(因为f由w和b决定)

这里简单采用L(w,b)=sum((yhat-y)^2)#其中yhat是用f算出来的预测值

我们取使得L(w,b)最小的那个f

Step3:Best Function

找到一个让L(w,b)最小的f*

找到一个让L(w,b)最小的w*,b*

Gradient Descent(梯度下降)

只要L可以微分,Gradient Descent都可以解

使用Gradient Descent方法求使得L最小的w

随机找一个初始值w0

计算dL/dw|w=w0    若计算结果为负,说明斜率是负的,要增加w的值往下走

                                若计算结果为正,说明斜率是正的,要减少w的值往下走


机器学习课程笔记(二)_第1张图片
图1 一个参数时候的梯度下降情况  

每到一个点,就好像有个人在左顾右盼看看走哪边会使得L变小。

增加量为

因为现在的斜率越陡,就应该变得越大,越不陡就变化越小。


学习速率,一般也记为alpha,是人为规定的值,学习速率越大,变化越快,学习速率越小,变化越慢。

同理w2,w3........不断迭代(iteration)后,可能会到一个wT的斜率是0,然后学习停止了,仅仅达到了一个局部最优,而没有达到全局最优。

有两个参数的情况也是一样的。


机器学习课程笔记(二)_第2张图片

Gradient是

机器学习课程笔记(二)_第3张图片
机器学习课程笔记(二)_第4张图片
图2 两个参数时候的梯度下降情况  

线性模型是没有局部最优的,初始值在哪都一样。


偏微分的计算:

机器学习课程笔记(二)_第5张图片

结果:w=2.7,b=-188.4

通过计算点到直线的距离可以算出训练误差。

机器学习课程笔记(二)_第6张图片

再抓10只宝可梦将其数据作为test data。

同样,计算测试误差

机器学习课程笔记(二)_第7张图片

那么选择另一个模型会怎么样呢?

y=b+w1xcp+w2(xcp)^2

机器学习课程笔记(二)_第8张图片

训练误差和测试误差都更加小了。


那再继续给模型增加一个立方呢?

机器学习课程笔记(二)_第9张图片

虽然误差变小了,但是仅仅是小了一点点。


再继续增加呢?

机器学习课程笔记(二)_第10张图片

哦吼,结果更糟了。已经出事了。


再继续增加

机器学习课程笔记(二)_第11张图片

已经完全失败了,但是训练误差却很小。但是测试误差爆炸大。过拟合严重!


机器学习课程笔记(二)_第12张图片

光考虑一个cp值特征,不能很好的表示。因为进化后的CP值,还可能和宝可梦种类,体重,身高,HP有关。先把所有的特征都考虑进去。。。。结果发现。。。又过拟合了。

机器学习课程笔记(二)_第13张图片

怎么办?使用Regularization正则化。


机器学习课程笔记(二)_第14张图片

增加了一个入参数后,可以使得函数更平滑。就对输入不敏感,假如输入有噪声,那么受到噪声的影响也很小。

机器学习课程笔记(二)_第15张图片

发现入越大,Training error也会越大。然后发现入=100很适合。这个函数不能不平滑,也不能太平滑。

你可能感兴趣的:(机器学习课程笔记(二))