NLP-Task5——朴素贝叶斯和支持向量机原理

朴素贝叶斯分类器

简介

假定输入的特征是 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,输出的分类是y,朴素贝叶斯模型使用贝叶斯公式计算后验概率:
P ( y ∣ x 1 , … , x n ) = P ( y ) P ( x 1 , … x n ∣ y ) P ( x 1 , … , x n ) P\left(y | x_{1}, \ldots, x_{n}\right)=\frac{P(y) P\left(x_{1}, \ldots x_{n} | y\right)}{P\left(x_{1}, \ldots, x_{n}\right)} P(yx1,,xn)=P(x1,,xn)P(y)P(x1,xny)
朴素贝叶斯模型假设给定分类y的条件下,输入的特征之间是相互独立的,因此对于任意的i都有:
P ( x i ∣ y , x 1 , … , x i − 1 , x i + 1 , … , x n ) = P ( x i ∣ y ) P\left(x_{i} | y, x_{1}, \dots, x_{i-1}, x_{i+1}, \ldots, x_{n}\right)=P\left(x_{i} | y\right) P(xiy,x1,,xi1,xi+1,,xn)=P(xiy)
代入前面的式子得到:
P ( y ∣ x 1 , … , x n ) = P ( y ) ∏ i = 1 n P ( x i ∣ y ) P ( x 1 , … , x n ) P\left(y | x_{1}, \ldots, x_{n}\right)=\frac{P(y) \prod_{i=1}^{n} P\left(x_{i} | y\right)}{P\left(x_{1}, \ldots, x_{n}\right)} P(yx1,,xn)=P(x1,,xn)P(y)i=1nP(xiy)
因为输入固定, P ( x 1 , . . . , x n ) P(x_1,...,x_n) P(x1,...,xn)是一个常量,所以我们可以用下式来分类:
P ( y ∣ x 1 , … , x n ) ∝ P ( y ) ∏ i = 1 n P ( x i ∣ y ) y ^ = arg ⁡ max ⁡ y P ( y ) ∏ i = 1 n P ( x i ∣ y ) P\left(y | x_{1}, \ldots, x_{n}\right) \propto P(y) \prod_{i=1}^{n} P\left(x_{i} | y\right) \hat{y}=\arg \max _{y} P(y) \prod_{i=1}^{n} P\left(x_{i} | y\right) P(yx1,,xn)P(y)i=1nP(xiy)y^=argymaxP(y)i=1nP(xiy)
在实际使用中,特征会很多,概率 p ( x i ∣ y ) p(x_i|y) p(xiy)通常会比较小,直接相乘会下溢,因此我们可以取对数,把概率的乘法变成log域的加法。p(y)可以简单地用最大似然的方法从训练数据中估计出来。而 p ( x i ∣ y ) p(x_i|y) p(xiy)可以有多种不同的分布,从而得到不同的朴素贝叶斯模型的具体实现。

高斯朴素贝叶斯(Gaussian Naive Bayes)模型

P ( x i ∣ y ) = 1 2 π σ y 2 exp ⁡ ( − ( x i − μ y ) 2 2 σ y 2 ) P\left(x_{i} | y\right)=\frac{1}{\sqrt{2 \pi \sigma_{y}^{2}}} \exp \left(-\frac{\left(x_{i}-\mu_{y}\right)^{2}}{2 \sigma_{y}^{2}}\right) P(xiy)=2πσy2 1exp(2σy2(xiμy)2)
因此它适合特征是集中分布于某个中心点的连续特征。

from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
y_pred = gnb.fit(iris.data,iris.target).predict(iris.data)
print("Number of mislabeled points of a total %d points : %d"
% (iris.data.shape[0],(iris.target != y_pred).sum()))

输出

Number of mislabeled points of a total 150 points : 6

Bernoulli朴素贝叶斯模型

Bernoulli朴素贝叶斯模型假设似然概率服从二项分布,也就是特征$x_i$是二值特征。为了使用Bernoulli朴素贝叶斯模型,我们需要对输入进行二值化。比如朴素贝叶斯模型来进行垃圾邮件过滤。假设词典的大小是1000,那么每一个邮件都可以表示成一个1000维的向量。如果某个词在邮件里出现了,那么对应的位置的值就是1,否则就是0.

因此 p ( x i ∣ y = 1 ) p(x_i|y=1) p(xiy=1)是一个Bernoulli分布,它有一个参数 p 1 p_1 p1,表示 p ( x i = 1 ∣ y = 1 ) = p 1 p(x_i=1|y=1)=p_1 p(xi=1y=1)=p1,而 p ( x i = 0 ∣ y = 1 ) = 1 − p 1 p(x_i=0|y=1)=1-p_1 p(xi=0y=1)=1p1。类似的 p ( x i ∣ y = 0 ) p(x_i|y=0) p(xiy=0)也是一个Bernoulli分布,它的参数是 p 0 p_0 p0。注意, p 0 p_0 p0 p 1 p_1 p1没有任何关系。

