可以看出,利用生成模型计算得到的X属于Class2,而用判别模型因为X与唯一的属于Class1的训练样本一模一样,因此预测结果就是Class1。
从这里我们可以看出,生成模型在训练时会脑补出一些数据,可能出现一些训练集从来没出现的数据,比如(1,1)。
但通常由于判别模型解释性强,我们更倾向于相信判别模型,而生成模型是以概率假设为基础的,通常需要更少的训练数据,并且所得到的结果更具有鲁棒性。
5.多分类问题上面所说的LogisticRegression是针对二分类问题的,对于多分类后面作为单独的一节进行论述,这里主要说与LR回归类似的多分类回归Softmax回归。
Softmax回归类似于LogisticRegression,将数据通过w、b线性叠加后,结合softmax函数,即可以实现将其表达为每种类别的概率的形式,softmax函数如下:
那么上面softmax回归的过程描述如下:
假设样本有3个类别C1、C2、C3,那么:
然后计算得到的z1、z2、z3通过softmax函数,计算各个类别的概率,过程如下:
那么softmax的训练过程就可以类比LogisticRegression,过程如下:
这里的交叉熵比LR的形式上更简单,因为可以将类别y表示成三维:Class1:[1,0,0]、Class2:[0,1,0],Class3:[0,0,1]。具体过程就不再推导了。
6.LogisticRegression与神经网络联系文章开头提到,LR回归与神经网络有一定的联系,具体有着什么样的关系呢?
LR对于一组二维的数据,我们通过w、b的线性加权后,再通过sigmoid的函数将其进行分类:
那今天如果有下图这样一组数据,我们是否能够找到一个线性模型,将这两类数据分开呢?
如果单纯直接对数据进行分类,可能线性模型将不能将其分开,这时,我们可能需要找一些方法,将数据进行转换和重构,然后再进行分类。
那如果我将上面的二维数据进行转换,两个维度分别表示该点距离(0,0)的距离和距离(1,1)的距离,那么左下角(0,0)的点可以转化为:
x1=0;(0,0)距离(0,0)的距离:
x2=√2;(0,0)距离(1,1)的距离;
那么点(0,0)就转换成为了(0,√2),同理(1,1)转换成为了(√2,0),(0,1)转换成为了(1,1),(1,0)转换成了(1,1),转换后的数据如图:
这样转换后就能通过一条直线将数据分开了,具体的转换方法有很多,比如SVM中的核函数、或者专业领域知识。
上面的过程就是特征转换后再经分类器对样本分类,假设上面这一组数据经过线性的加权,然后再经过sigmoid函数,对原始数据进行转换,然后再作为LR的输入在进行分类,其过程如图所示: