第二周:李宏毅机器学习周报

目录

摘要

Rregression:Case Study

Classfication

总结


摘要

这周主要学习了regression的关于宝可梦预测的学习案例和clssfication(分类),主要是基于概率模型的分类方法。

Rregression:Case Study

1.Regression Case

Regression可以应用在很多方面,例如Stock Market Forecast(股市预测)、Self-driving Car(自动驾驶汽车)和Recommendation(推荐)。

2.预测宝可梦的CP(战力)值

这里主要是通过讲解案例预测pekemons(宝可梦)进化后的战斗力,在这里我们要寻找的一个函数,input为宝可梦,output为宝可梦进化后的cp值。

5b0259f20bba4dd1ab63f70aeedf16c8.jpg

f(某一只宝可梦相关的infomation)=进化后的CP值

输入X:某一只宝可梦,Xs:它的种类;Xhp:它的生命值;Xw:它的重量;Xh:它的高度;Xcp:它的CP值,输出Y(一个数值)

48692d03439b4dd38fd54d6c0253a637.jpg

Y=b+w*Xcp (w和b是参数,可以是任何数值)
,形如这种例子的模型被称为线性模型。

676f5480564c4fe08a47150e4aa7dbb4.jpg

3ae33da4be52463ca97563ff93d2facb.jpg有了这些真实的数据,如何衡量模型的好坏呢?可以通过损失函数(Loss Function)来衡量模型的好坏。
L函式实际是对评估参数w、b的好坏(这里采用的是最小二乘法)。

16fc1f948c2c4c7595ca4812138eb9c2.jpg
将损失函式作图如下,其中横轴是参数b,纵轴是参数w,颜色代表Loss函式的好坏,越接近红色表示Loss函式输出越大,对应的function越糟糕,反之越好。

277a47b24251455a9accea24e05bf704.jpg
在function set里找到最好的function

第一种方法:穷举法,把所有可能的w和b值带入Loss Function。

489c83b5a27d42a19dff8d86f64361e9.jpg

第二种方法:梯度下降法
与第一章学习中的方法一样,分一个参数和两个参数两种情况

38299e80def3415a848f1443833cd93e.jpg
fc4bc85cd20b43679c2b8c1d932c8660.jpg对于Linear Regression,无Local minima,梯度下降基本上都能找到最优点。

5a049e52ece84d078dce755f5f4556f1.jpg
按照这种方法更新参数,实际上Loss函式的值沿着法线在更新


实际结果

使用训练集(10组数据上图)和测试集(另外10组数据)的平均误差来验证训练好的模型的好坏。

614ba9dc3bd64f40a98ba166f98ffeee.jpg

1.最简单的线性模型

3ab9067e4cfd458fb70e73d52d7053f6.jpg
2.进一步优化模型,将多个线性模型合并成为一个线性模型。

5939b22b38bf4c979c8c74a46730a95c.jpg
4a78c3997abe428e9e521e59d510c11e.jpg
86af2b49ea9247acaa22f069dd6ee8ea.jpgab13b8a0e94c41ce92044afc5426be71.jpg0fdf691493904e9e80907dfe0dd30c80.jpg

       在训练集上表现更为优秀的模型,为什么在测试集上反而变差了?原因是模型在训练集上过拟合。

       越复杂的模型,训练集上error越来越低,但不一定在测试集上有better performance。因此要选择合适的模型。04b7a01405e24f34af0614941b9f89e1.jpg       如果希望模型更强大表现更,则需要更多参数即更多input,加入血量,重量,高度等新的特征

2595fde643fa40079514529b0d45d48a.jpg

79679bdf62cc40769cff8e43cb46b975.jpg

3eaf50c6047e4692a7d2f4616fb5dc1e.jpg

8ec1ed69500b4e1e9742cbddd8ad0e06.jpg

但当特征值数量达到一定数量时,再增加特征的话,数据量没有明显增加,发生过拟合。

加入正则化(Regularization),使其更平滑。

93ea5f8d1c6b49749b7b11435ee44891.jpg
f524a997dba44f7ab757a30f82fd1fde.jpgw越小,表示function较平滑,当更多特征,但是权重 w 可能会使某些特征权值过高,仍旧导致overfitting,所以加入正则化。