要估计 p 1 p_1 p1,首先统计一下训练数据里有多少个邮件的分类是1(垃圾),记为 N 1 N_1 N1,接着统计这些邮件里有多少封出现了词1,记为 N 11 N_{11} N11,那么 p 1 ^ = N 11 / N 1 \hat{p_1}=N_{11}/N_1 p1^=N11/N1

和语言模型一样,很多词没有在训练数据中,或者只在正/负样本里出现,从而出现概率为零的情况,我们可以采取平滑方法。

多项式朴素贝叶斯模型

Bernoulli朴素贝叶斯模型的问题是不考虑一个词在文档中出现的频率,这是有一些问题的。而多项式朴素贝叶斯可以利用词频信息。多项式朴素贝叶斯也是把一篇文档变成长度为N(词典大小)的向量,某个词在文档中出现的次数就是对应位置的值,和Bernoulli相比,Bernoulli模型的特征是二值的而多项式模型的特征不是。

假设所有的类别集合是C,词典的大小是N,第i个文档是 t i t_i ti。那么分类的时候需要计算后验概率:
Pr ⁡ ( c ∣ t i ) = Pr ⁡ ( t i ∣ c ) Pr ⁡ ( c ) Pr ⁡ ( t i ) \operatorname{Pr}\left(c | t_{i}\right)=\frac{\operatorname{Pr}\left(t_{i} | c\right) \operatorname{Pr}(c)}{\operatorname{Pr}\left(t_{i}\right)} Pr(cti)=Pr(ti)Pr(tic)Pr(c)
分母与C无关,因此可以忽略, P r ( c ) Pr(c) Pr(c)是分类C的先验概率,而 P r ( t i ∣ c ) Pr(t_i|c) Pr(tic)是分类C"生成"文档 t i t_i ti的概率。这个概率我们假设它服从多项式分布:
Pr ⁡ ( t i ∣ c ) = ( ∑ n f n i ) ! ∏ n Pr ⁡ ( w n ∣ c ) f n i f n i ! \operatorname{Pr}\left(t_{i} | c\right)=\left(\sum_{n} f_{n i}\right) ! \prod_{n} \frac{\operatorname{Pr}\left(w_{n} | c\right)^{f_{n i}}}{f_{n i} !} Pr(tic)=(nfni)!nfni!Pr(wnc)fni
上式的n是词典里的第n个词, f n i f_{ni} fni表示第n个词 w n w_n wn在文档t中出现的次数, P r ( w n ∣ c ) Pr(w_n|c) Pr(wnc)是类别c的文档产生词 w n w_n wn的概率。上式的核心是 ∏ n Pr ⁡ ( w n ∣ c ) f n i \prod_{n} \operatorname{Pr}\left(w_{n} | c\right)^{f_{n i}} nPr(wnc)fni,其余的阶乘只是为了归一化。

假设一篇文档中有5个词,2个hello,2个world,1个bye,则它们组成的不重复文档共有 5 ! 2 ! 2 ! 1 ! \frac{5 !}{2 ! 2 ! 1 !} 2!2!1!5!

推广一些,假设文档的词频向量为 f 1 , f 2 , . . . f n f_1,f_2,...f_n f1,f2,...fn, f i f_i fi表示第i个词出现的频次,那么不重复的文档数为 ( ∑ i = 1 n f i ) ! ∏ i = 1 n f i ! \frac{\left(\sum_{i=1}^{n} f_{i}\right) !}{\prod_{i=1}^{n} f_{i} !} i=1nfi!(i=1nfi)!

而我们的多项式分布假设文档的表示与顺序无关,也就是词袋模型。因此文档 P r ( t i ∣ c ) Pr(t_i|c) Pr(tic)的概率可以这样来理解:如果不考虑重复,那么 Pr ⁡ ( t i ∣ c ) = ∏ i = 1 n Pr ⁡ ( w n ∣ c ) f n i \operatorname{Pr}\left(t_{i} | c\right)=\prod_{i=1}^{n} \operatorname{Pr}\left(w_{n} | c\right)^{f_{n i}} Pr(tic)=i=1nPr(wnc)fni,但是那些重复的都应该算到这篇文档里,乘起来就得到了
Pr ⁡ ( t i ∣ c ) = ( ∑ n f n i ) ! ∏ n Pr ⁡ ( w n ∣ c ) f n i f n i ! \operatorname{Pr}\left(t_{i} | c\right)=\left(\sum_{n} f_{n i}\right) ! \prod_{n} \frac{\operatorname{Pr}\left(w_{n} | c\right)^{f_{n i}}}{f_{n i} !} Pr(tic)=(nfni)!nfni!Pr(wnc)fni

