zoukankan      html  css  js  c++  java
  • 机器学习笔记(5)-线性分类

    机器学习笔记(5)-线性分类

    概述

    在机器学习领域,分类的目标是指将具有相似特征的对象聚集。而一个线性分类器则透过特征的线性组合来做出分类决定,以达到此种目的。对象的特征通常被描述为特征值,而在向量中则描述为特征向量。

    说人话就是在一个数据样本点上,能否找到一个线性组合来把样本点根据类别进行划分。

    上图就是一个线性分类器,把两个类别的数据分在各自两边。

    线性分类的体系结构:

    1. 硬输出:将结果映射到({0,1}),代表算法有感知机线性判别分析等。
    2. 软输出:将结果映射到((0,1))的概率上,而软输出又可以分为:
      1. 判别式:逻辑回归(Logistics Regression,LR)
      2. 生成式:高斯判别分析(Gaussian Distribution Analysis,GDA)、朴素贝叶斯(Naive Bayes,NB)

    感知机

    感知机的核心思想是通过错误来驱动调整模型参数,比如SGD(随机梯度下降),通过梯度方向乘以一个很小的学习率,一点一点的纠正初始模型参数。

    模型:

    [egin{aligned} y=sign(w^Tx),xin mathbb{R}^p,win mathbb{R}^p\ sign(x)=left{egin{matrix} 1,&(xgeqslant 0))\ -1,&(x<0) end{matrix} ight. end{aligned} ]

    选取损失函数时,一种比较直观的思想就是我分类错误的个数,我们采用(L(w)=count(y_{i}w^Tx_{i}<0))来表示,但是很明显,随着参数(w)的偏移,(L(w))不是一个连续函数,这就使得该函数不可导,我们需要选择一个可导的损失函数,最好是个正数,这样我们可以求极小值。所以我们直接采用(-y_{i}w^Tx_{i})

    [L(w)=sum_{i=1}^{n}-y_{i}w^Tx_{i} ]

    通过梯度优化就得到:

    [egin{aligned} riangledown w=sum_{i=1}^{n}-y_{i}x_{i} end{aligned} ]

    得到参数(w)的值,其中(alpha)是学习率:

    [wleftarrow w-alpha riangledown w ]

    线性判别分析

    线性判别分析我们就只介绍下它的思想,它对于损失函数的思想是针对两个不同的类别,要求类内的样本点距离小,而类间的样本点距离大。

    假设有两个类别的数据:

    [X_{c1}=(x_{c1_{1}},x_{c1_{2}},cdots ,x_{c1_{n1}}),X_{c2}=(x_{c2_{1}},x_{c2_{2}},cdots ,x_{c2_{n2}})\ X_{c1}in mathbb{R}^p,X_{c2}in mathbb{R}^p\ W=(w_{1},w_{2},cdots ,w_{p}) ]

    那么我们就可以分别得到它们的均值和方差:

    [egin{aligned} ar{x}_{c1}&=sum_{i=1}^{n1}w^Tx_{c1_{i}}\ ar{x}_{c2}&=sum_{j=1}^{n2}w^Tx_{c2_{j}}\ Var(x_{c1})&=sum_{i=1}^{n1}(w^Tx_{c1_{i}}-ar{x}_{c1})^2\ Var(x_{c2})&=sum_{j=1}^{n2}(w^Tx_{c2_{j}}-ar{x}_{c2})^2 end{aligned} ]

    根据类内小,类间大的思想,我们可以直接得到:

    [hat{w}=underset{w}{argmin}frac{Var(x_{c1})+Var(x_{c2})}{(ar{x}_{c1}-ar{x}_{c2})^2} ]

    这个思想在支持向量机(Support Vector Machine,SVM)中也有体现。

    逻辑回归

    逻辑回归(Logistics Regression,LR)是一种判别式的线性分类方法,它通过对线性函数得到的值,通过激活函数(sigmoid)映射到((0,1))来进行分类。

    [sigmoid(x)=frac{1}{1+e^{-x}} ]

    于是我们代入公式((5))就可以得到:

    [egin{aligned} P(Y=1|X)&=sigmoid(W^TX)=prod_{i=1}^{n}frac{1}{1+exp(-w^Tx_{i})}\ P(Y=0|X)&=1-P(Y=1|X)=prod_{i=1}^{n}frac{exp(-w^Tx_{i})}{1+exp(-w^Tx_{i})} end{aligned} ]

    代入极大似然估计得到:

    [egin{aligned} hat{W}_{MLE}&=underset{w}{argmax}P(Y|X)\ &=underset{w}{argmax}sum_{i=1}^{n}(y_{i}log;p(y_{i}=1|x_{i})+(1-y_{i})log;p(y_{i}=0|x_{i}))\ &=underset{w}{argmax}sum_{i=1}^{n}(y_{i}log;frac{1}{1+exp(-w^Tx_{i})})+(1-y_{i})log;frac{exp(-w^Tx_{i})}{1+exp(-w^Tx_{i})})\ &=underset{w}{argmax}sum_{i=1}^{n}(-y_{i}log(1+exp(-w^Tx_{i}))-w^Tx_{i}-log(1+exp(-w^Tx_{i}))+y_{i}w^Tx_{i}+y_{i}log(1+exp(-w^Tx_{i})))\ &=underset{w}{argmax}sum_{i=1}^{n}(y_{i}w^Tx-w^Tx_{i}-log(1+exp(-w^Tx_{i})))\ &=underset{w}{argmin}sum_{i=1}^{n}-(y_{i}w^Tx-2w^Tx_{i}+log(1+exp(w^Tx_{i}))) end{aligned} ]

    接下来求偏导:

    [egin{aligned} frac{partial hat{W}_{MLE}}{partial w}&=sum_{i=1}^{n}-(y_{i}x_{i}-2x_{i}+frac{exp(w^Tx_{i})}{1+exp(w^Tx_{i})}) end{aligned} ]

    高斯判别分析

    高斯判别分析(GDA)是一种生成式模型,判别式模型我们是直接去求解概率(P(Y|X)),而生成式模型是通过贝叶斯定理,判断(P(Y=1|X))(P(Y=0|X))的大小来分类,并不需要去具体求两个概率的值。

    首先我们先假设我们的数据分布:

    1. 根据贝叶斯定理,因为(P(X))(Y)无关,所以:(P(Y|X)propto P(X|Y)P(Y))
    2. 假设(y_{i})服从伯努利分布:(y_{i}sim Bernoulli(phi)Rightarrow P(y_{i})=phi^{y_{i}}(1-phi)^{1-y_{i}})
    3. 假设(X|Y)服从高斯分布:(P(X|Y=1)sim N(mu_{1},sigma^2),P(X|Y=0)sim N(mu_{2},sigma^2))

    所以我们有:

    [egin{aligned} L(mu_{1},mu_{2},sigma,phi)&=logprod_{i=1}^{n}p(y_{i}|x_{i})\ &=logprod_{i=1}^{n}p(x_{i}|y_{i})cdot p(y_{i})\ &=sum_{i=1}^{n}(log;p(x_{i}|y_{i})+log;p(y_{i}))\ &=sum_{i=1}^{n}[y_{i}log;N(mu_{1},sigma^2)+(1-y_{i})log;N(mu_{2},sigma^2)+log;(phi^{y_{i}}(1-phi)^{1-y_{i}})]\ end{aligned} ]

    (1)我们先对(phi)求偏导:

    [egin{aligned} frac{partial L(mu_{1},mu_{2},sigma,phi)}{partial phi}&=frac{partial }{partial phi}sum_{i=1}^{n}log;(phi^{y_{i}}(1-phi)^{1-y_{i}})\ &=frac{partial }{partial phi}sum_{i=1}^{n}[y_{i}logphi+(1-y_{i})log(1-phi)]\ &=sum_{i=1}^{n}[frac{y_{i}}{phi}-frac{1-y_{i}}{1-phi}]\ &=sum_{i=1}^{n}frac{y_{i}-phi}{phi(1-phi)}=0 end{aligned} ]

    最后我们得到:

    [sum_{i=1}^{n}y_{i}=nphiRightarrow hat{phi}=frac{count(Y=1)}{n} ]

    上面这个式子中,其实(sum_{i=1}^{n}y_{i})就是(Y=1)的样本有多少个。

    (2)我们对(mu1,mu2)求偏导,这两个是对称的,所以求出一个,另一个也就有了,这里我就直接给结论了,把高斯分布代入计算:

    [hat{mu}_{1},hat{mu}_{2}=frac{sum_{i=1}^{n}y_{i}x_{i}}{count(Y=1)} ]

    (3)接下来对(sigma)求偏导:

    [hat{sigma}=frac{1}{n}[count(Y=1)cdot left | x_{i}-mu_{1} ight |^2+count(Y=0)cdot left | x_{i}-mu_{2} ight |^2] ]

  • 相关阅读:
    无限维
    黎曼流形
    why we need virtual key word
    TOJ 4119 Split Equally
    TOJ 4003 Next Permutation
    TOJ 4002 Palindrome Generator
    TOJ 2749 Absent Substrings
    TOJ 2641 Gene
    TOJ 2861 Octal Fractions
    TOJ 4394 Rebuild Road
  • 原文地址:https://www.cnblogs.com/Epir/p/13125968.html
Copyright © 2011-2022 走看看