Classification

分类

 

先介绍一种分类方式,这种分类方式是生成式(Generative)的。通过后验概率来进行分类(如:某一个物品在某一个类别的概率比较大,那么我们就认为这个物品属于这个类别)
不妨假设数据服从二维正态分布,考虑利用训练集确定二维正态分布所需要的参数,μ分别是均值和协方差,二维正态分布密度函数的矩阵形式如下

参考:2维正态分布-矩阵表示-推导过程_二维正态分布矩阵形式-CSDN博客

那么怎么求解这两个参数呢?用最大似然估计(Maximum Likelihood)

如下图,两组参数都可以sample出这79个点,但是likelihood大小不同

最大似然估计如下,就是概率密度乘起来 取对数 求导

分类流程如下

经过验证 发现结果不太好

修正一下模型,两个类别用同一组协方差,因为协方差和input的feature size的平方成正比,所以增长可以非常快,导致参数较多,容易过拟合,求解最大似然发现均值不变,但是协方差变成加权平均

发现这样的话分类的boundary会变成直线,像这样的model可称为liner model

其中如果这些dimension都是独立的,可以使用朴素贝叶斯(Naive Bayes Classifier)

发现可以用贝叶斯继续推导sigmoid函数

 最后得下式,这也就解释了为什么上面让两个协方差相等时候,会得到liner model

那么怎么求这两个参数,我们引入逻辑回归

 

逻辑回归(Logistics Regression)

对比一下Logistics regression和liner regression

为什么Logistics regression不用square error。因为如果求出这个 loss 关于 w 的偏导数,如果和最优点距离特别近的时候,肯定偏导是比较小的,但是如果距离特别远的时候,偏导也是很小,这样不利于求解。

 logist regression的方法是discriminative,而前面贝叶斯计算的方法是generative,我们对比一下,同样的model,但是求解的参数却不一样,因为generative的方法有假设,比如假设了高斯分布或者伯努利分布等等

 

 文献上常常会说discriminative比generative的performance更好一些,但是当generative的training data少时,也是有时候可以赢过discriminative的。discriminative受data影响大,generative受data影响小(抗噪音干扰)。

 

逻辑回归的缺点,下图的boundary显然不能用直线划分

 那怎么办呢,我们可以找一个比较好的feature space

就像这样,变换之后可以分割开了,但是难点就在于找合适的feature transformation,怎么让机器自己找呢,让多个逻辑回归模型串联起来

 

这便得到了neuron,neural network,deep learning

 

以上是介绍二分类,如果是三类或者更多呢

Multi-class Classification

使用softmax方法,强化大的值,大的值和小的值之间的差距变大,softmax不再是确定某一个最大值,而是为每个输出分分类的结果都赋予一个概率值,表示属于每个类别的可能性

流程如下,下图有个错误,算cross entropy时候公式要加个负号

但是要这么计算交叉熵的话,target也应该是一个probability distribution,见下

 可见MES更适合多分类:

 

posted @   ybx_tih  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示