在分类的时候,因为 ( ∑ n f n i ) ! , ∏ n 1 f n i \left(\sum_{n} f_{n i}\right) !, \prod_{n} \frac{1}{f_{n i}} (nfni)!,nfni1与c无关,因此可以看出归一化常量,所以只需要计算 ∏ i = 1 n Pr ⁡ ( w n ∣ c ) f n i \prod_{i=1}^{n} \operatorname{Pr}\left(w_{n} | c\right)^{f_{n i}} i=1nPr(wnc)fni。问题的关键就是估计参数 Pr ⁡ ( w n ∣ c ) \operatorname{Pr}(w_n|c) Pr(wnc),我们可以用最大似然估计,为了避免数据稀疏带来的零概率问题,我们加入了Laplace平滑,计算公式如下:
Pr ⁡ ^ ( w n ∣ c ) = 1 + F n c N + ∑ x = 1 N F x c \widehat{\operatorname{Pr}}\left(w_{n} | c\right)=\frac{1+F_{n c}}{N+\sum_{x=1}^{N} F_{x c}} Pr (wnc)=N+x=1NFxc1+Fnc
假设共有3个词,分类c有两篇文档

w1 w2 w1
w2 w1

那么 F 1 c = 3 , F 2 c = 2 , F 3 c = 0 F_{1c}=3,F_{2c}=2,F_{3c}=0 F1c=3,F2c=2,F3c=0,如果不加光滑, Pr ⁡ ( w 1 ∣ c ) = 3 / 5 , Pr ⁡ ( w 2 ∣ c ) = 2 / 5 , Pr ⁡ ( w 3 ∣ c ) = 0 \operatorname{Pr}\left(w_{1} | c\right)=3 / 5, \operatorname{Pr}\left(w_{2} | c\right)=2 / 5, \operatorname{Pr}\left(w_{3} | c\right)=0 Pr(w1c)=3/5,Pr(w2c)=2/5,Pr(w3c)=0。如果加1平滑,我们可以认为新的计数为 F 1 c = 4 , F 2 c = 3 , F 3 c = 1 F_{1 c}=4, F_{2 c}=3, F_{3 c}=1 F1c=4,F2c=3,F3c=1,因此, Pr ⁡ ( w 1 ∣ c ) = 4 / 8 , Pr ⁡ ( w 2 ∣ c ) = 3 / 8 , Pr ⁡ ( w 3 ∣ c ) = 1 / 8 \operatorname{Pr}\left(w_{1} | c\right)=4 / 8, \operatorname{Pr}\left(w_{2} | c\right)=3 / 8, \operatorname{Pr}\left(w_{3} | c\right)=1 / 8 Pr(w1c)=4/8,Pr(w2c)=3/8,Pr(w3c)=1/8

因此进行参数估计需要得到一个文档-词频矩阵Count,每一行表示一个文档,每一列表示一个词,Count(ij)表示文档i中出现词j的次数。在文本分类中,常用tf-idf替代原始Count矩阵,这样做的好处是降低高频词的计数。

支持向量机

  1. 支持向量机是一种二分类模型。它是定义在特征空间上的、间隔最大的线性分类器。
  • 间隔最大的使得支持向量机有别于感知机。如果数据集是可分的,那么感知机获得的模型可能有很多个,但是支持向量机选择的是间隔最大的那个
  • 支持向量机还支持核技巧,从而使它成为实质上的非线性分类器。
  1. 支持向量机支持处理线性可分数据集、非线性可分数据集。
  • 当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机(也称作硬间隔支持向量机)。
  • 当训练数据近似线性可分时,通过软间隔最大化,学习一个线性分类器,即线性可分支持向量机(也称为软间隔支持向量机)。
  • 当训练数据不可分时,通过使用核技巧以及硬间隔最大化,学习一个非线性分类器,即非线性支持向量机。
  1. 当输入空间为欧式空间或离散集合、特征空间为希尔伯特空间时,将输入向量从输入空间映射到特征空间,得到特征向量。
    支持向量机的学习是在特征空间进行的。
  • 线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。
  • 非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。特征向量之间的内积就是和函数,使用和函数可以学习非线性支持向量机。非线性支持向量机等价于隐式的在高维的特征空间中学习线性支持向量机,这种方法叫核技巧。

