Classification

Classification: Given options(classes), the function outputs the correct one.

Probabilistic Generative Model

features and predict target

  • 一共有7个features,其中
  • Total = HP + Attack + Deffense + SP Atk + Sp Def + Speed
  • predict target: type of pokemon

features and predict target
features and predict target

How to do Classification

  • 收集Training data for Classification
  • 考虑如果做分类?

Classification as Regression?(分类问题是否可以用回归算法处理?)

以二分类举个例子

  • Training: Class 1 means the target is 1; Class 2 means the target is -1
  • Testing: closer to 1class 1;closer to -1class 2

这样直接用Regression来解决Classification的问题,会发生如下图的情况:

  • 当样本feature如左图所示,则y=b+w1x1+w2x2的函数可以很好的工作。
  • 当样本feature如右图所示,由于右下角的数据,导致Regression的Loss函数在求最小值时,会倾向于给出紫色的线段的方程。即Loss函数会由于“太正确”而导致最终预测结果出错。
  • Penalize to the examples that are “too correct” … (Bishop, P186)

Classification as Regression
Classification as Regression

Ideal Alternatives(理想的做法)

  • Function (Model): δ(x){g(x)>0Output = class 1elseOutput = class 2
  • Loss Function
    • The number of times f get incorrect results on training data. L(f)=nδ(f(xn)y^n)
  • Find the best function:
    • Example: Perceptron, SVM

Generative Model

  • P(C1)是从两个分类中,随机选中Class1的几率,P(C2)是从两个分类中,随机选中Class2的几率。
  • 假设x为其中一种颜色的圆圈,则:P(x|C1)表示从Class1中选中x的几率,P(x|C2)表示从Class2中选中x的几率,
  • 选中x属于class1的几率就是:P(C1|x)=P(C1)P(x|C1)P(C1)P(x|C1)+P(C2)P(x|C2)
  • 选中x的总几率就是: P(x)=P(x|C1)P(C1)+P(x|C2)P(C2)
  • Estimating the Probabilities From training data, 这整个想法就叫做Generative Model

Generative Model
Generative Model

Gaussian Distribution

  • fμ,(x)=1(2π)D/21||1/2exp{12(xμ)T1(xμ)}
  • input: vector x, output: probability of sampling x(实际是probability density,概率密度与概率成正比,此处简略为概率)
  • The shape of the function determines by mean μ and covariance matrix (协方差矩阵)

Gaussian Distribution
Gaussian Distribution

Maximum Likelihood(找meanμ和covariance matrix Σ的方法)

  • mean μ控制原点的位置。
  • covariance matrix Σ决定图形的形状。
  • 虽然图中左下角的点都可以求出相对于两个圈的概率,但是这两个概率的大小是不一样的。
  • 给定一个Gaussian的μΣ,就可以求出对应的Likelihood:
    • L(μ,Σ)=fμ,Σ(x1)fμ,Σ(x2)fμ,Σ(x3)fμ,Σ(xn)
    • 这里的每一个fμ,Σ(x1)展开,都是fμ,(x)=1(2π)D/21||1/2exp{12(xμ)T1(xμ)}
  • Maximum Likelihood: μ,Σ=argmaxμ,ΣL(μ,Σ)
    • μ为取x的平均值: μ=1ni=1nxi
    • Σ=1ni=1n(xiμ)(xiμ)T

Maximum Likelihood
Maximum Likelihood

采用上诉方法得到的测试结果

featuresθtest accuracy
Defense,SP Defenseμ1,μ2 : 2-dim vector
Σ1,Σ2: 2*2 matrices
47%
All the 7 featuresμ1μ7 : 7-dim vector
Σ1Σ7: 7*7 matrices
54%
结果不理想,需要重新调整模型。

Modifying Model (Ref: Bishop chapter 4.2.2)

  • 给每一个Gaussian有一个自己的μ和自己的covariance matrix Σ是很少见的
  • 常见的做法是,不同的Class对应的Gaussian可以share相同的covariance matrix Σ

Share Covariance matrix
Share Covariance matrix

模型修改后如何计算μΣ

  • 假设有数量为n的class1,数量为m的class2
  • likelihood: L(μ1,μ2,Σ)=fμ1,Σ(x1)fμ1,Σ(x2)fμ1,Σ(xn)×fμ2,Σ(xn+1)fμ2,Σ(xn+2)fμ2,Σ(xn+m)
  • 如下图, μ1, μ2和原来一样计算: μ1=1ni=1nxiμ2=1mi=1mxi
  • Σ的计算修改为:Σ=nn+mΣ1+mn+mΣ2

Compute
Compute

模型修改后画出的图形

  • 从原来的曲线,变成了一条直线
  • 由于边界(boundary)是一条直线,所以这种模型也叫做Linear Model。
  • 在这个模型下,考虑所有的7个features进行计算,则accuracy从原来的54%上升到73%

总结一下3个步骤

  • Function Set(Model): P(C1|x)=P(C1)P(x|C1)P(C1)P(x|C1)+P(C2)P(x|C2){ifP(C1|x)>0.5, output: class 1Otherwise, output: class 2
  • Goodness of a function:
    • The mean μ and covariance Σ that maximizing the likelihood(the probability of generating data)
  • Find the best function: easy

Probability Distribution

  • You can always use the distribution you like
  • 假设P(x|C1)构成Class1的x有K个,且K个x想对于Class1的几率是独立的,则:P(x|C1)=P(x1|C1)P(x2|C1)P(xK|C1),这个会得到1-D Gaussian,参数会进一步简化
  • For binary features, you may assume they are from Bernouli distributions.
  • If you assume all the dimensions are independent, then you are using Naive Bayes Classifier.

Posterior Probability

  • 设有表达式(1)上下同时除上表达式P(C1)P(x|C1)得到表达式(2)
  • z=lnP(C1)P(x|C1)P(C2)P(x|C2),则表达式(2)变为表达式(3)
  • 表达式(3)和(4)等价,为Sigmoid Function (1)P(C1|x)=P(C1)P(x|C1)P(C1)P(x|C1)+P(C2)P(x|C2)(2)=11+P(C2)P(x|C2)P(C1)P(x|C1)(3)=11+expz(4)=σ(z)

求z

  • N1是Class1出现的次数,N2是Class2出现的次数
  • 表达式(3)和(4)为Gaussian的Distribution
  • 表达式(5)上下同时除以1(2π)D/2得到表达式(6) z=lnP(C1)P(x|C1)P(C2)P(x|C2)(1)=lnP(C1)P(C2)+lnP(x|C1)P(x|C2)(2)lnP(C1)P(C2)=N1N1+N2N2N1+N2=N1N2(3)P(x|C1)=1(2π)D/21|Σ1|1/2exp{12(xμ1)T(Σ1)1(xμ1)}(4)P(x|C2)=1(2π)D/21|Σ2|1/2exp{12(xμ2)T(Σ2)1(xμ2)}(5)lnP(x|C1)P(x|C2)=ln1(2π)D/21|Σ1|1/2exp{12(xμ1)T(Σ1)1(xμ1)}1(2π)D/21|Σ2|1/2exp{12(xμ2)T(Σ2)1(xμ2)}(6)=ln1|Σ1|1/2exp{12(xμ1)T(Σ1)1(xμ1)}1|Σ2|1/2exp{12(xμ2)T(Σ2)1(xμ2)}(7)=ln|Σ2|1/2|Σ1|1/2exp{12[(xμ1)T(Σ1)1(xμ1)(xμ2)T(Σ2)1(xμ2)]}(8)=ln|Σ2|1/2|Σ1|1/212[(xμ1)T(Σ1)1(xμ1)(xμ2)T(Σ2)1(xμ2)](xμ1)T(Σ1)1(xμ1)=xT(Σ1)1xxT(Σ1)1μ1(μ1)T(Σ1)1x+(μ1)T(Σ1)1μ1=xT(Σ1)1x2(μ1)T(Σ1)1x+(μ1)T(Σ1)1μ1(xμ2)T(Σ2)1(xμ2)=xT(Σ2)1x2(μ2)T(Σ2)1x+(μ2)T(Σ2)1μ2z=ln|Σ2|1/2|Σ1|1/212xT(Σ1)1x+(μ1)T(Σ1)1x12(μ1)T(Σ1)1μ1+12xT(Σ2)1x(μ2)T(Σ2)1x+12(μ2)T(Σ2)1μ2+lnN1N2

σ(z)

  • Σ1=Σ2=Σ时,表达式(1)变为表达式(2)
  • 设: wT=(μ1μ2)TΣ1以及b=12(μ1)T(Σ1)1μ1+12(μ2)T(Σ2)1μ2+lnN1N2则(2)可以推导为(3)
  • In generative model, we estimate N1,N2,μ1,μ2,Σ, then we have w and b. z=ln|Σ2|1/2|Σ1|1/212xT(Σ1)1x+(μ1)T(Σ1)1x12(μ1)T(Σ1)1μ1(1)+12xT(Σ2)1x(μ2)T(Σ2)1x+12(μ2)T(Σ2)1μ2+lnN1N2(2)=(μ1μ2)TΣ1x12(μ1)T(Σ1)1μ1+12(μ2)T(Σ2)1μ2+lnN1N2(3)=wx+bP(C1|x)=σ(z)=σ(wx+b)
How about directly find w and b?

reference video