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更适合多分类:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!