Classification 分类

1、理论方法:三步走

01

概率知识:贝叶斯公式(后验概率),高斯分布

伯努利分布 == 二项分布

高斯分布 == 正态分布

一般过程

假设一个机率模型

1、training data 估测一个gaussian distribution(高斯分布结果),通过高斯分布计算出新的x在范围内被选择出来的几率。

2、不同的高斯分布对应不同的likelihood(可能性),找到分布中,面对training data数据,标记概率(likelihood)是最大的,选择这样的分布,得到相应的参数。

02

穷举各种μ与ξ的值,然后通过图片方法计算,选择最大可能性的一组参数

3、每个class都要计算第二步,得到相应的(μ,ξ)。

4、分类计算,计算输入的x来自于不同的class的几率

03

5、效果不好的时候(比如二维空间分类分不出来),可以提高feature的维度,即增加输入向量的长度。(最后计算效果不好!!:triumph:)

改良处理

1、减少模型参数,参数越多越容易overfitting,让不同的class共用一个ξ,使得likelihood最大。

计算参数方式:μ的计算同上,ξ的计算不同,需要加权计算一下,likelihood函数也不同,如图下

04

相同的ξ,让boundary变成了直线,这也是linear model。

计算后得出准确率高了很多。

阶段总结——概率模型做(二)分类

05

相关数学知识(扩展)

1、linear model的导出过程:

06

07

08

logistic Regression

回顾分类设定的模型:

这是一个逻辑回归函数

09

2、通过训练集,选择出最合适的w,b参数:定义function的好坏

10
L是发生训练集所展现分类的概率函数,假设每个元素属于某一类都是相互独立的,所以计算L的方式是将计算出的概率(f函数)相乘。让L最大值所对应的w,b的值,就是我们模型中需要找出的w,b的值。

++++++++++++++++++++


下面是数学相关的L函数的化简整理

理解这几条:

  • 因为L是累乘的结果,为了方便计算,取ln变成累加,再整体取符号,化取最大值为取最小值。

  • 引入y^,(二分类中)y取1表示输入class1,取0表示属于class2.

  • 将每一项的形式都通过y^的引入而同一成相同形式

  • 统一出来的相同形式是两个二项分布的交叉熵,其中交叉熵越接近0代表两个分布越相同,我们想要的就是交叉熵尽可能接近0.

以下是ppt讲义部分:

11

12

其中y的取值只有1与0,f因为是个概率函数取值在0-1之间,所以方括号内的部分一定是小于零的,加上外面的负号会大于0,所以方括号越趋近于零,一个是代表两个分布越接近,另一个也是代表-lnL的值趋向最小,表示模型越来越匹配,所以交叉熵越趋近于0越好。

下面的H是交叉熵的计算方法。

于是我们可以得到逻辑回归(二分类)的判定模型好坏的函数L。



逻辑回归与线性回归的对比

13

Q:为什么不能直接使用线性回归的L函数(square error)当作逻辑回归的L函数,线性的相对而言更简单易算?

A:利用梯度下降的方式逼近最合适的w的时候,会出现无法区别距离实际值到底很近还是很远的状况,在梯度下降的时候会卡住,不容易得到好的结果:

16

3、通过Loss函数计算最佳w,b的方法:
数学问题,对Loss函数对w求偏微分,通过一系列变换,得到一个直观的结果。然后通过梯度下降的方法,求得loss的最低点w的值
14

总结对比

15

生成模型和判别模型对比(有些不懂)

(暂时理解)生成模型是最初的分类模型,计算ξ、μ参数的那个模型(假定过分布服从正态分布)

判别模型就是上面的概率模型,直接计算w,b参数的模型。

两个模型实质是相同的,(w,b),(μ,ξ)也都有一定对应关系,但是计算出的结果会发现参数的结果不同,也就是求出的具体模型是不同的。原因就在于生成模型提前有过很多假设,也对模型的计算产生一定的影响。

生成模型(generative model)的好处是:

  • training data很少的时候,生成模型受data的影响小,有自己的假设,有时反而表现很好
  • data可能本来存在问题的时候,因为受data影响小,所以可能表现更好。

判别模型的好处是:

  • 受data影响大,所以数据足够多足够准确的时候,计算出来的模型更优。

多分类问题(三分类为例)

(笔记记得稍微有点简单,先大体理解一下)

17

18

逻辑回归的限制

因为回归依旧是一条直线,所以总会存在,根本无法通过一条直线将类别分离的情况。

解决方式:Feature Transformation
将特征值转化
eg:
19

问题:如果找到合适的transformation?

回答:交给机器

进行多层的logistic regression,直到类别可以完全分开。然后将处理好的新的特征值,再进行逻辑回归,得到好的模型结果。
20

每一个逻辑回归又叫做“神经元”(neuron),整个网络是神经网络(neural network)

评论