Classfication

        分类是指输入一些相关信息之后,模型在诸多选择中选出最符合预期的结果。

866fc7e636444926aa2593baef65f433.jpg

以宝可梦为例,如下图,输入不同的宝可梦,对应应该输出宝可梦的属性。

61f321fd6cc34177ae966d4f1339ceae.jpg

怎么将其数值化作为函数的输入?
以比卡丘为例
Total:整体强度,大概的表述神奇宝贝有多强,比如皮卡丘是320
HP:生命值,35
Attack:攻击力,55
Defense:防御力,40
SP Atk:特殊攻击力,50
SP Def:特殊防御力,50
Speed:速度,90 ,数值大可以先攻击
上述7个数字组成一个向量。

24b7770ccaeb4084adcd8ef1317b7049.jpg

使用回归解决分类问题:binary classification(二元分类)
我们在Training时让输入为class 1的输出为1,输入为class 2的输出为-1;那么在testing的时候,regression output是一个数值,它大于0接近1则说明它是class 1,它小于0接近-1则说明它是class 2。

7982031533cd41d1accc5441ce077efb.jpg

这样存在的问题:
1.就比如此时,右侧class1中右下角的这些点,如果仍然采用绿色那条线所代表的函数进行预测,这些新加入进来的点的误差将特别的大,为了缓解由此带来的误差,绿色的线将往右下角偏移,以此减少误差。

2.Regression的output是连续性质的数值,而classification要求的output是离散性质的点,我们很难找到一个Regression的function使大部分样本点的output都集中在某几个离散的点附近因此,Regression定义model好坏的定义方式对classification来说是不适用的。

分类的损失函数,也就是统计学习方法中的0-1损失函数

e655c3fe613a44308949650f7a9bcaf4.jpg

4. 贝叶斯估计

a78ac500520b40df833a497503e9d605.jpg

我们将上述问题进行泛化,生成概率模型其实是先假设数据的概率分布(正态、伯努利、泊松),然后用概率公式去计算x所属于的类型p(C1​∣x),则公式如下所示:ea674ace4a124f2a8064f74f8eb639f3.jpg

  其中P ( C 1 ) 和P ( C 2 ) 是通过类别个数的频数来计算的。76d8993613304f08a9977d6b60a7a808.jpg 怎么确定所给宝可梦属于水系的概率是多少?

35034b7e23834e92be1923b9844222b1.jpg以二元分类为例,假设现在有两种分类,一种是水系,另一种是一般系。用宝可梦的水系和一般系的作为traning data,其余的用作testing data。现在traning data有79只水系,61只一般系,可计算得他们的概率。数据对应的均值和方差,我们可以通过已有的79个样本和极大似然分布得到。

ba1c48ef57154cdd939c5f2acff8bc62.jpg

将每只宝可梦都用他们的多个特征作为一个向量来表示。在这里用防御力和特殊防御力作为一个二维向量来表示宝可梦。

Gaussian Distribution (正态分布/高斯分布

对于高斯函数,这里表示均值μ,表示协方差 Σ,两者都是矩阵matrix,输入vector x,得到输出的是一个sample 出x的概率密度。

下图中可以看出,同样的 Σ,不同的μ,概率分布最高点的地方是不一样的。

6fa55f3f09a04737ae1d7cb5db25e102.jpg

那接下来的问题就是怎么去找出这个Gaussian 函数,只需要我们去估测出这个Gaussian的均值μ和协方差 Σ

估测均值μ和协方差的方法就是极大似然估计法(Maximum Likelihood)a537c14427ea48ba8bfce74a4ff464f7.jpg

  任意的高斯分布(任意的均值向量和协方差矩阵)都能生成图上的样本点。由于数据是独立同分布的,所以最终的概率值为各个点的概率之积。a2ca357b30d3404bb4ddfef44ed52dcc.jpg 

总结

通过宝可梦CP值预测的例子学习,让我明白了机器学习是要干嘛这件事情,在该学习案例中通过三个步骤去完成CP值的预测,首先是要选择一个Model,其次判断选择的function是否合适,最后选择一个最优的function。通过将宝可梦的特征数量值输入该function,可以得到该宝可梦进化后的CP预测值。通过二分类问题以及高斯分布,了解了基于概率模型的分类解决方法,我将在下周继续学习高斯分布的数学推导。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值