李 碩
同濟大學軟件學院,上海 201804
機器學習方法經常被應用到解決醫學和生物信息學的問題。在這個報告中我列舉了一些把機器學習方法應用到生物信息學領域的實例。比如:組建多重神經網絡,運用該神經網絡對4種不同形勢的腫瘤患者進行分類。
人工神經網絡屬于機器學習領域。關于人工神經網絡的概念最早提出于1940年代。后來在1980年代后被推廣應用,尤其是在醫學領域。
其中一個非常有用的用途是對疾病進行分類,達到診斷的目的,或者對基因表達進行分類。在這類神經網絡里面,k點最近鄰居算法是最常被采用的算法。
人工神經網絡的優點是:不需要人們蛆關注神經網絡里面的細節信息;人工神經網絡可以很容易地被重新訓練來應對不同地分類數據。人工神經網絡可以用來解決有監督學習和無監督學習,比如:自組織特征映射(self-organized feature map)就可以用來解決無監督學習的問題。
它的不足之處在于:人工神經網絡往往需要大量的訓練數據,而這些訓練數據往往不是很容易獲得。人工神經網絡可以被看作是一個黑盒,它的細節隱藏在點點之間的權值里面。這些權值的意義是人類無法理解的。同時,人工神經網絡需要被仔細的訓練以避免過擬合的情況出現。我們常常需也要降低高維數據的維度。下面,我將分析介紹人工神經網絡的具體應用。
人工神經網絡的結構如圖1所示:

圖1
X1,X2,X3是該神經網絡的輸入值,w0,w1,w2,w3是該神經網絡的輸入結點到內部節點的路徑權值,每個神經元的激活函數是如上圖右側所示的函數圖像。
這個函數被稱作為sigmoid函數,表達式如下:

多重神經網絡通常有3層,事實上,3層神經網絡以能進行很好的分類效果。這三個層包括輸入層,隱藏層,輸出層。在每個神經元內部我們可以選擇sigmoid激活函數或其他種類的激活函數。
如圖2所示:

圖2
單個神經元僅能提供線性的分割面,所以多層神經網絡可以提供非線性的分類函數(即:若干個線性分割面的復雜組合)。這并不意味著4層神經網絡就一定比3層神經網絡能一共更好的分類效果,因為層數越多,需要的訓練集就越龐大,得到的效果也不會提高。
既然有訓練問題,就會涉及到訓練算法。較為早的和著名的訓練算法是delta 規則。它于20世紀60年代被提出。它的原理是計算理論輸出值和世紀輸出值的均方差。tp 為理論輸出值,yp為實際輸出值,表示為:

訓練的開始階段,我們通常設定一個隨機選取值,令該值等于:

該公式里,α是學習速率,學習速率越大,學習的過程就越快,完成學習的時間短。但如果學習的速率過大,可能導致網絡的理想權值在合理結果的附近游擺而永遠無法獲得理想的權值。
神經網絡被訓練好了以后,它就被用到解決目標問題。原始的數據集可以被分為兩部分:一部分用來訓練,一部分用來測試。
有時候神經網絡會把訓練數據集里面的噪音點的特征納入自己的權值表達里,從而該神經網絡無法真正體現該點集的真實特征。我們把這種情況叫做過擬合。過擬合是由于網絡比待估函數復雜造成的。比如一個可以同3層網絡解決的問題,我們用4層網絡或者由更多神經元的三層網絡去解決該問題,就容易造成過擬合。為了更好的明確訓練時所采用的神經網絡的隱藏層的層數,Livingstone 和 Manalack 提出了如下計算公式:

該公式里m是訓練樣本的數目,o是該網絡的輸出值,w是網絡權值的數目,D就是隱藏層的數目。
得到了隱藏層的數目之后,我們可以以這個數目創建神經網絡,邊訓練邊削減,直到我們獲得一個一半化的網絡。對于沒有隱藏網絡層或只有一個隱藏網絡層的神經網絡,我們需要先確定它要解決的問題是否是線性的。
適當的訓練方案是能也可以使網絡的復雜性和數據的復雜性得到合適的匹配。一個合適的訓練方案應該是如下步驟:首先選擇一個很大的網絡并且把它的每個權值都設到一個很小的值上。通過訓練,這些權值可以逐漸游擺到一個合理的值。
由于初始數據集通常要被分為訓練集和測試集。在醫學領域,我們能獲得的數據集往往很小,比如某種病的病人數目不會很大。所以我門需要采用交叉驗證的技巧來是較小的數據集在被分為訓練集和測試集之后能較好的訓練神經網絡。
[1]Machine learning in bioinformatics: A brief survey and recommendations for practitioners.Harish Bhaskar,David C.Hoyle, Sameer Singh.