分类——生成模型

Posted Caaaaaan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分类——生成模型相关的知识,希望对你有一定的参考价值。

分类:概率生成模型

Classification: Probabilistic Generative Model

回归做分类?NO!

——用Regreesion强制做Classification

——NO!!!!

以二分类举例的情况下,如果回归的数值越接近于1,则我们认为是正类;否则为负类。

在这样的训练集上进行回归,某种程度上是能够拟合出一个较好的分界,使得上述成立。

但是,也有可能是,属于某个正类的回归预测值非常非常大,这样的情况下,它会error地得到另一个分界

因为回归定义分界的好坏是(Loss Function),是点到线的距离差的平方和(某种Loss Function)

这种定义对分类来说,是不适用的

而且,这种情况下,相当于默认了某种Class的关系

比如,在多分类问题里:

——我们将Class 1 means the target is 1; Class 2 means the target 2;Class 3 means the target 3;…

在这种情况下,我们有可能会认为第二类与第三类比较近,第四类和第三类比较远,但实际上,我们的类上并不存在这样的关系。

做法

  • Function(Model)

    输入x后,若f(x)>0 则输出类型1;否则输出类型2

  • Loss Function
    L ( f ) = ∑ n δ ( f ( x n ) ≠ y ^ n ) L(f)=\\sum_n\\delta(f(x^n)\\neq \\haty^n) L(f)=nδ(f(xn)=y^n)
    我们希望它预测错误的次数越少越好

  • Find the best function:

    • Example:Perceptron,SVM

生成模型

利用条件概率——贝叶斯公式进行分类

假设给我一个x,那么这个x属于Class 1的几率就为
P ( C 1 ∣ x ) = P ( C 1 ∗ x ) P ( x ) = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P(C_1|x)=\\fracP(C_1*x)P(x)=\\fracP(x|C_1)P(C_1)P(x|C_1)P(C_1)+P(x|C_2)P(C_2) P(C1x)=P(x)P(C1x)=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)
属于哪个类的概率越大,则x属于这个类

——如何得到 P ( x ∣ C 1 ) P(x|C_1) P(xC1)

高斯分布

假设说,我们没有见过这个x,那么在训练集上,这个 P ( x ∣ C 1 ) P(x|C_1) P(xC1)的概率就是显而易见为0——这是不正确的!

因为这个x其实是——特征向量(A feature vector)

我们可以理解为——我们的训练集是,从一个Gaussian的分布里(也可能是别的分布),采样出来的点,我们通过研究采样的点,来找到Gaussian的分布

——高斯分布(即正态分布)——也可能是别的密度分布函数

——本质上,我们输入一个vector(特征向量),那么在分布里,我们就能找到,采样到这个向量的可能性(即分布中常提到的密度分布)

  • 输入:vector x
  • 输出:Sampling x的可能性

这个分布函数的形状,取决于mean μ \\mu μ covariance matrix Σ \\Sigma Σ

——即取决于均数和协方差矩阵

——注意,这里的均数 μ \\mu μ也是一个vector

f μ , Σ ( x ) = 1 ( 2 π ) D / 2 1 ∣ Σ ∣ 1 / 2 e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f_\\mu,\\Sigma(x)=\\frac1(2\\pi)^D/2\\frac1|\\Sigma|^1/2exp(-\\frac12(x-\\mu)^T\\Sigma^-1(x-\\mu)) fμ,Σ(x)=(2π)D/21∣Σ1/21exp(21(xμ)TΣ1(xμ))

如何找到 μ \\mu μ Σ \\Sigma Σ

Maximum Likelihood

比如你有79个点,那么就这个分布采样出这79个点的概率是最大的

——Likelihood Function

L ( μ , Σ ) = f μ , Σ ( x 1 ) f ( x 2 ) . . . f ( x 79 ) L(\\mu,\\Sigma)=f_\\mu,\\Sigma(x_1)f(x_2)...f(x_79) L(μ,Σ)=fμ,Σ(x1)f(x2)...f(x79)

我们希望找到 μ ∗ , Σ ∗ \\mu^*,\\Sigma^* μ,Σ, 使得 a r g max ⁡ μ , Σ L ( μ , Σ ) arg\\max_\\mu,\\SigmaL(\\mu,\\Sigma) argmaxμ,ΣL(μ,Σ)
μ ∗ = 1 79 ∑ n = 1 79 x n Σ ∗ = 1 79 ∑ n = 1 79 ( x n − μ ∗ ) ( x n − μ ∗ ) T \\mu^*=\\frac179\\sum_n=1^79x^n\\\\ \\Sigma^*=\\frac179\\sum_n=1^79(x^n-\\mu^*)(x^n-\\mu^*)^T μ=791n=179xnΣ=791n=179(xnμ)(xnμ)T

Why Called 生成模型

我们可以计算出每个x出现的概率,我们就知道每一个x的分布,我们就可以用这个分布来产生x,采样x
P ( x ) = P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P(x)=P(x|C_1)P(C_1)+P(x|C_2)P(C_2) P(x)=P(xC1)P(C1)+P(xC2)P(C2)
——全概率公式

修改模型

不同的类其实可以共用一个协方差矩阵

——因为协方差矩阵和特征size的平方成正比

因此协方差矩阵的增长非常快,如果不同的类给予不同的协方差矩阵

那么Model的参数过多,参数太多则Variance就大,那么就容易overfitting

How to Calculate

Find μ 1 , μ 2 , Σ \\mu^1,\\mu^2,\\Sigma μ1,μ2,Σ maximizing the likelihood L ( μ 1 , μ 2 , Σ ) L(\\mu^1,\\mu^2,\\Sigma) L(μ1,μ2,Σ)
L ( μ 1 , μ 2 , Σ ) = f μ 1 , Σ ( x 1 ) f μ 1 , Σ ( x 2 ) . . . f μ 1 , Σ ( x 79 ) ∗ f μ 2 , Σ ( x 80 ) . . . f μ 2 , Σ ( x 140 ) L(\\mu^1,\\mu^2,\\Sigma)=f_\\mu^1,\\Sigma(x^1)f_\\mu^1,\\Sigma(x^2)...f_\\mu^1,\\Sigma(x^79)*f_\\mu^2,\\Sigma(x^80)...f_\\mu^2,\\Sigma(x^140) L(μ1,μ2,Σ)=支持向量机

逻辑回归和SVM的区别是啥?

无分类器指导的Classifier-free Diffusion Models技术

分类:概率生成模型 - 李宏毅机器学习笔记

分类:概率生成模型 - 李宏毅机器学习笔记

分类:概率生成模型 - 李宏毅机器学习笔记