李宏毅机器学习第三周学习笔记


摘要

预测神奇宝贝战斗力值当中,依旧是按照机器学习的三个步骤进行预测,其中使用到了梯度下降的方法,在梯度下降当中,要使损失函数L(w)的值减小,只需让回归系数向与当前位置偏导数符号相反的方向更新即可。当寻找一个更优的function时,并不是越复杂越好,过于复杂时,容易出现过拟合的现象,也就是在训练集上表现好,而在测试集中表现差,相对的欠拟合,是在训练集上表现差。分类问题是很常见的一类问题,可以用于垃圾邮件的分类、医疗诊断、手写文字的辨识、人脸识别等。分类问题中又可以分为二元分类问题和多元分类问题,多元分类问题可以将其转化为二元分类问题,解决分类问题时可以使用多种解决办法,例如:线性回归、逻辑回归。逻辑回归中常用的损失函数是交叉熵损失函数,用于衡量真实概率分布与预测概率分布之间的差异。

Abstract

In the prediction of Pokémon combat power value, the prediction is still done according to the three steps of machine learning, in which the gradient descent method is used. In the gradient descent, to make the value of the loss function L(w) decrease, simply let the regression coefficient update in the direction opposite to the sign of the partial derivative of the current position. When looking for a better function, it is not better to be more complex. When it is too complex, it is easy to have overfitting, which means that it performs well on the training set and poorly on the test set, and the relative underfitting, which is poor performance on the training set. Classification problems are a very common class of problems that can be used for spam classification, medical diagnosis, recognition of handwritten text, face recognition, etc. Classification problems can be divided into binary classification problems and multivariate classification problems. Multivariate classification problems can be transformed into binary classification problems, and a variety of solutions can be used to solve classification problems, such as linear regression and logistic regression. The commonly used loss function in logistic regression is the cross-entropy loss function, which is used to measure the difference between the true probability distribution and the predicted probability distribution.

1 预测神奇宝贝的cp值

1.1 Model

在预测宝可梦的cp(战斗力)的时候,先假设一个线性model,其中w和b是任意的参数,那么在一系列的function中我们需要找到合适的function,排除掉不合理的function,xi是输入X的属性,w是weight,b是bias。
在这里插入图片描述

1.2 Goodness of Function

接下来就需要搜集数据,拥有training data之后就可以知道哪一个 function是好的,或者是不好的。因此,需要定义一个loss function,这是一个比较特别的function,该function是一个嵌套的function,即输入一个function,输出内部function的好坏,内部function的参数时w和b,即L的参数也是w和b,那么我们该如何去定义这个Loss function呢?在这里使用 y ^ \hat{y} y^(是真实值)与预测值 (b+w* x c p n x^n_{cp} xcpn)的差的平方来估测误差,再将所有数据带入后对所有的误差进行求和,那么大当估测误差越大,该function就越不好。
在这里插入图片描述

把L(w,b)作图出来如下,再图中的每一个点代表每一组W和b,而颜色代表根据我们所定义的function的好坏,越偏红色则代表function越不好,越接近蓝色则代表我们定义的function越好。
在这里插入图片描述

1.3 Best function

当我们衡量了一系列function的好坏之后我们需要挑选出最好的function,寻找最小的L(f),我们可以定义为一下function,接下来我们可以穷举所有的w和b带入到function中,找到那个最小的L(f),寻找到的w和b即为最好的。如何计算得出这个最小的w和b呢,可以使用线性代数的知识,也可以使用梯度下降的方法,再这里使用梯度下降的方法。
在这里插入图片描述

1.4 梯度下降原理

