在上一篇文章中,我們介紹了傳統(tǒng)機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí)和多種算法。在本文中,我們會(huì)介紹人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法,供各位老師選擇。
01
人工神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)模型之所以得名,是因?yàn)樗鶖M合的數(shù)學(xué)模型的形式受到大腦中神經(jīng)元的連接和行為的啟發(fā),最初是為了研究大腦功能而設(shè)計(jì)的。然而,數(shù)據(jù)科學(xué)中常用的神經(jīng)網(wǎng)絡(luò)作為大腦模型已經(jīng)過(guò)時(shí),現(xiàn)在它們只是能夠在某些應(yīng)用中提供最先進(jìn)性能的機(jī)器學(xué)習(xí)模型。近年來(lái),由于深度神經(jīng)網(wǎng)絡(luò)的架構(gòu)和訓(xùn)練方面的快速發(fā)展,人們對(duì)神經(jīng)網(wǎng)絡(luò)模型的興趣日益增長(zhǎng)。在本文中,我們將描述基本的神經(jīng)網(wǎng)絡(luò)以及在生物學(xué)研究中廣泛使用的各種類型。
02
神經(jīng)網(wǎng)絡(luò)基本原理
神經(jīng)網(wǎng)絡(luò)有一個(gè)重要的特性,就是它們可以模擬幾乎任何數(shù)學(xué)函數(shù)。這意味著,只要配置得當(dāng),神經(jīng)網(wǎng)絡(luò)可以非常準(zhǔn)確地模擬任何復(fù)雜的過(guò)程,無(wú)論是生物學(xué)過(guò)程還是其他類型的過(guò)程。這種能力是神經(jīng)網(wǎng)絡(luò)幾十年來(lái)備受關(guān)注的原因之一。人工神經(jīng)元是構(gòu)成神經(jīng)網(wǎng)絡(luò)的基本單元。我們可以把人工神經(jīng)元想象成一個(gè)簡(jiǎn)單的數(shù)學(xué)公式,它接收一些輸入值,對(duì)這些輸入值進(jìn)行一些計(jì)算,然后輸出一個(gè)結(jié)果。這個(gè)過(guò)程可以用下面的公式表示:
xi是輸入值,比如一個(gè)特征或變量;wi是每個(gè)輸入值的權(quán)重;b是偏置項(xiàng),可以調(diào)整每個(gè)神經(jīng)元的輸出范圍,使其更靈活;σ 是激活函數(shù),它對(duì)輸入值進(jìn)行非線性變換,使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)和表示更復(fù)雜的函數(shù)。為了構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò),這些人工神經(jīng)元會(huì)被分層排列。每一層的輸出會(huì)成為下一層的輸入。這樣,信息會(huì)在網(wǎng)絡(luò)中逐層傳遞,最終得到一個(gè)輸出結(jié)果。網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)(即人工神經(jīng)元)都會(huì)執(zhí)行上面的計(jì)算,然后將結(jié)果傳遞給下一層。排列人工神經(jīng)元的各種方法,被稱為“神經(jīng)網(wǎng)絡(luò)架構(gòu)”。
03
神經(jīng)網(wǎng)絡(luò)架構(gòu)方法
多層感知器
多層感知器是最基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)模型,由多層全連接的神經(jīng)元組成。輸入神經(jīng)元代表數(shù)據(jù)特征,每對(duì)神經(jīng)元之間的連接代表一個(gè)可訓(xùn)練的權(quán)重。優(yōu)化這些權(quán)重的過(guò)程稱為訓(xùn)練。輸出神經(jīng)元代表最終的預(yù)測(cè)結(jié)果。多層感知器能做出復(fù)雜的決策,因?yàn)槊繉由窠?jīng)元都會(huì)接收前一層所有神經(jīng)元的輸出。盡管在許多應(yīng)用中已被新型模型超越,多層感知器仍因訓(xùn)練簡(jiǎn)單和快速而廣泛用于生物建模。新型模型也常使用全連接層作為子組件。
圖1. 多層感知器模型
卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)特別適合處理具有局部結(jié)構(gòu)的數(shù)據(jù),其中數(shù)據(jù)具有一些類型的局部結(jié)構(gòu),而識(shí)別這種結(jié)構(gòu)是分析的關(guān)鍵目標(biāo)。CNN由一個(gè)或多個(gè)卷積層組成,其中輸出是通過(guò)對(duì)輸入數(shù)據(jù)的局部特征組應(yīng)用一個(gè)小的一層全連接神經(jīng)網(wǎng)絡(luò)(稱為“過(guò)濾器”或“核”)得到的結(jié)果。對(duì)于圖像,這個(gè)局部區(qū)域是一小塊像素。卷積層的輸出也是類似圖像的數(shù)組,表示過(guò)濾器在整個(gè)輸入上滑動(dòng)并在每個(gè)位置計(jì)算輸出的結(jié)果。在生物學(xué)中,CNN在蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)、基因變異識(shí)別、3D基因組折疊、DNA-蛋白質(zhì)相互作用、低溫電子顯微鏡圖像分析和醫(yī)學(xué)圖像分類等任務(wù)中取得了顯著成功,表現(xiàn)常常與專家水平相當(dāng)。
圖2. 卷積神經(jīng)網(wǎng)絡(luò)模型
循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)最適合處理有序的序列數(shù)據(jù),比如文字或時(shí)間序列,其中每個(gè)數(shù)據(jù)點(diǎn)與前一個(gè)數(shù)據(jù)點(diǎn)之間有某種聯(lián)系。RNN的工作原理是,它會(huì)逐個(gè)處理序列中的每個(gè)數(shù)據(jù)點(diǎn),并根據(jù)之前的數(shù)據(jù)點(diǎn)生成輸出。這樣,RNN可以生成整個(gè)序列的表征,這個(gè)表征可以傳遞給網(wǎng)絡(luò)的其他部分進(jìn)行進(jìn)一步處理。這使得RNN可以處理任意長(zhǎng)度的序列,并將其轉(zhuǎn)換為固定大小的表征,方便后續(xù)分析。在生物學(xué)中,RNN有很多應(yīng)用,比如分析基因或蛋白質(zhì)序列。例如,經(jīng)過(guò)大量蛋白質(zhì)序列訓(xùn)練的RNN能夠捕捉到進(jìn)化和結(jié)構(gòu)信息,并應(yīng)用于設(shè)計(jì)新型蛋白質(zhì)序列。
圖3. 循環(huán)神經(jīng)網(wǎng)絡(luò)模型
圖卷積網(wǎng)絡(luò)
圖卷積網(wǎng)絡(luò)(GCN)特別適合處理那些雖然沒(méi)有明顯的可視結(jié)構(gòu),但由實(shí)體通過(guò)各種關(guān)系或互動(dòng)連接組成的數(shù)據(jù)。在生物學(xué)中,這類數(shù)據(jù)的例子包括分子(由原子和化學(xué)鍵組成)和蛋白質(zhì)-蛋白質(zhì)相互作用網(wǎng)絡(luò)(由蛋白質(zhì)和它們之間的相互作用組成)。圖卷積網(wǎng)絡(luò)利用圖的結(jié)構(gòu)來(lái)決定信息在神經(jīng)網(wǎng)絡(luò)中的流動(dòng)方式。在網(wǎng)絡(luò)中更新每個(gè)節(jié)點(diǎn)的特征時(shí),會(huì)考慮相鄰節(jié)點(diǎn)的特征。最后一層的節(jié)點(diǎn)特征可以作為輸出。圖卷積網(wǎng)絡(luò)還可以結(jié)合不同的信息源進(jìn)行預(yù)測(cè)。例如,可以結(jié)合藥物-基因和食物-基因關(guān)系圖來(lái)預(yù)測(cè)有助于防癌的食物。
圖4. 圖卷積網(wǎng)絡(luò)模型
自編碼器
自編碼器是一種特殊的神經(jīng)網(wǎng)絡(luò),它的目標(biāo)是將數(shù)據(jù)壓縮成一個(gè)更小、更簡(jiǎn)潔的形式,然后再還原回原來(lái)的樣子。自編碼器分為兩部分:
編碼器:編碼器是一個(gè)神經(jīng)網(wǎng)絡(luò),負(fù)責(zé)將輸入數(shù)據(jù)轉(zhuǎn)換為一個(gè)緊湊的內(nèi)部表示,稱為“潛在向量”或“潛在表示”,表示新空間中的一個(gè)點(diǎn)。
解碼器:解碼器將這個(gè)潛在向量還原成與原始輸入相同維度的數(shù)據(jù)。
整個(gè)過(guò)程可以理解為:編碼器將數(shù)據(jù)“壓縮”成一個(gè)小文件,解碼器再將這個(gè)小文件“解壓縮”回原來(lái)的數(shù)據(jù)。雖然看起來(lái)像是多此一舉,但這樣做有兩個(gè)好處:通過(guò)壓縮和解壓縮,自編碼器能夠?qū)W習(xí)數(shù)據(jù)的重要特征,比如數(shù)據(jù)點(diǎn)之間的相似性;訓(xùn)練完成后,解碼器可以單獨(dú)使用,生成新的數(shù)據(jù)樣本。這些新樣本可以在實(shí)驗(yàn)室中測(cè)試,有助于合成生物學(xué)的研究。自編碼器已應(yīng)用于一系列生物學(xué)問(wèn)題,包括預(yù)測(cè)DNA甲基化狀態(tài)、基因和蛋白質(zhì)序列的設(shè)計(jì)以及單細(xì)胞RNA測(cè)序分析。
圖5. 自編碼器模型
04
訓(xùn)練和改進(jìn)神經(jīng)網(wǎng)絡(luò)
選擇了一個(gè)合適的神經(jīng)網(wǎng)絡(luò)模型后,通常先用單個(gè)訓(xùn)練樣例(例如,單張圖像或單個(gè)基因序列)對(duì)其進(jìn)行訓(xùn)練。這種訓(xùn)練模型本身并不適用于預(yù)測(cè),但可以幫助揭示編程錯(cuò)誤。訓(xùn)練損失函數(shù)應(yīng)該迅速趨近于零,因?yàn)榫W(wǎng)絡(luò)只是記住了輸入;如果做不到這一點(diǎn),代碼中可能存在錯(cuò)誤,或者算法不夠復(fù)雜,無(wú)法建模輸入數(shù)據(jù)。一旦網(wǎng)絡(luò)通過(guò)了這個(gè)基本的調(diào)試測(cè)試,就可以開(kāi)始對(duì)整個(gè)訓(xùn)練集進(jìn)行訓(xùn)練,最小化訓(xùn)練損失函數(shù)。這可能需要調(diào)整超參數(shù),如學(xué)習(xí)率。通過(guò)監(jiān)控訓(xùn)練集和驗(yàn)證集的損失,可以檢測(cè)到網(wǎng)絡(luò)的過(guò)擬合現(xiàn)象,即訓(xùn)練損失繼續(xù)下降,而驗(yàn)證集的損失開(kāi)始增加。通常在這個(gè)時(shí)候停止訓(xùn)練,這個(gè)過(guò)程稱為提前停止。提前停止是防止過(guò)擬合的好方法,但訓(xùn)練過(guò)程中還可以使用其他技術(shù),如模型正則化或dropout技術(shù)。
在這一系列文章中,我們先后介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí),包括基本概念和重要術(shù)語(yǔ)。隨后分別介紹了傳統(tǒng)機(jī)器學(xué)習(xí)和人工神經(jīng)網(wǎng)絡(luò),并詳細(xì)描述了多種機(jī)器學(xué)習(xí)模型和神經(jīng)網(wǎng)絡(luò)架構(gòu)方法。通過(guò)這四篇文章,老師們可以全面了解機(jī)器學(xué)習(xí)的核心概念和技術(shù),為進(jìn)一步深入學(xué)習(xí)和應(yīng)用做好準(zhǔn)備。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4774瀏覽量
100898 -
人工神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
1文章
120瀏覽量
14647
原文標(biāo)題:生物學(xué)家的機(jī)器學(xué)習(xí)指南(四)-神經(jīng)網(wǎng)絡(luò)模型小百科
文章出處:【微信號(hào):SBCNECB,微信公眾號(hào):上海生物芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論