【概述】
1、感知機模型特征:感知機對應于輸入空間中將實例劃分為正負兩類的分離超平面,屬于判別模型。
2、感知機策略:感知機學習的目標是求出將訓練數據進行線性劃分的分離超平面,導入基于誤分類的損失函數,利用梯度下降法對損失函數進行最小化,求得感知機模型。
3、感知機學習算法:用學習得到的感知機模型對新的輸入實例進行分類。
4、重點:感知機是神經網絡和支持向量機的基礎,所以一些核心概念要仔細理解和和掌握。
一、感知機模型(機器學習三要素之一)
1、定義2.1(感知機)
公式說明:W和b為感知機模型參數,稱為權值(weight)或權值向量(weight vector),b稱為偏置,一般b會以bx0的方式形成統一的權值向量w,w.x表示w和x的內積(內積的定義見附錄1),sign(x)是符號函數,即:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2.1:Sign符號函數的幾何表示
2、感知機的幾何解釋
? ? ?線性方程w.x+b=0對應于特征空間的一個超平面S,其中w是超平面的法向量(法向量和超平面的關系見附錄2),b是超平面的截距。
? ? ?該超平面將特征空間劃分成兩個部分,位于兩部分的點(特征向量)分別被分成正、負兩類,超平面S成為分離超平面。
3、感知機學習方法
? ? ?由訓練集(實例的特征向量及類別)T= {(x1,y1),(x2,y2),…,(xn,yn)},通過學習求得感知機模型(2.1),即求得模型參數w。
4、感知機應用舉例(貸款申請)
? ? ?每個申請貸款的人者有若干特征,包括年齡、性別、收入、負債情況,上述這些特征構成特征向量x(x1,x2,...xn)。《統計學習方法》中圖2.1給出的是x的二維向量實例,在圖2.1中,超平面簡化為斜率為-w1/w2的分類直線。
? ? ?申請者的數據,通過w加權取得總分,減去這個門檻值,總分超過門檻值(即大于等于0)就給+1,沒超過(即小于0)就給-1??(另一個例子是“學生是否及格的判斷”)
二、感知機學習策略(機器學習三要素之二)
1、數據集的線性可分性
? ? 如果存在某個超平面S,能夠將數據集的正實例點和負實例點完全正確地劃分到超平面的兩側,即對所有yi=+1的實例1,有w.xi+b>0;對所有yi=-1的實例i,有w.xi+b<0,則稱數據集T為線性可分數據集。
? ? 否則,則稱數據集T線性不可分。
注:從上文可看出:
1)如果找到合適的超平面,正確劃分好的兩個區域或空間中,yi和w.xi+b為同符號,同為正值或同為負值,即yi.(w.xi+b)>0;
2)對于沒有完全正確區分的超平面,存在yi.(w.xi+b)<0的xi誤分類點;
3)感知機的優化就是通過對xi誤分類點到待優化超平面S的距離進行最小化調整。
2、感知機學習策略
? ? ? 為了找出這樣的超平面,需要確定學習策略,定義(經驗)損失函數并將損失函數最小化。
在此選取“誤分類點到超平面S的總距離”作為損失函數。
? ? ?首先寫出輸入空間R任一點x0到超平面S的距離(注:點到直線/平面的距離計算見附錄3):
? (基于符號函數中的yi特性)對于誤分類的數據(xi,yi)來說,-yi(w.xi+b)>0成立。
? ? ?因此,假設超平面S的誤分類點集合為M,所有誤分類點到超平面S的總距離為:
感知機損失函數的定義:
【小結】感知機學習的策略,就是在假設空間中選取使損失函數(2.4)最小的模型參數w,b,即感知機模型。
三、感知機學習算法(機器學習三要素之三)
? ? ?感知機學習問題轉化為求解損失函數(式2.4)的最優化問題(最小值min),最優化的方法是隨機梯度下降法(Stochastic gradient descent)。
? ? ?感知機學習算法是誤分類點驅動的(注:這個在林軒田的視頻中也反復提到,戲稱“有錯能改”算法)。
? ? ?本節介紹具體算法,包括原始形式和對偶形式,并證明在訓練數據線性可分條件下學習算法得收斂性(有限次數的優化步驟)。
1、感知機學習算法的原始形式
1)算法思路
? ? 采用誤分類驅動方式,當一個實例點被誤分類,即位于分類超平面的錯誤一側是,則進行w、b值的調整,使分離超平面向該誤分類點的一側移動,以減少該誤分類點跟超平面的距離,直到超平面越過該誤分類點使其被正確分類。? ?
2)梯度的計算方式,
? ? 采用偏導數方式,分別對L求變量w和變量b的偏導,計算損失函數L(w,b)的梯度。具體如下:
?wL(w,b)=-∑yi.xi
?bL(w,b)=-∑yi
上述就是,求得w和b的變化梯度,分別是yixi和yi
普遍性地,隨機選取一個誤分類點(xi,yi),對w和b進行更新
w<—w+ηyixi
b<—b+ηyi
這里,η是自變量的步長,統計學習中又稱為學習率(learning rate)。
通過迭代可以期待損失函數L(w,b)不斷減少,直到為0。
3)感知機學習算法的原始形式
通過上述分析,得到以下算法(算法2.1)
(1)輸入:
? ? ?訓練集T={(x1,y1),(x2,y2),(x3,y3),...,(xn,yn)},其中xi∈X=Rn,yi∈Y={-1,1},i=1,2,...,N;學習率η(0<η≤1);
(2)輸出:
w,b;感知機模型f(x)=sign(w.x+b)
第1步:選取初值w0、b0
第2步:在訓練集中選取數據(xi,yi)
第3步:如果y(w.xi+b)≤0,則進行以下迭代
? ? ? ?w<— w+ηyixi
? ? ? ?b<— w+ηyi
(4)更新w值和b值,轉到第(2)步,直到訓練集中沒有誤分類點
注:算法2.1體現了誤分類驅動
2、感知機學習算法的對偶形式
思路:將w和b表示為實例xi和Label標記yi的線性組合的形式,并通過求解系數求得w和b。
(1)在算法2.1中可假設初始值w0、b0均為0,對誤分類點(xi,yi)通過
w<— w+ηyixi
b<— w+ηyi
(2)逐步修改w、b,假設修改n次,則w,b系數關于(xi,yi)的增量分別就是aiyixi和aiyi,這里ai=niη。
這樣,從學習過程可以看出,最后學習到的w,b可以分別表示為
w=∑(I=1,N)aiyixi
b=∑(I=1,N)aiyi
通過上述分析,得到以下算法(算法2.2)
1)輸入
訓練集T={(x1,y1),(x2,y2),(x3,y3),...,(xn,yn)},其中xi∈X=Rn,yi∈Y={-1,1},i=1,2,...,N;學習率η(0<η≤1);
2)輸出
a,b;感知機模型f(x)=yi(∑(j=1,N)ajyjxj.xi+b)≤0
其中,a=(a1,a2,...,aN)T
(1)a<—0,b<—0
(2)在訓練集選取數據(xi,yi)
(3)如果yi(∑(j=1,N)ajyjxj.xi+b)≤0
ai<—ai+η
b<—b+ηyi
(4)更新a值和b值,轉到第(2)步,直到訓練集中沒有誤分類數據
例題2.2:正樣本點是x1=(3,3)T,x2=(4,3)T,負樣板點是x3=(1,1)T,以下試用感知機學習算法對偶形式求感知機模型
解:
? 按照算法2.2
1)取ai=0,i=1,2,3,b=0,步長η=1
2)計算Gram矩陣
? ? 目前訓練集中有3個實例(3個樣本,2個正樣本,1個負樣本),分別是a1=(3,3),a2=(4,3),a3=(1,1)三個向量
注2:3個實例形成一個Gram矩陣如下:
[A11,A12,A13
A21,A22,A23
A31,A32,A33]
行一列一元素A11=<a1.a1的內積>=3*3+3*3=18;行一列二元素A12=<a2.a1>4*3+3*3=21
行二列三元素A13=<a3.a1>=*3+*3=6;行二列一元素A21的內積=3*4+3*3=21
行二列二元素A22=<a2.a2>4*4+3*3=25;行二列三元素A23的內積=1*4+1*3=7
行三列一元素A31的內積=3*1+3*1=6;行三列二元素A32的內積=4*1+3*1=7
行三列三元素A33的內積=1*1+1*1=2。
推出對應的Gram矩陣如下:
[18,21,6
21,25,7
6,7,2]
3)誤分條件
yi(∑(j=1,N)ajyjxj.xi+b)≤0
參數更新
ai<--ai+1
b<--b+yi
4)迭代,形成以下表格
5)最后形成分離超平面(本章是線性分離直線)
w=2x1+0x2-5x3=(1,1)T(T是轉置)
b=-3
x1+x2-3=0
W的系數都是1
6)得出感知機模型
f(x)=sign(x(1)+x(2)-3)
附錄1 :關于內積的定義
兩個向量的內積等于一個向量的模跟另一個向量在這個向量的方向上的正投影的數量的乘積。
內積的用途是判斷兩個向量的相似度:兩個向量是否接近或相等,判斷就是這兩個向量的內積最大化
附錄2:關于法向量的概念
空間直線L.Ax+By+Cz+D=0的法向量的法向量是(A,B,C)
證明:直線斜率是-A/B,向量斜率是B/A,斜率乘積是-1,所以Ax+By+Cz+D=0與向量(A,B,C,)垂直
附錄3:關于點到平面的距離計算方式
附錄4:為何感知機不能區分XOR函數