接下来我们用梯度下降来计算,暴力的方式是使用穷举的方法,一直找到最小的L,但该方法效率低,那么使用梯度下降的方法:随机选取w0的值,接下来在初始的w0的位置对L的微分(即切线斜率)为负时左边loss较高,右边loss较低,那么我们需要增加w的值,如果斜率是正,则应该减少w的值,减小参数,那么如何增加?增加多少呢?增加多少取决于现状的微分值多大,如果微分值越大那么就需要跨越大,反之则越小,还取决于常数项,learning rate,参数越大更新越大,参数越小更新越小,参数是提前定好的。那我们将更新w的值,再重复更新,到我们算出来的微分为0 时为local optimal,这时候我们没法再继续进行更新,但此时我们还没有global optimal找到最小的L,但对于regression没有local optimal。
在这里插入图片描述
刚刚是单个参数的问题,当有两个参数时该如何计算呢,那么我们的步骤是一样,随机选取两个初始值,w0和b0,再分别计算他们的微分,接下来再进行更新,再反复执行这个过程,最后就可以找到一个相对较小的L。
在这里插入图片描述
在下图中,每一个点都是由w和b组成,随机选取一个点,分别对w和b计算偏微分,即红色箭头的方向为图中等高线的法线,再进行更新,更新之后再继续下一个点的更新。
在这里插入图片描述
但梯度下降有一个令人担心的地方,当选取的起始点不一样时找出的最小L不一样,那么线性的regression则没有这个问题,从所有的点出发,找出来的参数都将是同一组参数,即没有local optimal。
在这里插入图片描述
分别对W和b求微分结果如下:
在这里插入图片描述

1.5 Generalization结果

那么计算的结果如何呢?在training data中的误差为31.9,但实际上我们真正需要的是testing data的误差,经过收集数据之后计算得到的误差为35,比训练数据更差一点,那么如何能做的更好呢?我们可能需要引入更加复杂的function。
在这里插入图片描述
我们找到平方function,按照相同的方式计算,得到b和w的值,最后在training data中得到的error是15.4,在testing data中是18.4,相比较与没有考虑平方项时减小了很多。那么接下来我们可以考虑更复杂的function。
在这里插入图片描述

1.6 欠拟合与过拟合

1.6.1 欠拟合

定义:预测误差在训练集就比较大,明显由bias引起。

解决办法:
1、增加特征数量
2、选用更复杂的模型(线性模型变高次多项式模型)

1.6.2 过拟合

定义:预测误差在训练集较小,但在测试集中应用时显著增加,明显由varience引起。

解决办法:
1、减少特征数量
2、获取或者构造更多训练数据
3、正则化(regularization)
4、模型过于复杂,选取合适模型

使用三次时结果比二次项稍微好一点点,那么更复杂的function,四次方时training data比三次的好一点,testing data中四次方比三次方数据变得更高那么继续换更复杂的model,那么五次function时比四次更糟糕。经过多次复杂的model之后,在training data中得到更好的结果,但是在testing data中并没有得到更好的结果,那么这个现象叫做过拟合。那么为什么会有这个现象呢?因此,model不是越复杂越好,我们需要选择合适的model
在这里插入图片描述

1.6.3 正则化(Regularization)

当复杂的function很有可能会过拟合,可能可以删除一些没有用的input data,但我们可以使用regularization,他需要做的事情是重新定义一个loss function,regulation将加上一项, λ \lambda λ乘以所有wi平方的和,那么error越小,那么function越好,那么参数值越接近哦,那么function越好,当加上后面那一项的时候,曲线是比较平滑的,即当输入有变化时,output对输入的变化比较不敏感,那么为什么喜欢比较平滑的function?因为,如果有在noise的时候,平滑的function受到影响比较小,得到的结果也就会更好。在做regularization时不需要考虑bias,因为bias只是上下平移,并不会影响function的平滑程度。
在这里插入图片描述
那对最终的结果会有什么影响?当 λ \lambda λ的值越大得到的function就越平滑,考虑的training error越小,那么function并不是越平滑越好,当function成为一条水平线时,function就没有意义了,那么需要多平滑呢?那么我们需要调整 λ \lambda λ,来调整参数。
在这里插入图片描述

2 神奇宝贝分类

2.1 分类问题

分类问题:可以用于信用得分、医疗诊断、手写文字的辨识、人脸识别。
那么我们还是以宝可梦为例,输入宝可梦的种类,因此我们需要找到一个function。宝可梦的特性进行数值化,使用一组数字来描述它,例如:攻击力、防御力、攻击速度等。