线性可分支持向量机

  1. 给定一个特征空间上的训练数据 D = { ( x → 1 , y ~ 1 ) , ( x → 2 , y ~ 2 ) , ⋯   , ( x → N , y ~ N ) } \mathbb{D}=\left\{\left(\overrightarrow{\mathbf{x}}_{1}, \tilde{y}_{1}\right),\left(\overrightarrow{\mathbf{x}}_{2}, \tilde{y}_{2}\right), \cdots,\left(\overrightarrow{\mathbf{x}}_{N}, \tilde{y}_{N}\right)\right\} D={(x 1,y~1),(x 2,y~2),,(x N,y~N)},其中 x → i ∈ X = R n , y ~ i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯   , N \overrightarrow{\mathbf{x}}_{i} \in \mathcal{X}=\mathbb{R}^{n}, \tilde{y}_{i} \in \mathcal{Y}=\{+1,-1\}, i=1,2, \cdots, N x iX=Rn,y~iY={+1,1},i=1,2,,N
    x → i ∈ X = R n , y ~ i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯   , N \overrightarrow{\mathbf{x}}_{i} \in \mathcal{X}=\mathbb{R}^{n}, \tilde{y}_{i} \in \mathcal{Y}=\{+1,-1\}, i=1,2, \cdots, N x iX=Rn,y~iY={+1,1},i=1,2,,N
    x → i \overrightarrow{\mathbf{x}}_i x i为第 i i i个特征向量,也称作实例; y ~ i \tilde{y}_{i} y~i x → i \overrightarrow{\mathbf{x}}_i x i的类标记; ( x → i , y ~ i ) \left(\overrightarrow{\mathbf{x}}_{i}, \tilde{y}_{i}\right) (x i,y~i)为样本点。
  • y ~ i = + 1 \tilde{y}_{i}=+1 y~i=+1时,称 x → i \overrightarrow{\mathbf{x}}_i x i为正例。
  • y ~ i = − 1 \tilde{y}_i=-1 y~i=1时,称 x i → \overrightarrow{\mathbf{x}_i} xi 为负例。
  1. 给定线性可分训练集,通过间隔最大化学习得到的分离超平面为: w → ∗ ⋅ x → + b ∗ = 0 \overrightarrow{\mathbf{w}}^{*} \cdot \overrightarrow{\mathbf{x}}+b^{*}=0 w x +b=0,相应的决策函数: f ( x ⃗ ) = sign ⁡ ( w ⃗ ∗ ⋅ x ⃗ + b ∗ ) f(\vec{x})=\operatorname{sign}\left(\vec{w}^{*} \cdot \vec{x}+b^{*}\right) f(x )=sign(w x +b),称之为线性可分支持向量机。

函数间隔

  1. 可以将一个点距离分离超平面的远近来表示分类预测的可靠程度:
  • 一个点距离分离超平面越远,则该点的分类越可靠。
  • 一个点距离分离超平面越近,则该点的分类则不那么确信。
  1. 在超平面 w → ⋅ x → + b = 0 \overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}+b=0 w x +b=0确定的情况下:
  • ∣ w → ⋅ x → i + b ∣ \left|\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right| w x i+b能够相对地表示点 x → i \overrightarrow{\mathbf{x}}_i x i距离超平面的远近。
  • w → ⋅ x → i + b > 0 \overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b>0 w x i+b>0的符号与类标记 x → i \overrightarrow{\mathbf{x}}_i x i位于超平面上方,将 x → i \overrightarrow{\mathbf{x}}_i x i预测为正类。此时若 y ~ = + 1 \tilde{y}=+1 y~=+1则分类正确,否则分类错误。
  • w → ⋅ x → i + b &lt; 0 \overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b&lt;0 w x i+b<0的符号与类标记 x → i \overrightarrow{\mathbf{x}}_i x i位于超平面下方,将 x → i \overrightarrow{\mathbf{x}}_i x i预测为负类。此时若 y ~ = − 1 \tilde{y}=-1 y~=1则分类正确,否则分类错误。
  1. 对于给定的训练数据集 D \mathbb{D} D和超平面 ( w → , b ) (\overrightarrow{\mathbf{w}},b) (w ,b)
  • 定义超平面 ( w → , b ) (\overrightarrow{\mathbf{w}},b) (w ,b)关于样本点的函数间隔为: γ ^ i = y ~ i ( w → ⋅ x → i + b ) \hat{\gamma}_{i}=\tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right) γ^i=y~i(w x i+b)
  • 定义超平面 ( w → , b ) (\overrightarrow{\mathbf{w}},b) (w ,b)关于训练集 D \mathbb{D} D的函数间隔为:超平面 ( w → , b ) (\overrightarrow{\mathbf{w}},b) (w ,b)关于 D \mathbb{D} D中的所有样本点 ( x → i , y ~ i ) \left(\overrightarrow{\mathbf{x}}_{i}, \tilde{y}_{i}\right) (x i,y~i)的函数间隔之最小值: γ ^ = min ⁡ D γ ^ i \hat{\gamma}=\min _{\mathbb{D}} \hat{\gamma}_{i} γ^=minDγ^i

