机器学习4:分类classification
深度学习笔记四
本节课讲的内容是分类Classification.
上一节讲的regression主要解决的是输入一串数字,输出一串数字(譬如对股票价格的预测)。跟regression不同的是,classification主要用于针对输入的多维数据,输出一个判断(譬如输入一个图片,判断是什么动物)
有的人尝试使用 regression的方法来做,并且设定假如输出为1,判断为一个类型,输出为-1,判断为另一个类型。
这样有可能会得到好的结果,有可能会得到坏的结果
本图上左边结果是好的,分界线刚好能区分开,但是大多数情况是右图,一旦有一些偏离的很远的data,就会对分界线造成很大的扰动。在Bishop的书上将这种情况描述为:"Penalize to the examples that are too correct"所以其实regression的定义不是很适用于classification的。
理想的模型应该是:
即在f(x)内再内建一个函数g(x),当g(x)>0时,是class1;其余情况,是class2
损耗函数表达的意思是尽量使判断出来的类别和真实的类别不一样的次数最小。
我们首先从概率的角度来求解:
P(c1|x)表示x是属于C1的
P(x|c1)表示C1中取样得到x的概率
P(c1)表示在C1中取样的概率
现在我们需要通过样本来估测得到P(x|c1).
我们假设P(x|c1)服从高斯分布,即:
我们需要找到最准确的高斯方程来代表P(x|c1)
最准确的高斯分布,用其高斯分布算出来的概率应该是最高的
所以我们定义一个loss函数L,L等于C1内所有training set的计算结果的乘积
将其求导取极值,算出L等于极值时的参数µ和Е
现在我们就得到了在C1内概率,同理求得在C2内的概率。
这样我们就可以用这两个概率函数来进行分类了。
分类的规则是:将数据分类为概率最高的那一类。
但是结果并不好。
仅仅有50%左右的概率分类对。
为了增加正确率,我们更改模型,让不同类的高斯分布函数共用Е
这样的结果会让边界变成线性的
我们会发现,这样的结果比之前好很多