2.1.1 二元分类

定义:简单来说就是两个类别的分类问题。
本例子中举例,宝可梦有18个系,现在我们将水系和一般系进行分类。其中蓝色是属于一般系,绿色属于水系。
在这里插入图片描述
如果有两个类别C1、C2,里面分别包含了 N1、N2个元素。现从两个类别中随机挑出一个元素x,该元素x来自 C1的概率可由贝叶斯公式算出:
在这里插入图片描述
在这个公式中,P(C1),P(C2)的值显而易见:
在这里插入图片描述
在这里插入图片描述

2.1.2 高斯分布

接着,我们假设元素x是从多维高斯分布(GaussianDistribution)中选取出来的,则有:
在这里插入图片描述
在这个表达式包含两个参数:均值 μ,协方差 ∑。
在这里插入图片描述
如果假设选取样本 Xi 相互独立,那么所有样本来自该集合概率为:
在这里插入图片描述
在这里插入图片描述
我们从拥有的数据中举例,从高斯分布中产生最大可能性的μ与∑,那么最大高斯分布就是最终的高斯分布, 接下来穷举所有的μ和∑,使得上面的式子最大,那么这个μ和∑就是我们最终需要找的,那么该怎么做呢,下图中,找微分为0 的点,可以求X的平均值,那么就是μ*,那么 ∑* 的解法可以是先求出 μ*,再进行计算,也可以求 ∑*微分为0 的点。
在这里插入图片描述
那么拥有μ和∑,就可以进行分类问题了,那么接下来该如何计算
在这里插入图片描述=在这里插入图片描述
呢,把拥有的数值进行带入。如果得到的值大于0.5那么就是水系的,否则就是一般系的。
在这里插入图片描述
当两个不同的高斯分布参数过多时,就容易过拟合,如果有效减少参数,那么我们可以让两个高斯分布的∑强制相同,那么我们就可以使用更少的参数来分类,意思就是,前面79个数据中计算得出的μ1,与后面61个数据中计算得出的μ2,,μ的计算跟之前的计算方法是一样的,那么两个高斯分布中相同的∑的计算方法是,先分别计算出两个高斯中的∑1和∑2,再加权求平均值,就是共同的∑,
在这里插入图片描述

2.1.3 Modifying Model

当使用相同的∑时,我们把模型进行修改,这样就能够减少参数:
在这里插入图片描述
在这里插入图片描述
下面就是使用相同∑的结果,当两个高斯使用同一个∑时,得到的分类界限就是一条直线,这样的model也叫线性模型,如果是像曲线那么的就不叫线性模型。那么考虑所有的feature时,也是使用该线性模型,得到的正确率是73。那么这个结果是如何出来的呢?当有多维feature时,机器学习可以帮我们学习出来,当只有2维数更少时,人为可以看出来,那么就不需要机器学习了。
在这里插入图片描述
回顾机器学习的三个步骤;第一步的function set是一系列中,function中的概率分布就是参数,选择不同的概率分布,那么就可以得到不同的function,那么高斯选不同的μ和∑,那么就得到不同的高斯分布,将所有的function集合起来就是function set,那么如何知道是那个类呢,如果概率大于0.5就是类别1,否则就是类别2,接下来就是要评估function的好坏,我们要评估高斯中的参数也就是μ和∑,那么就是要找一组最好的参数。
在这里插入图片描述

2.1.4 逻辑回归

我们将概率解法中的贝叶斯公式稍作变形可得:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将其进行转化得到一个SIGMOD function,这里的 σ ( z ) \sigma(z) σ(z) 是sigmoid函数,其中自变量z为:
在这里插入图片描述
再进一步计算化简:
在这里插入图片描述
之前所说的∑1和∑2是一样则可以进行简化:
当整理之后得到最下面的式子,从这个式子中久可以看见高斯分布中的界限是一条直线,这是一个linear的model,这样就是为什么∑1和∑2一样的时候,高斯分布的界限是一条直线。当我们求出N1,N2,μ1 μ2 ∑的值时,就可以知道w和b的值,那么我们能不能直接把这两个参数求出来?
在这里插入图片描述
在这里插入图片描述
最终得到的function为:
在这里插入图片描述
在这里插入图片描述
在上面这个式子中,取不同的w和b就可以得到不同的function。