几何间隔

  1. 如果成比例的改变 w → \overrightarrow{\mathbf{w}} w b b b,比如将它们改变为 100 w → 100\overrightarrow{\mathbf{w}} 100w 100 b 100b 100b,超平面 100 w → ⋅ x → + 100 b = 0 100 \overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}+100 b=0 100w x +100b=0还是原来的超平面,但是函数间隔却称为原来的100倍。
    因此需要对分离超平面施加某些约束,如归一化,令 ∣ ∣ w → ∣ ∣ 2 = 1 ||\overrightarrow{\mathbf{w}}||_2 = 1 w 2=1,使得函数间隔是确定的,此时函数间隔成为几何间隔。
  2. 由定义可知函数间隔和几何间隔有下列的关系: γ i = γ ^ i ∥ w → ∥ 2 , γ = γ ^ ∥ w → ∥ 2 \gamma_{i}=\frac{\hat{\gamma}_{i}}{\|\overrightarrow{\mathbf{w}}\|_{2}}, \quad \gamma=\frac{\hat{\gamma}}{\|\overrightarrow{\mathbf{w}}\|_{2}} γi=w 2γ^i,γ=w 2γ^
  • ∣ ∣ w → ∣ ∣ 2 = 1 ||\overrightarrow{\mathbf{w}}||_2 = 1 w 2=1时,函数间隔与几何间隔相等。
  • 当超平面参数 w → , b \overrightarrow{\mathbf{w}},b w ,b等比例改变时,超平面没有变化,函数间隔也按比例改变,几何间隔保持不变。

硬间隔最大化

求解几何间隔最大的分离超平面可以表示为约束的最优化问题:
max ⁡ w → , b γ  s.t.  y ~ i ( w → ∥ w → ∥ 2 ⋅ x → i + b ∥ w → ∥ 2 ) ≥ γ , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\max _{\overrightarrow{\mathbf{w}}, b} \gamma} \\ {\text { s.t. } \quad \tilde{y}_{i}\left(\frac{\overrightarrow{\mathbf{w}}}{\|\overrightarrow{\mathbf{w}}\|_{2}} \cdot \overrightarrow{\mathbf{x}}_{i}+\frac{b}{\|\overrightarrow{\mathbf{w}}\|_{2}}\right) \geq \gamma, i=1,2, \cdots, N}\end{array} maxw ,bγ s.t. y~i(w 2w x i+w 2b)γ,i=1,2,,N
考虑几何间隔和函数间隔的关系,改写问题为:
max ⁡ w → , b γ ^ ∥ w → ∥ 2 s.t.  y ~ i ( w → ⋅ x → i + b ) ≥ γ ^ , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\max _{\overrightarrow{\mathbf{w}}, b} \frac{\hat{\gamma}}{\|\overrightarrow{\mathbf{w}}\|_{2}}} \\ {\text {s.t. } \quad \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right) \geq \hat{\gamma}, i=1,2, \cdots, N}\end{array} maxw ,bw 2γ^s.t. y~i(w x i+b)γ^,i=1,2,,N
函数间隔 γ ^ \hat{\gamma} γ^的大小并不影响最优化问题的求解。因此取 γ ^ = 1 \hat{\gamma}=1 γ^=1,则最优化问题该写为:
max ⁡ w → , b 1 ∥ w → ∥ 2 s.t.  y ~ i ( w → ⋅ x → i + b ) ≥ 1 , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\max _{\overrightarrow{\mathbf{w}}, b} \frac{1}{\|\overrightarrow{\mathbf{w}}\|_{2}}} \\ {\text {s.t. } \quad \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right) \geq 1, i=1,2, \cdots, N}\end{array} maxw ,bw 21s.t. y~i(w x i+b)1,i=1,2,,N
从而等价于:
min ⁡ w → , b 1 2 ∥ w → ∥ 2 2 s.t.  y ~ i ( w → ⋅ x → i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\min _{\overrightarrow{\mathbf{w}}, b} \frac{1}{2}\|\overrightarrow{\mathbf{w}}\|_{2}^{2}} \\ {\text {s.t. } \quad \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right)-1 \geq 0, i=1,2, \cdots, N}\end{array} minw ,b21w 22s.t. y~i(w x i+b)10,i=1,2,,N
这是一个凸二次规划问题。
线性可分支持向量机原始算法:

  • 输入:线性可分训练集 D = { ( x → 1 , y ~ 1 ) , ( x → 2 , y ~ 2 ) , ⋯ &ThinSpace; , ( x → N , y ~ N ) } \mathbb{D}=\left\{\left(\overrightarrow{\mathbf{x}}_{1}, \tilde{y}_{1}\right),\left(\overrightarrow{\mathbf{x}}_{2}, \tilde{y}_{2}\right), \cdots,\left(\overrightarrow{\mathbf{x}}_{N}, \tilde{y}_{N}\right)\right\} D={(x 1,y~1),(x 2,y~2),,(x N,y~N)},其中 x → i ∈ X = R n , y ~ i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯ &ThinSpace; , N \overrightarrow{\mathbf{x}}_{i} \in \mathcal{X}=\mathbb{R}^{n}, \tilde{y}_{i} \in \mathcal{Y}=\{+1,-1\}, i=1,2, \cdots, N x iX=Rn,y~iY={+1,1},i=1,2,,N
  • 输出:
    • 最大几何间隔的分离超平面
    • 分类决策函数
  • 算法步骤:
    • 构造并且求解约束最优化问题:
      min ⁡ w → , b 1 2 ∥ w → ∥ 2 2 s.t.  y ~ i ( w → ⋅ x → i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\min _{\overrightarrow{\mathbf{w}}, b} \frac{1}{2}\|\overrightarrow{\mathbf{w}}\|_{2}^{2}} \\ {\text {s.t. } \quad \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right)-1 \geq 0, i=1,2, \cdots, N}\end{array} minw ,b21w 22s.t. y~i(w x i+b)10,i=1,2,,N
      求得最优解 w → ∗ \overrightarrow{\mathbf{w}}^* w , b ∗ b^* b
      由此得到分离超平面: w → ∗ ⋅ x → + b ∗ = 0 \overrightarrow{\mathbf{w}}^{*} \cdot \overrightarrow{\mathbf{x}}+b^{*}=0 w x +b=0,以及分类决策函数: f ( x → ) = sign ⁡ ( w → ∗ ⋅ x → + b ∗ ) f(\overrightarrow{\mathbf{x}})=\operatorname{sign}\left(\overrightarrow{\mathbf{w}}^{*} \cdot \overrightarrow{\mathbf{x}}+b^{*}\right) f(x )=sign(w x +b)
      可以证明:若训练数据集 D \mathbb{D} D线性可分,则可将训练数据集中的样本点完全正确分开的超平面存在且唯一。

