分类
先介绍一种分类方式,这种分类方式是生成式(Generative)的。通过后验概率来进行分类(如:某一个物品在某一个类别的概率比较大,那么我们就认为这个物品属于这个类别)
不妨假设数据服从二维正态分布,考虑利用训练集确定二维正态分布所需要的参数,$\mu$和$\sum$分别是均值和协方差,二维正态分布密度函数的矩阵形式如下
参考: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,见下
标签:discriminative,Classification,分类,regression,协方差,generative,正态分布 From: https://www.cnblogs.com/ybx-tih/p/18036588