2.1.5 多分类问题(Muti-Classification)

学习了二元分类问题之后,我们解决多元分类问题通常有两种解决办法:
将多分类问题划分成n个二分类问题。
softmax函数替代sigmoid函数作为预测函数。

2.2 交叉熵损失函数(Cross Entropy Error)

交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。交叉熵在分类问题中常常与softmax是标配,softmax将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。
在这里插入图片描述
在这里插入图片描述
为什么不用平方代价函数了呢?从函数图像中可以很清楚的得知原因。平方代价函数的梯度在接近目标值时趋近于零,但在离目标值很远的时候梯度仍然趋近于零,即使通过增大learning rate,也不知道距离目标是很远还是很近,这就有可能导致我们无法用梯度下降的方法来优化参数向靠近目标值的方向移动。然而交叉熵代价函数在远离目标值时会提供一个很大的梯度值,更新速度越快,越靠近目标值相应梯度越小直至趋近于零,这显然是符合梯度下降步长要求的。
在这里插入图片描述

3 线性回归与逻辑回归的区别

在这里插入图片描述

3.1 线性回归

线性回归一般用于预测连续值变量,如房价预测问题。
代价函数为MSE(均方误差):

3.2 逻辑回归

逻辑回归虽然叫做回归,但是其主要解决分类问题。可用于二分类,也可以用于多分类问题。
由于线性回归其预测值为连续变量,其预测值在整个实数域中。而对于预测变量y为离散值时候,可以用逻辑回归算法(Logistic Regression)。逻辑回归的本质是将线性回归进行一个变换,该模型的输出变量范围始终在 0 和 1 之间。
综合,两者的区别如下表:

线性回归逻辑回归
输出连续值,两个以上的输出离散值,通常两类输出(0,1),但也可以有多类
系数解释保持其他变量值不变,增加某个变量,预计因变量会变化多少系数与概率因素有关
线性关系需要自变量与因变量间的线性关系不需要自变量与因变量间的线性关系
残差分布要求误差服从正态分布不要求误差服从正态分布
损失函数最小平方误差交叉熵损失函数
函数拟合函数预测函数
参数计算方式最小二乘估计最大似然估计
目的预测分类
本质线性回归经过sigmoid变换,值变化到(0,1)

3.3 逻辑回归的局限性

function的界限是一条直线有可能没有办法准确的分出两个类别,要解决这个问题我们可以转化不同的feature,得到更好的特征空间,使得逻辑回归可以将两个类别分开。

在这里插入图片描述但是怎么做feature的转换呢,如果使用过多的时间来做feature转换,那就是不是机器学习了,我们不知道怎么找feature转换,那么如何让机器产生feature转换呢,将很多的逻辑回归模型组合起来,每一个feature转换看做是一个神经元,很多的神经元组合在一起就是神经网络,再将转换的结果进行分类得到output。
在这里插入图片描述

总结

1、有时候function不是越复杂越好,如果过于复杂很有可能会出现过拟合的现象,当function的图像出现断线部分时,可以考虑更多导致断线的因素,这样也能够得到更加全面准确的结果。
2、在做regularization时不需要考虑bias,因为bias只是上下平移,并不会影响function的平滑程度。
3、线性回归与逻辑回归的本质区别是,逻辑回归的是将线性回归进行一个变换,该模型的输出变量范围始终在 0 和 1 之间。
4、凡是都不是完美无缺的,总有一定的局限性,逻辑回归的局限性是有时候它没有办法把两个类别准确的分开,这种情况下就需要对feature进行转换,当我们考虑使用多层的sigmoid函数进行嵌套将feature进行转换时,就产生了机器学习中的神经网络。

参考:
回归问题
分类问题
Cross Entropy
线性回归与逻辑回归
线性回归与逻辑回归的联系与区别

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值