对偶算法

将线性可分支持向量机的最优化问题作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。这就是线性支持向量机的对偶算法。
对偶问题的有点:对偶问题往往更容易求解,引入了核函数,进而推广到非线性分类问题。
原始问题:
min ⁡ w → , b 1 2 ∥ w → ∥ 2 2 s.t.  y ~ i ( w → ⋅ x → i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\operatorname{min}_{{\overrightarrow{\mathbf{w}}, b}} \frac{1}{2}\|\overrightarrow{\mathbf{w}}\|_{2}^{2}} \\ {\text {s.t. } \quad \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right)-1 \geq 0, i=1,2, \cdots, N}\end{array} minw ,b21w 22s.t. y~i(w x i+b)10,i=1,2,,N
定义拉格朗日函数:
L ( w → , b , α ⃗ ) = 1 2 ∥ w → ∥ 2 2 − ∑ i = 1 N α i y ~ i ( w → ⋅ x → i + b ) + ∑ i = 1 N α i L(\overrightarrow{\mathbf{w}}, b, \vec{\alpha})=\frac{1}{2}\|\overrightarrow{\mathbf{w}}\|_{2}^{2}-\sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i} L(w ,b,α )=21w 22i=1Nαiy~i(w x i+b)+i=1Nαi
其中 α ⃗ = ( α 1 , α 2 , ⋯ &ThinSpace; , α N ) T \vec{\alpha}=\left(\alpha_{1}, \alpha_{2}, \cdots, \alpha_{N}\right)^{T} α =(α1,α2,,αN)T为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
max ⁡ α ⃗ min ⁡ w → , b L ( w → , b , α ⃗ ) \max _{\vec{\alpha}} \min _{\overrightarrow{\mathbf{w}}, b} L(\overrightarrow{\mathbf{w}}, b, \vec{\alpha}) α maxw ,bminL(w ,b,α )
先求 max ⁡ α ⃗ min ⁡ w → , b L ( w → , b , α ⃗ ) \max _{\vec{\alpha}} \min _{\overrightarrow{\mathbf{w}}, b} L(\overrightarrow{\mathbf{w}}, b, \vec{\alpha}) maxα minw ,bL(w ,b,α )。拉格朗日函数分别为 w → , b \overrightarrow{\mathbf{w}},b w ,b求偏导数,并令其为0
∇ w → L ( w → , b , α ⃗ ) = w → − ∑ i = 1 N α i y ~ i x → i = 0 ∇ b L ( w → , b , α ⃗ ) = ∑ i = 1 N α i y ~ i = 0 ⇒ w → = ∑ i = 1 N α i y ~ i x → i , ∑ i = 1 N α i y ~ i = 0 \begin{array}{c}{\nabla_{\overrightarrow{\mathbf{w}}} L(\overrightarrow{\mathbf{w}}, b, \vec{\alpha})=\overrightarrow{\mathbf{w}}-\sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i} \overrightarrow{\mathbf{x}}_{i}=0} \\ {\nabla_{b} L(\overrightarrow{\mathbf{w}}, b, \vec{\alpha})=\sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i}=0} \\ {\Rightarrow \overrightarrow{\mathbf{w}}=\sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i} \overrightarrow{\mathbf{x}}_{i}, \quad \sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i}=0}\end{array} w L(w ,b,α )=w i=1Nαiy~ix i=0bL(w ,b,α )=i=1Nαiy~i=0w =i=1Nαiy~ix i,i=1Nαiy~i=0
代入拉格朗日函数:
L ( w → , b , α ⃗ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y ~ i y ~ j ( x → i ⋅ x → j ) + ∑ i = 1 N α i \begin{aligned} L(\overrightarrow{\mathbf{w}}, b, \vec{\alpha})=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} \tilde{y}_{i} \tilde{y}_{j}\left(\overrightarrow{\mathbf{x}}_{i} \cdot \overrightarrow{\mathbf{x}}_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \end{aligned} L(w ,b,α )=21i=1Nj=1Nαiαjy~iy~j(x ix j)+i=1Nαi

对偶问题的极大值为:
max ⁡ α ‾ − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y ~ i y ~ j ( x → i ⋅ x → j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y ~ i = 0 α i ≥ 0 , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\max _{\overline{\alpha}}-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} \tilde{y}_{i} \tilde{y}_{j}\left(\overrightarrow{\mathbf{x}}_{i} \cdot \overrightarrow{\mathbf{x}}_{j}\right)+\sum_{i=1}^{N} \alpha_{i}} \\ {\quad s . t . \sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i}=0} \\ {\alpha_{i} \geq 0, i=1,2, \cdots, N}\end{array} maxα21i=1Nj=1Nαiαjy~iy~j(x ix j)+i=1Nαis.t.i=1Nαiy~i=0αi0,i=1,2,,N
线性支持向量机的对偶算法 :
输入:线性可分训练数据集 D = { ( x → 1 , y ~ 1 ) , ( x → 2 , y ~ 2 ) , ⋯ &ThinSpace; , ( x → N , y ~ N ) } \mathbb{D}=\left\{\left(\overrightarrow{\mathbf{x}}_{1}, \tilde{y}_{1}\right),\left(\overrightarrow{\mathbf{x}}_{2}, \tilde{y}_{2}\right), \cdots,\left(\overrightarrow{\mathbf{x}}_{N}, \tilde{y}_{N}\right)\right\} D={(x 1,y~1),(x 2,y~2),,(x N,y~N)},其中 x → i ∈ X = R n , y ~ i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯ &ThinSpace; , N \overrightarrow{\mathbf{x}}_{i} \in \mathcal{X}=\mathbb{R}^{n}, \tilde{y}_{i} \in \mathcal{Y}=\{+1,-1\}, i=1,2, \cdots, N x iX=Rn,y~iY={+1,1},i=1,2,,N
输出:
最大几何间隔的分离超平面
分类决策函数
算法步骤:
构造并求解约束最优化问题:
min ⁡ α ‾ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y ~ i y ~ j ( x → i ⋅ x → j ) − ∑ i = 1 N α i  s.t.  ∑ i = 1 N α i y ~ i = 0 α i ≥ 0 , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\min _{\overline{\alpha}} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} \tilde{y}_{i} \tilde{y}_{j}\left(\overrightarrow{\mathbf{x}}_{i} \cdot \overrightarrow{\mathbf{x}}_{j}\right)-\sum_{i=1}^{N} \alpha_{i}} \\ {\text { s.t. } \sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i}=0} \\ {\alpha_{i} \geq 0, i=1,2, \cdots, N}\end{array} minα21i=1Nj=1Nαiαjy~iy~j(x ix j)i=1Nαi s.t. i=1Nαiy~i=0αi0,i=1,2,,N
求得最优解 α ⃗ ∗ = ( α 1 ∗ , α 2 ∗ , ⋯ &ThinSpace; , α N ∗ ) T \vec{\alpha}^{*}=\left(\alpha_{1}^{*}, \alpha_{2}^{*}, \cdots, \alpha_{N}^{*}\right)^{T} α =(α1,α2,,αN)T
计算 w → ∗ = ∑ i = 1 N α i ∗ y ~ i x → i \overrightarrow{\mathbf{w}}^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} \tilde{y}_{i} \overrightarrow{\mathbf{x}}_{i} w =i=1Nαiy~ix i
选择 α → ∗ \overrightarrow{\alpha}^* α 的一个正的分量 α j ∗ &gt; 0 \alpha_j^*&gt;0 αj>0,计算 b ∗ = y ~ j − ∑ i = 1 N α i ∗ y ~ i ( x → i ⋅ x → j ) b^{*}=\tilde{y}_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} \tilde{y}_{i}\left(\overrightarrow{\mathbf{x}}_{i} \cdot \overrightarrow{\mathbf{x}}_{j}\right) b=y~ji=1Nαiy~i(x ix j)
由此得到分离超平面: w → ∗ ⋅ x → + b ∗ = 0 \overrightarrow{\mathbf{w}}^{*} \cdot \overrightarrow{\mathbf{x}}+b^{*}=0 w x +b=0,以及分类决策函数: f ( x → ) = sign ⁡ ( w → ∗ ⋅ x → + b ∗ ) f(\overrightarrow{\mathbf{x}})=\operatorname{sign}\left(\overrightarrow{\mathbf{w}}^{*} \cdot \overrightarrow{\mathbf{x}}+b^{*}\right) f(x )=sign(w x +b)

