張天欣
近年來,機器學習在各個領域發揮出了出色的表現,在自然語言處理,圖像識別,推薦系統等領域都發揮了巨大的作用,成為了當前十分熱門的一個學科領域,這引起了筆者的關注和研究。本文主要介紹了機器學習領域的感知機算法,通過感知機算法的概念、思想,以及理論等方面,全面地介紹了感知機算法在解決線性可分的二分類問題中發揮的作用,并通過它的實際應用以及算法自身的特點,對它未來的發展和完善做出了展望。
【關鍵詞】感知機 線性分類器 機器學習
1 引言
隨著計算機技術的發展以及各種數據及資源的飛速增長。為了有效地管理和利用各種各樣的數據,通過對大量數據的學習使機器具有認識問題和解決問題的能力,這就是機器學習。
機器學習作為人工智能的核心內容,已經開始作為一個獨立的學科領域飛速發展,并滲透于生活中的各個領域。機器學習的整體思路是定義一個有效的目標模型和一個可以衡量目標模型優劣程度的損失函數,通過對數據的學習一步步地優化目標模型使得損失最小的方式來求出最優模型,最終可以利用這個目標模型來完成各種任務。
感知機是機器學習算法中第一個具有重要學術意義的基礎算法,它具有運算簡單,收斂速度快,具有實用價值等特點,是機器學習領域重要的算法之一,同時也是著名的機器學習算法支持向量機(SVM)的基礎。
2 概念
在McCulloch 與Pitts 模型的基礎上 Rosenblatt 首先提出了感知機算法。感知機模型是一個線性分類器,它的目標是通過訓練數據訓練出能夠將數據進行線性二分類的分離超平面。
感知機雖然結構簡單,但能夠學習并解決多種復雜的問題。感知機主要的本質缺陷是它不能直接處理線性不可分問題,以及解決方案的非最優化。
3 感知機原理
3.1 感知機模型
感知機模型就f(x)=sign(w*x+b),即目標模型,我們要做的就是通過已知的數據學習訓練得出w和b這兩個未知參數,得到了這兩個參數也就等同于訓練出來我們的目標模型。
如下由輸入空間x到輸出空間f(x)的函數稱為感知機的模型:
f(x)=sign(w.x+b)
其中w叫做權值(weight)或權值向量,w(w1,w2,w3,…,wn),來表示各個輸入對于輸出的重要程度,b叫做偏置(bias)用來調整整體結果和閾值之間的關系。
sign為符號函數:
感知機模型的原理:每一組參數值
我們要初始化參數
3.2 感知機的學習策略
在數據集線性可分的前提下,感知機的學習目標是通過已知數據訓練出一個超平面,這個超平面需要具有如下特性:能夠將訓練集中的兩類樣本點完全正確分類。為了找到這個超平面,即確定感知機模型參數w,b,需要確定一個學習策略,即定義一個損失函數,來衡量目標模型的優劣,損失函數極小化的過程就是目標模型優化的過程。所以求解目標模型,就可以轉換為求解損失函數的最小值。
如何定義損失函數?一個自然選擇是誤分類點的總數,通過誤分類點的綜述來衡量當前感知機模型的優劣,但是這樣的損失函數存在一個嚴重的問題:對于數據量較小的訓練集,我們可以通過這樣損失函數找到目標模型,但是當數據集的數據量較大時,我們需要通過計算來求出當前損失函數的最小值,而此時的損失函數關于w,b不是連續可導函數,這樣會嚴重影響我們求出損失函數最小值的效率。所以感知機的損失函數采用另一種形式來定義:計算所有點到超平面的總距離,這樣當損失函數為最小值時,意味著所有樣本點分類正確,此時損失函數的參數
感知機f(x)=sign(w.x+b)模型的損失函數定義為(重點):
L(w,b) = -∑yi(w*xi+b)
首先我們需要初始化一組參數< w0,b0>,即初始化一個超平面,然后通過梯度下降法不斷地極小化目標函數,即對損失函數L(w,b) = -∑yi(w*xi+b)分別對w,b求偏導,以求出損失函數最小值。
隨機選取一個誤分類點 (xi,yi),對 w和b 進行更新:
w←w+ηyixi
b←b+ηyi
其中 η 是步長,又稱為學習速率,用來控制w和b更新幅度的大小,η越大,需要更新的次數越少,但是可能跨過最小值,倒置反復更新,而η 越小,則需要更新的次數越多,所以選取適當的η也是一個重要的環節。
這種學習策略可以理解為當一個樣本點被錯誤分類時,則更新w和b的值,直到該樣本點被正確分類。如此循環,直至所有的樣本點都被正確分類
3.3 感知機學習算法
以二維空間為例,感知機的模型即為圖1中的藍色直線,也就是我們要找的可以將紅色點和藍色點區分開的目標模型。例如圖1,紅色作為一類,藍色作為另一類,一旦我們找到了這條直線,那么根據一個點在這條直線的上側還是下側即可判斷該點的分類。如圖1所示。
感知機學習的過程是由訓練集訓練出目標感知機模型的過程,即通過已知的數據x和y求得模型參數w,b,進而得到感知機模型f(x)=sign(w*x+b),這里x和y分別是特征向量和類別(也稱為目標)。
感知機學習算法轉化為求解感知機損失函數的最優化問題,最優化的方法是隨機梯度下降法。
學習算法:
輸入:訓練數據集T、學習率α
輸出:w,b;感知機模型f(x)=sign(w.x + b)
(1)初始參數w0,b0;
(2)依次選取訓練集中所有的數據(xi,yi);
(3)如果yi(w.xi + b) <= 0,即分類錯誤,則使用隨機梯度下降法更新w和b;
(4)轉至(2),直至訓練集中的所有樣本點均被正確分類。
4 展望
4.1 感知機的局限性
感知機最初被認為有著良好的發展潛能,但感知機不能直接解決一些線性不可分問題,而且通過感知機算法找到的目標模型有多個,每一個都能滿足需求,但這多個模型中有一個最優模型,即為支持向量機模型。其次,感知機是面向二分類的任務,目前對于多分類的任務只能簡單地轉換為多個二分類問題來處理。
4.2 感知機的優勢
感知機算法是機器領域的一個基礎算法,對它的學習和能夠更深入的理解其他算法。同時其自身具有系統結構簡單,模型易于訓練,對于二分類問題分類效果十分顯著,學習和預測時間短,使得算法更加高效,其應用也具有更廣闊的前景。
4.3 感知機的發展
感知機面向的是線性分類,但在現實中的分類問題通常是非線性的。簡單的感知機模型主要用于線性分類器,但在近年,在使用核技巧改進感知機學習算法之后,愈來愈多的人對感知機學習算法產生興趣,完善感知機算法,使得多層感知機可用于非線性分器等更復雜的任務上。
感知機目前是針對二分類問題的算法,但是所有的分類問題都可以轉換為多層的二分類問題,也就是通過貴感知機算法的改進,升級,可以提升感知機的分類能力,從二分類改進為可以進行多分類,同時可以將多分類的改進和非線性分類的改進進行結合,進而處理更為復雜的分類任務。
參考文獻
[1]王驚曉.Budget感知機研究綜述[J].電腦知識與技術,2012,8(14):3371-3373+3390.
[2]李紅霞.感知機學習算法模擬與改進[J].信息與電腦(理論版),2009(10):98-99.
[3]劉華煜.基于支持向量機的機器學習研究[D].大慶石油學院,2005.
[4]丁世飛,齊丙娟,譚紅艷.支持向量機理論與算法研究綜述[J].電子科技大學學報,2011,40(01):2-10.
[5]郭亞寧,馮莎莎.機器學習理論研究[J].中國科技信息,2010(14):208-209+214.
[6]張潤,王永濱.機器學習及其算法和發展研究[J].中國傳媒大學學報(自然科學版),2016,23(02):10-18+24.
[7]安增波,張彥.機器學習方法的應用研究[J].長治學院學報,2007(02):21-24.
[8]李運.機器學習算法在數據挖掘中的應用[D].北京郵電大學,2015.
[9]邴欣.機器學習在推薦系統中的應用[D].山東大學,2016.
[10]梁曉音.機器學習在數據挖掘中的應用[J].廣西質量監督導報,2008(11):38-39+42.
作者單位
北京師范大學第二附屬中學 北京市 100088endprint