昨天提到了生成模型(Generative Model),要去计算事前机率(Prior Probability),还有从类别取样出 的机率(Probability from Class)。今天就会从Probability from Class开始继续介绍。
可以想像成是一个function,输入为一个vector ,输出为 从分布里面被取样出来的机率。而机率的分布由 平均值 以及 共变异数矩阵 决定。
假设我们从一个Gaussian里面取样出这79个点,并能透过这79个点估测出这个Gaussian的平均值 以及 ,那我们找一个新的点 ,带入上图中的公式就可以算出 从Gaussian里面被取样出来的机率,从下图中也可以看到,如果这个 越接近 ,它被取样出来的机率会比较大。
每个Gaussian都有可能取样出这79个点,但它们取样出这79个点的可能性(Likelihood)是不同的。从图中可以看到左边的Gaussian可以取样出这79个点的可能性是比较高的,右边的Gaussian的可能性是比较低的。
如果给我们某一个Gaussian的 ,我们就可以算出那个Gaussian的Likelihood,也就是说给我们一个Gaussian的 ,我们就可以算这个Gaussian取样出这79个点的机率。
式子可以写成:
我们的目标是要找到一个Gaussian取样出这79个点的Likelihood是最大的,也就是说我们要穷举所有的 ,看哪个可以让Likelihood最大。
:找 的平均值,或是对 取微分,找微分是 0 的点解出来就是答案。
:先算出 ,再对所有的 都算 ,或是对 做微分,找微分是 0 的点解出来就是答案。
而有了两个 class 的 我们就可以做分类的问题了。
因为共变异数矩阵是跟输入的feature size的平方成正比,所以如果把两个不同的Gaussian都给不同的共变异数矩阵,你的模型的参数可能就会太多,参数多,变异数就大,那就会很容易导致Overfitting的情况发生。
那为了减少参数我们就可以给这两个class的feature分布的Gaussian同样的共变异数矩阵,再去计算Lilelihood,而 的计算方法跟前面提到的相同, 则是用 算出来的 分别去乘上 的个数,再除以两个class的个数总和,也就是加权平均。
从图中可以发现,如果共用同一个共变异数矩阵,它的boundary就会是一条直线,这样的模型我们也称之它为线性模型(Linear Model)。
之前提到机器学习就是三个步骤,那分类的机率模型也是三个步骤。
定义一个模型(model)
从模型里挑出好的函式(function)
经由演算法找出最好的函式
将前面 的式子整理一下之後就会发现,它是一个Sigmoid function。
Sigmoid function在机器学习基本功(三) --- Regression里面有介绍。
前面提到一般我们会假设共变异数矩阵是共用的,因此我们可以将 简化如下图所示。
即可将原本的式子写成 ,从这个式子就可以看出 的时候,你的 class 1 跟 class 2 的boundary会是linear。
<<: 每日挑战,从Javascript面试题目了解一些你可能忽略的概念 - Day9
>>: Day9:终於要进去新手村了-Javascript-运算子
在许多的输入中 很重要的核取方块 用於登入的勾选 ,资料的选取等等 利用 checked 判定核取状...
Q1. Quick Sort是什麽 与前天介绍的 bubble sort 一样,是一种计算排序的方法...
使用的python函式库为: sudo pip3 install adafruit-circuitp...
.“断言”( Assertion)是 SAML(安全断言标记语言)中使用的术语,相当於 OIDC(O...
本篇 Controller、ViewModel 跟 Day08 范例差不多 依照 View 的差异,...