线性软间隔支持向量机

对每个样本点 ( x → i , y ~ i ) \left(\overrightarrow{\mathbf{x}}_{i}, \tilde{y}_{i}\right) (x i,y~i)引入一个松弛变量 ξ i ≥ 0 \xi_{i} \geq 0 ξi0,使得函数间隔加上松弛变量大于等于1,即约束条件变成了: y ~ i ( w → ⋅ x → i ) ≥ 1 − ξ i \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}\right) \geq 1-\xi_{i} y~i(w x i)1ξi
对每个松弛变量 ξ i \xi_i ξi,目标函数由原来的 1 2 ∣ ∣ w → ∣ ∣ 2 2 \frac{1}{2}||\overrightarrow{\mathbf{w}}||^2_2 21w 22变成:
min ⁡ 1 2 ∥ w → ∥ 2 2 + C ∑ i = 1 N ξ i \min \frac{1}{2}\|\overrightarrow{\mathbf{w}}\|_{2}^{2}+C \sum_{i=1}^{N} \xi_{i} min21w 22+Ci=1Nξi
这里 C &gt; 0 C&gt;0 C>0称为惩罚参数,一般由应用问题决定。

  • C值大时,对误分类的惩罚增大,此时误分类点凸显的更重要
  • C值较大时,对误分类的惩罚增加,此时误分类点比较重要。
  • C值较小时,对误分类的惩罚减小,此时误分类点相对不重要

