李宏毅深度学习笔记-分类模型


李宏毅深度学习笔记 https://datawhalechina.github.io/leeml-notes
李宏毅深度学习视频 https://www.bilibili.com/video/BV1JE411g7XF

image-20200530144304634

假设有两个类别,label为1和-1

如果用回归的方式拟合模型,那么目标是1和-1

image-20200530144358665

把分类问题当成回归问题拟合模型会有问题,由于回归问题的损失函数一般都是均方损失

左图绿色绿色是正确的分界线,但是如果有一些数据点离得比较远,那么为了减小损失函数,分界线会变成紫色的那一条,对于分类问题来说,明显是不正确的

image-20200530154741719

看二分类问题一个简单的model,损失函数就是预测错误的次数,在\(f(x)\)中嵌入一个\(g(x)\)

\(g(x)>0\) 预测为类别1,否则就预测为类别2

这种损失函数无法微分,不过可以用感知机、SVM等算法求解。

在这里先引入一个概率模型

概率模型的原理

image-20200530160724936

  • 盒子1中随机抽一个球,蓝色的概率为4/5,绿色的概率为1/5
  • 盒子2中随机抽一个球,蓝色的概率为2/5,绿色的概率为3/5

现在随机从两个盒子中抽一个球为蓝色,那这个蓝色球是第一个盒子中的概率是多少?

这里就是贝叶斯公式\(P(A|B)=\frac{P(B|A)P(A)}{P(B)}\),求后验概率\(P(B_1|Blue)\):

\[\begin{aligned} P\left(B_{1} | B l u e\right) &=\frac{P\left(B l u e | B_{1}\right) P\left(B_{1}\right)}{P\left(B l u e | B_{1}\right) P\left(B_{1}\right)+P\left(B l u e | B_{2}\right) P\left(B_{2}\right)} \\ &=\frac{\frac{4}{5} * \frac{2}{3}}{\frac{4}{5} * \frac{2}{3}+\frac{2}{5} * \frac{1}{3}} \\ &=\frac{4}{5} \end{aligned}\]

概率和分类

image-20200530161152231

\(P(x)\)是一个边缘分布\(P(x)=P(x,\sum C)\),因为朴素贝叶斯计算了联合分布\(P(x,C_1),P(x,C_2)\),因此属于生成模型。\(P(C_1|x)\)就是x属于\(C_1\)的概率

先验概率

image-20200530162107691

image-20200530162356010

如何计算一个新的数据的分类?例如海龟没有在数据集中出现过,那怎么办?

之前说过,可以把数据做向量化,那一个数据就是有很多特征值组成的一个向量。

image-20200530162653409

有79个宝可梦(同属于water类的训练数据集),海龟没出现在数据集中,我们希望得到条件分布\(P(x|water)\)(用来计算\(P(water|x)\))

所有宝可梦都用一个向量量化,这样就可以计算概率值了,不过如何计算条件概率值?海龟都没有出现在训练数据集中。从概率分布角度看,不同类别的数据有不同的数据分布,数据点量化后,我们就可以计算这个分布。

假设宝可梦是从一个高斯分布中抽取的,那么可以通过训练数据集估计这个高斯分布,再去计算海龟从这个高斯分布中抽取的概率。

使用极大似然估计计算概率分布

image-20200530164121645

通过训练数据估计期望\(\mu\) 和协方差矩阵\(\sum\) 。期望是黄色的点,协方差矩阵是红色的范围。给一个新数据点\(x\),就通过概率分布计算概率。

极大似然估计

image-20200530201507476

任意期望和协方差矩阵的高斯分布都可以生成这79个数据点,只不过概率大小不同。像图中左边的高斯分布产生这些数据的概率大,右边的概率小。记\(L(\mu,\Sigma)\)为似然值

我们自然是取产生概率大的那个分布,也就是79个数据的似然值要最大

image-20200530202929325

\(L(\mu,\Sigma)\)求偏微分是0的点,即是 \(\mu^*\)\(\Sigma ^*\)

分类模型

image-20200530203442852

\(P(C_1)\)\(P(C_2)\)通过类个数/所有个数 计算

如果假设类分布式高斯分布,那么可以用每个类的训练数据计算每个类的\(\mu\)\(\Sigma\) ,进而计算出\(P(x|C_1)\)\(P(x|C_2)\)

最后计算出\(P(C_1|x)\)并进行判别

image-20200530204731872

左上图的意思是,越蓝为water类的可能性越低,越红为water类的可能性越高

右上图的是分类结果,红色区间是类别1,蓝色区间是类别2

右下图是test的分类结果,两个特征时的准确率很低,但是增加特征,就可以提高准确率,虽然结果也不是很好。。

这里又是什么问题呢?

image-20200530205501849

因为假设服从高斯分布,当特征比较多的时候,协方差矩阵的维数就比较高,意味着着model的参数较多,再给每个类拟合一个高斯分布,就可能导致过拟合。因此一般使用相同的协方差矩阵描述不同的高斯分布。

如何计算共用的协方差矩阵?

image-20200530210210986

修改似然函数,结合两个类的数据

\(\mu^1,\mu^2\)还是之前的算法,每个类数据的平均,共用的\(\Sigma\) 则是之前的加权平均

image-20200530210625882

用相同的\(\Sigma\),最后的分离超平面变成线性的

概率模型拟合三部曲

image-20200530210946300

实际就是最大化似然函数求出最合适的高斯分布

为什么使用高斯分布?其实是自己决定Function Set

一般都是根据假设,像二分类的一般都是假设伯努利分布

高斯分布和伯努利分布的区别和联系?

都属于指数分布簇,都是二项分布

image-20200530213409722

image-20200530213424116

至于为什么\(n\)无限大时,二项分布就是正态分布,则是棣莫弗-拉普拉斯极限定理


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM