实际上这两个方法的模型是一样的,只要是在做机率模型的时候把共变异数矩阵(Covariance matrix)设成一样的,它们的模型就会是一样的。
Discriminative可以透过梯度下降法直接把 的值找出来,而Generative就需要先找出 ,再带入公式把 找出来。
要注意的是,虽然我们是使用同一个模型,但因为这两种方法的假设不同,所以最後找出来的 也会不同。在Logistic Regression里面我们没有做任何假设,直接去找 ,而在Generative model里面,我们对机率分布(Probability distribution)是有假设的,可能假设是Gaussian、Bernoulli或是假设是不是Naive Bayes等等,根据这些假设去找 ,那这两个方法找出来的 不会是同一组。
从实验结果可以看出,Discriminative model会比Generative model好,但是为什麽会这样?
假设你有一笔训练资料,有两个class,每一笔资料会有两个feature,总共有13笔资料。
如果给一笔测试资料如下图,我们直觉会把它分类为 class 1,但Naive Bayes会把它分类成哪个类别呢?
对Naive Bayes来说,它不考虑不同维度的相关性,也就是认定这两个维度是独立产生的。我们在 class 2 里面没有看到像是测试资料这样的资料是因为取样的不够多,如果取样过多就有可能可以看到都是 1 的资料。
因此,Generative model跟Discriminative model的差别就在於,Generative model有做某些假设,假设你的资料来自於一个机率模型。
但Discriminative model不是在所有情况下都可以赢过Generative model,下面列出了几点Generative model有优势的时候。
下图是3个class的计算过程,从图中可以看出Softmax的输出就是拿来当作 的事後机率。
假设今天的资料如下图所示,我们就没有办法做分类。
这是因为逻辑回归的两个class之间的boundary是一条直线。
我们可以将原本定的不好的feature换成一个比较好的feature space,让逻辑回归变得可以处理,但是我们很难找出一个好的transformation。
因此我们可以让机器自己产生好的transformation,我们只要把很多个逻辑回归接起来就可以了。
结论就是,如果我们只有一个逻辑回归,我们没有办法分类这个范例,但如果我们把三个逻辑回归接在一起,就可以分类了。那如果我们把每一个逻辑回归都叫做一个神经元(Neuron),把这些逻辑回归串起来所形成的网路(Network),就是所谓的类神经网路(Neural Network),也就是在做深度学习(Deep Learning)。
gcc gcc 这边将介绍如何使用gcc将C语言程序码编译成可执行程序,以下将会介绍编译的过程,程序...
说故事之前,不免俗先自我介绍一下,我叫瓦力, 我的本行是一位插画家,也是一位斜杠青年, 我来自一个很...
现今的浏览器如 Firefox, Google Chrome 多以将仅 http 的网站和连结标注为...
聊完了区网中设备与设备的连结後,我们来近距离看看这三大设备:AP, Switch 和 Router ...
1.函数 在JAVA中,我们把函数称做method。 函数可用的语法如下: public stati...