陳琦軒 余華云
摘要:在機器學習誕生之時起,線性回歸分類器便體現(xiàn)出優(yōu)越的性能,然而,隨著時代的進步,每類訓練樣本數(shù)量增大,線性分類器的速度變得很慢,也凸顯了線性分類的一個致命弱點:對大樣本數(shù)據(jù)束手無策。即當用于訓練的樣本數(shù)量大于樣本的維數(shù)時,線性分類器會無法工作。解決的辦法之一是對分類器作局部化處理從而對數(shù)據(jù)進行篩選,避免大樣本數(shù)據(jù)問題的出現(xiàn)。然而,隨著神經(jīng)網(wǎng)絡(luò)的興起,對于大樣本數(shù)據(jù)的處理,也有了更多的新興的處理辦法。
關(guān)鍵詞:機器學習;線性回歸分類器;局部化處理;神經(jīng)網(wǎng)絡(luò);大樣本數(shù)據(jù)
中圖分類號:TP391? ? 文獻標識碼:A
文章編號:1009-3044(2020)16-0198-02
1局部線性回歸分類器
在機器學習領(lǐng)域中,分類的目的是指將具有相似特征的對象聚集在一起。而一個線性分類器會透過特征的線性組合來做出分類決定,以達到此種目的。對象的特征通常被描述為特征值,而在向量中則描述為特征向量。
1.1 Softmax線性回歸
Softmax是除SVM(支持向量機)外,另一種常見的線性分類模型,是邏輯回歸推廣的一種形式。
Softmax作為線性分類器的一種,可以從兩個方面來研究它:評分函數(shù),也有人稱之為目標函數(shù)(score function)和損失函數(shù)(loss function)。
1.1.1 Score function
Score function: f(xi;W;b)=Wxi+b。
Softmax的評分函數(shù)與多類別支持向量機是一樣的,都是“線性分類器”的一種,既然都是線性分類器,其計算目標的公式必定是經(jīng)典的線性公式。其中,Softmax對目標的解釋:轉(zhuǎn)換為概率分布。分類器將目標向量看成是沒有歸一化處理的對數(shù)概率分布。經(jīng)過轉(zhuǎn)化以后得到相對應(yīng)類的概率。例如,三個數(shù)字1、2、3,取max每次都會取到3,但是把它們映射成三個概率,取到3的概率最大,但也有取到其他兩個數(shù)的可能,三個概率和為1,這就是Softmax值。即分類器會對線性運算產(chǎn)生的目標向量進行相應(yīng)的轉(zhuǎn)化:通過特定函數(shù)將當前樣本對各個類的評分轉(zhuǎn)換成當前樣本相對應(yīng)其相對類的概率,這個概率就是模型的輸出。這也是Softmax命名的緣由。因為線性運算的結(jié)果在某些情況下不具備很好的解釋性,因此在輸出之前“對目標進行轉(zhuǎn)化”(比如將目標轉(zhuǎn)化為概率)是一種很常見的做法。
1.1.2 Loss function
通過以下公式來計算模型在樣本xi上的loss:
Li[=-log(efyi∑jefj])
這種損失的計算方式稱之為交叉熵,與多類別支持向量機的折葉損失不同,這是由于兩者對評分的解釋不一樣。Softmax的損失函數(shù)是希望正確的概率越高越好。
下面,在Jupyter Notebook中用Softmax分類器來處理下面模型。該數(shù)據(jù)集來源于斯坦福公開課程。數(shù)據(jù)圖形如下所示:
既然是線性分類器,就有線性公式y(tǒng)=wx+b。初始化w以及b。線性分類器只需要做簡單的乘法,就可得到各個類別的目標。用損失函數(shù)來計算損失,即預(yù)測結(jié)果和真實結(jié)果的差值。理想情況下希望正確的類要比其他類有更高的評分,這樣損失就會很低。如果正確類的評分低,則損失就會很高。量化這種數(shù)據(jù)的方法有很多。在這個例子中用前面提到的交叉熵損失。
正確類別的概率值[efyi∑jefj]越大,Li函數(shù)的值就會越小,損失就會很小,即得到的結(jié)果與期待的目標結(jié)果差距很小。若正確類別的概率值越小,Li函數(shù)的值就會越大,那么損失就會很大。那么得到的結(jié)果就與目標數(shù)值差距較大。
得到了單個樣本的損失,又知道訓練樣本的容量,就可以計算出每個樣本的平均損失:1/N∑iLi。
由目標矩陣score計算得出訓練樣本所對應(yīng)各個類別的概率值。通過softmax函數(shù),把三個分數(shù)映射為三個概率。然后將得到的矩陣中的值進行?log運算。得到了一個一維數(shù)組,其中每個元素都是相應(yīng)訓練樣本的正確類別的概率。之后計算完整的損失。
由此得到的loss會很大,需要減小loss的值。當導(dǎo)數(shù)為0的時候,會出現(xiàn)極值點。于是損失(loss)對目標(score)求導(dǎo),根據(jù)鏈式求導(dǎo)法則得到?loss/?score=?loss/?prob*?prob/?score。這里損失由正確類別的概率值決定,而正確類別的概率值由各個類別分數(shù)共同決定,所以求得應(yīng)分別是對三個分數(shù)的導(dǎo)數(shù),最后損失loss對各個分數(shù)的導(dǎo)數(shù)為Pk?1(k=yi)?,F(xiàn)在得到了?loss/?score,我們想得到的是?loss/?w(w為權(quán)重),而?loss/?w=?loss/?score*?score/?w。最后對權(quán)值和偏置進行更新。重復(fù)此過程10000次,得到的損失結(jié)果如下圖所示:
可以發(fā)現(xiàn)從很早開始損失就沒有變化了。打印出精度。
結(jié)果精確度為0.54,這不是一個令人滿意的結(jié)果。這也說明線性分類器在處理大量非線性數(shù)據(jù)時并不能很好的擬合數(shù)據(jù)曲線。
2 BP神經(jīng)網(wǎng)絡(luò)
之前已經(jīng)介紹了Softmax的工作原理:將分數(shù)轉(zhuǎn)換為概率,然后得到預(yù)測結(jié)果,把預(yù)測結(jié)果拿來和期待的目標結(jié)果作比較,并通過損失函數(shù)算出預(yù)測結(jié)果與目標結(jié)果的偏差。把每個訓練樣本都重復(fù)這樣的步驟,最后再綜合所有的損失并得到平均損失。然后通過修改權(quán)值和偏置來使這個損失降低。
而神經(jīng)網(wǎng)絡(luò)的不同之處,就是在結(jié)構(gòu)上增加了一層數(shù)據(jù)層,稱之為隱藏層。
神經(jīng)網(wǎng)絡(luò)中的每個神經(jīng)元的結(jié)構(gòu)都是相同的:每個神經(jīng)元接受多個輸入信號,對輸入信號進行線性運算:output=wx+b=∑i wixi+b。
數(shù)據(jù)經(jīng)過輸入層傳到隱含層,在隱含層會經(jīng)過激勵函數(shù)f(一般為非線性函數(shù))的處理后再傳輸?shù)捷敵鰧?,在輸出層也會?jīng)過與在隱含層相同的激勵函數(shù)f的處理,最后得出結(jié)果,正向傳播結(jié)束。計算出結(jié)果與期待值誤差后再反向傳播并借用誤差更新權(quán)值,上一層的輸出作為下一層的輸入。而這個非線性激勵函數(shù)f,也是神經(jīng)網(wǎng)絡(luò)為什么能夠處理非線性數(shù)據(jù)的原因。
下面繼續(xù)在jupyter notebook中用bp神經(jīng)網(wǎng)絡(luò)的方法去擬合上面的函數(shù)曲線。因為增加了一層數(shù)據(jù)層即我們的隱藏層,所以相比于線性處理初始化的一組權(quán)重和偏置,我們要增加一組,即初始化兩組權(quán)重和偏置。并使用ReLu函數(shù)作為隱藏層神經(jīng)元的激勵函數(shù)。函數(shù)表達式為ReLu(x)=max{0,x},取0和自變量x之中的的最大值。與softmax線性分類器的操作原理基本一致:想得到?score/?output的權(quán)重以及?score/?output的偏置,先計算損失對分數(shù)的導(dǎo)數(shù)?loss/?score。這里由鏈式求導(dǎo)法則可以求出損失對各層權(quán)重的導(dǎo)數(shù)和損失對偏置的導(dǎo)數(shù)。然后通過反向傳播來更新各層的權(quán)重和偏置。跟線性處理一樣我們迭代10000次,看看損失。
相較于Softmax處理的結(jié)果,迭代10000次后損失率已經(jīng)降低到了一個很低的水準。最后打印出精度:
最后的精度也比Softmax高出很多,可以說bp神經(jīng)網(wǎng)絡(luò)更好的擬合了數(shù)據(jù)曲線。結(jié)果讓人非常滿意。
3結(jié)語
由這個實驗我們可以看出,在特定情況下對于非線性數(shù)據(jù)集,神經(jīng)網(wǎng)絡(luò)往往比線性處理器有更好的處理效果,能更好的擬合數(shù)據(jù)曲線。但線性分類模型的作用依然不可忽略,它是非線性分類模型的基礎(chǔ),很多非線性模型都是從線性分類模型的基礎(chǔ)上演化而來,并且在機器學習并不漫長的歷史進程中,線性分類模型也在實踐中證明過自己的作用。無論是線性分類還是神經(jīng)網(wǎng)絡(luò),在人工智能日益影響我們生活的今天,只會發(fā)揮越來越重要的作用。
參考文獻:
[1]WidrowB,Lehr M A.30 years of adaptive neural networks:perceptron,Madaline,andbackpropagation[J].Proceedings of the IEEE, 1990,78(9):1415-1442.
[2] 于秀麗. 對神經(jīng)網(wǎng)絡(luò)學習算法的研究[D].天津:河北工業(yè)大學, 2003.
[3] 張鈴.支持向量機理論與基于規(guī)劃的神經(jīng)網(wǎng)絡(luò)學習算法[J].計算機學報,2001,24(2):113-118.
[4] 趙薇,黃敬雯,靳聰,等.基于卷積神經(jīng)網(wǎng)絡(luò)的聲學場景分類算法研究[J].中國傳媒大學學報(自然科學版),2019,26(2):24-30.
[5] 劉彩紅.BP神經(jīng)網(wǎng)絡(luò)學習算法的研究[J].西安工業(yè)大學學報,2012,32(9):723-727.
[6] 許建生,盛立東.基于改進的支持向量機和BP神經(jīng)網(wǎng)絡(luò)的識別算法[C]//第八屆全國漢字識別學術(shù)會議論文集.紹興,2002:84-89.
[7] 陳永義,俞小鼎,高學浩,等.處理非線性分類和回歸問題的一種新方法(I)——支持向量機方法簡介[J].應(yīng)用氣象學報,2004,15(3):345-354.
[8] 李錦繡. 基于Logistic回歸模型和支持向量機(SVM)模型的多分類研究[D].武漢:華中師范大學, 2014.
[9] 王琳. 支持向量機及相關(guān)理論研究[D].大連:遼寧師范大學, 2010.
[10] 陶卿,曹進德,孫德敏.基于支持向量機分類的回歸方法[J].軟件學報,2002,13(5):1024-1028.
【通聯(lián)編輯:梁書】