最小二乘支持向量机(LSSVM)是一种简单的支持向量机(SVM)。普通的SVM的表达形式为
argminΦ(w)=12wTw+C∑iξisubject to di(wTxi+b)−(1−ξi)≥0,ξi≥0
<script type="math/tex; mode=display" id="MathJax-Element-1">argmin \Phi(w)=\frac{1}{2}w^Tw+C\sum_i \xi_i \\subject to d_i(w^Tx_i+b)-(1-\xi_i)\ge0,\xi_i \ge0</script>其中
di <script type="math/tex" id="MathJax-Element-2">d_i</script>是标准答案,取值为1和-1,
xi <script type="math/tex" id="MathJax-Element-3">x_i</script>是样本。
LSSVM的表达形式为
argminΦ(w)=12wTw+12γ∑ie2isubject to di(wTxi+b)−(1−ei)=0
<script type="math/tex; mode=display" id="MathJax-Element-4">argmin \Phi(w)=\frac{1}{2}w^Tw+\frac{1}{2}\gamma \sum_i e_i^2 \\subject to d_i(w^Tx_i+b)-(1-e_i)=0</script>需要注意的是,这里的
ei <script type="math/tex" id="MathJax-Element-5">e_i</script>和
ξi <script type="math/tex" id="MathJax-Element-6">\xi_i</script>本质上是一回事,但是没有明确限定
ei <script type="math/tex" id="MathJax-Element-7">e_i</script>必须大于等于0。我们的约束条件是一个等式,如果
(wTxi+b)>1 <script type="math/tex" id="MathJax-Element-8">(w^Tx_i+b)>1</script>,那么
ei <script type="math/tex" id="MathJax-Element-9">e_i</script>可以是负数,不过
ei <script type="math/tex" id="MathJax-Element-10">e_i</script>还是需要被约束的。
传统SVM中,约束条件是不等式,离分离超平面近的元素向量是支持向量,强烈地影响分离平面的计算,离超平面远的向量影响比较小;因此如果分离集合之间的边界不清晰,会影响计算结果。
而LSSVM中,约束条件是等式,因此,离分离超平面近和远的元素向量都会对分离平面的计算产生影响,分离平面不如传统SVM精准;而且一旦产生相当数量的大的离群点,会严重影响分离平面的计算。LSSVM的最终结果,近似于将两个分离集合的所有元素到分离平面的距离,都限定在 1±η <script type="math/tex" id="MathJax-Element-11">1\pm\eta</script>, η <script type="math/tex" id="MathJax-Element-12">\eta</script>是可接受误差,通过限制 ei <script type="math/tex" id="MathJax-Element-13">e_i</script>逼近0来实现。LSSVM通过在对偶式中添加一个 ei <script type="math/tex" id="MathJax-Element-14">e_i</script>的平方来限制 ei <script type="math/tex" id="MathJax-Element-15">e_i</script>逼近0。
求解LSSVM比SVM要简单的多。引入拉格朗日算子,有
J=12wTw+12γ∑ie2i−∑iαi[di(wTxi+b)−(1−ei)]
<script type="math/tex; mode=display" id="MathJax-Element-16">J=\frac{1}{2}w^Tw+\frac{1}{2}\gamma \sum_i e_i^2-\sum_i \alpha_i[d_i(w^Tx_i+b)-(1-e_i)]</script>依次求导得到:
∂J∂w=w−∑iαidixi=0→w=∑iαidixi(1)
<script type="math/tex; mode=display" id="MathJax-Element-17">\frac{\partial J}{\partial w}=w-\sum_i\alpha_id_ix_i=0 \rightarrow w=\sum_i\alpha_id_ix_i \tag{1} </script>
∂J∂b=−∑iαidi=0(2)
<script type="math/tex; mode=display" id="MathJax-Element-18">\frac{\partial J}{\partial b}=-\sum_i \alpha_id_i=0 \tag{2}</script>
∂J∂ei=γei−αi=0(3)
<script type="math/tex; mode=display" id="MathJax-Element-19"> \frac{\partial J}{\partial e_i}=\gamma e_i-\alpha_i=0 \tag{3}</script>
∂J∂αi=di(wTxi+b)−(1−ei)=0(4)
<script type="math/tex; mode=display" id="MathJax-Element-20"> \frac{\partial J}{\partial \alpha_i}=d_i(w^Tx_i+b)-(1-e_i)=0\tag{4}</script>我们将
w,b,e=[e1...en],α=[α1...αn] <script type="math/tex" id="MathJax-Element-21">w,b,e=[e_1...e_n],\alpha=[\alpha_1...\alpha_n]</script>等向量看做整体,由(1)(3)令
zi=dixi,Z=[z1...zn],D=[d1...dn],w=ZαT,e=γ−1α <script type="math/tex" id="MathJax-Element-22">z_i=d_ix_i,Z=[z_1...z_n],D=[d_1...d_n],w=Z\alpha^T,e=\gamma^{-1}\alpha</script>,代入(4)得到:
ZαTzi+bdi+γ−1αi=1(5)
<script type="math/tex; mode=display" id="MathJax-Element-23">Z\alpha^T z_i+bd_i+\gamma^{-1}\alpha_i=1 \tag{5}</script>由(2)(5)得到矩阵
[0DT−DZTZ+γ−1I][bαT]=[0I]
<script type="math/tex; mode=display" id="MathJax-Element-24">\left[ \begin{matrix}0 & -D \\ D^T & Z^TZ+\gamma^{-1}I \end{matrix} \right]\left[ \begin{matrix} b \\ \alpha^T\end{matrix} \right]=\left[ \begin{matrix} 0 \\ I\end{matrix} \right]</script>用基本的矩阵解法即可解出
α,b <script type="math/tex" id="MathJax-Element-25">\alpha,b</script>。其中b是一个数字,因此与矩阵向量相乘的位置无所谓;
ZTZ <script type="math/tex" id="MathJax-Element-26">Z^TZ</script>是根据矩阵组成形式来给出的;
w <script type="math/tex" id="MathJax-Element-27">w</script>通过(1)计算得到。
所有评论(0)