于是线性不可分支持向量机的原始学习问题为:
min ⁡ w → , b , ξ ‾ 1 2 ∥ w → ∥ 2 2 + C ∑ i = 1 N ξ i s.t.  y ~ i ( w → ⋅ x → i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ &ThinSpace; , N ξ i ≥ 0 , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\min _{\overrightarrow{\mathbf{w}}, b, \overline{\xi}} \frac{1}{2}\|\overrightarrow{\mathbf{w}}\|_{2}^{2}+C \sum_{i=1}^{N} \xi_{i}} \\ {\text {s.t. } \quad \tilde{y}_{i}\left(\overrightarrow{\mathbf{w}} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right) \geq 1-\xi_{i}, \quad i=1,2, \cdots, N} \\ {\xi_{i} \geq 0, \quad i=1,2, \cdots, N}\end{array} minw ,b,ξ21w 22+Ci=1Nξis.t. y~i(w x i+b)1ξi,i=1,2,,Nξi0,i=1,2,,N

对偶问题:
定义拉格朗日函数
L ( w → , b , ξ ⃗ , α ⃗ , μ ⃗ ) = 1 2 ∥ w → ∥ 2 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i [ y ~ i ( w → i ⋅ x → i + b ) − 1 + ξ i ] − ∑ i = 1 N μ i ξ i α i ≥ 0 , μ i ≥ 0 \begin{aligned} L(\overrightarrow{\mathbf{w}}, b, \vec{\xi}, \vec{\alpha}, \vec{\mu})=\frac{1}{2}\|\overrightarrow{\mathbf{w}}\|_{2}^{2}+C \sum_{i=1}^{N} \xi_{i} &amp;-\sum_{i = 1}^{N} \alpha_{i}\left[\tilde{y}_{i}\left(\overrightarrow{\mathbf{w}}_{i} \cdot \overrightarrow{\mathbf{x}}_{i}+b\right)-1+\xi_{i}\right]-\sum_{i=1}^{N} \mu_{i} \xi_{i} \\ \alpha_{i} &amp; \geq 0, \mu_{i} \geq 0 \end{aligned} L(w ,b,ξ ,α ,μ )=21w 22+Ci=1Nξiαii=1Nαi[y~i(w ix i+b)1+ξi]i=1Nμiξi0,μi0
可以得到对偶问题:
min ⁡ α ~ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y ~ i y ~ j ( x → i ⋅ x → j ) − ∑ i = 1 N α i  s.t.  ∑ i = 1 N α i y ~ i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ &ThinSpace; , N \begin{array}{c}{\min _{\tilde{\alpha}} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} \tilde{y}_{i} \tilde{y}_{j}\left(\overrightarrow{\mathbf{x}}_{i} \cdot \overrightarrow{\mathbf{x}}_{j}\right)-\sum_{i=1}^{N} \alpha_{i}} \\ {\text { s.t. } \sum_{i=1}^{N} \alpha_{i} \tilde{y}_{i}=0} \\ {0 \leq \alpha_{i} \leq C, i=1,2, \cdots, N}\end{array} minα~21i=1Nj=1Nαiαjy~iy~j(x ix j)i=1Nαi s.t. i=1Nαiy~i=00αiC,i=1,2,,N

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值