基因組學中的深度學習

全文6,743字,閱讀30分鐘。

這一篇文章的主題是深度學習在基因組學中的應用情況的。文章較長,讀完要花些時間,不過我的建議是通讀第一部分——關于如何進行模型訓練的內容,讀完后你應該可以理解機器學習模型的訓練過程和邏輯,剩下的部分可以挑重點的看。

基因組學其實是一門將數據驅動作為主要研究手段的學科,機器學習方法和統計學方法在基因組學中的應用一直都比較廣泛。

不過現在多組學數據進一步激增——這個從目前逐漸增多的各類大規模人群基因組項目上可以看出來,這其實帶來了新的挑戰——就是數據挖掘的難度增加了。我們要高效地從多組學數據中挖掘出有價值的信息,那么就需要掌握更富有表現力的方法,這個時候深度學習就成了一個合適的選擇。因為就目前來說深度學習本身就適合用來挖掘大量的、多維度數據背后的潛在規則,它也已經改變了多個計算機領域,包括圖片識別、人臉識別、機器翻譯、自然語言處理等。近年來深度學習在基因組學領域也有了不少的研究和應用,我這篇文章主要基于 Nature Reviews Genetics 上《Deep learning- new computational modelling techniques for genomics》的內容,同時我也做了一些額外的補充,目的是和大家一起梳理一下目前深度學習在基因組學研究方面的應用情況。這篇文章主要分為下面四個部分:

  • 第一,介紹有監督學習中四個主要的神經網絡,分別是:全連接網絡、深度卷積、循環卷積和圖卷積,同時解釋了如何將它們用來抽取基因組數據中常見的 Pattern;
  • 第二,介紹多任務學習和多模態學習,這是兩種適合于集成多維數據集的建模方法;
  • 第三,討論遷移學習,這是一種可以從現有模型中開發新模型的技術。這個方法對于多組學的研究和應用來說有著實際的價值;
  • 第四,討論自動編碼器(Autoencoder, AE)和生成對抗網絡(generative adversarial networks,GANs)這兩個非監督學習方法。

好,接下來,我將逐一展開介紹這四個方面的內容,同時為了讓你可以更好地理解這篇文章,我穿插補充了一些關于機器學習的背景知識。

第一部分

這一部分的內容與有監督學習有關,因此我們要先了解什么是“有監督學習”。圖1 是有監督學習的一個示意圖:

圖1.有監督學習示意圖

簡單來說,有監督學習的過程是輸入樣本的特征值(這個特征值可以是一個值,也可以由是一系列值構成的向量),然后預測出樣本屬于哪一個結果標簽(或叫做“標注”)。比如 圖1 是一個預測 RNA 剪接位點的例子,這里模型要依據樣本的特征值(如:位點序列信息、位置、內含子長度等)進行計算得到一個是否為剪接位點的預測結果。

另外,圖1 其實是一個由邏輯回歸組成的單層神經網絡分類模型。

所以,有監督學習是一種需要使用標簽化數據進行訓練,然后推斷出輸入特征和結果標簽之間函數映射關系的機器學習方法,模型的訓練數據需要有明確的結果標簽,否則不能訓練。搞清楚定義之后,那有監督機器學習是如何進行模型訓練的呢?所謂訓練其實就是求解模型參數。這個過程具體是如何實現的呢?

圖2. 模型訓練

這個訓練過程一共三步(圖2)——這也是絕大多數機器學習算法進行模型訓練的方式,具體如下:

1. 分割數據

首先,要將訓練數據分割為三個集合,分別是:訓練集,驗證集和測試集(如圖2.a) 。其中,訓練集用于模型參數的計算,驗證集用于模型性能評估和超參調整,目的是為了保障模型可以在現有數據條件下達到最好的結果,而測試集則是用來評測最終模型的綜合性能。

2. 使用訓練集數據計算模型參數

還是以圖2為例——我們這里圖2是一個神經網絡模型,訓練開始時,首先要給這個網絡中的各個參數進行一次隨機初始化,然后再代入訓練數據去迭代更新模型參數。每一次的迭代時,通常都是隨機地從訓練集中抽取一小撮數據(圖2.a中的Batch)代入模型進行計算——注意這個過程非常重要,然后和真實結果比較獲得函數損失量。在神經網絡的訓練中目前要通過反向傳播算法做梯度運算獲得能讓模型的參數往損失函數最小化的方向走的值,模型的參數要依據這個極值的結果進行更新。接著再重新到訓練數據中隨機抽取另一小撮的數據集重復這一輪迭代,直到損失函數收斂。

反向傳播算法是神經網絡模型的基礎,沒有這個算法就無法高效地實現梯度下降算法中梯度值的計算。

這種訓練時僅從訓練集里隨機抽取一小撮數據集的做法與一次性使用整個訓練集的做法相比有兩個好處:

  • 第一,模型訓練所需的內存將比較恒定。因為不必將大量的數據一次性加載到內存里,因此,模型能不受計算機的內存所限,可以使用盡可能大的訓練集數據,訓練過程的可拓展性比較高;
  • 第二,在機器學習領域其實已經證明,這種小批量數據集的方法會給模型帶來一定程度的隨機波動,而這種波動有利于模型性能的提升。

3. 通過驗證集調整模型的超參

所謂超參,就是“超級參數”,它是模型中一個(或一些)需要人為設定的外部參數,而且是無法通過訓練集進行訓練的,只能進行手動調整。比如,我們要在進行模型訓練之前,先給模型的某部分乘上某一個固定的常數/向量,這個常數/向量無法訓練,它就是“超參”。通常只能一邊調整一邊在驗證集上評估結果,最后留下一個“看起來”能夠最準確貼近驗證結果的參數。這是一個很繁瑣的過程,需要多次嘗試,直至模型性能不再出現改善為止。

調超參一直都是機器學習模型訓練的一個難點。

當你完成最后的調參之后,用另一個獨立數據——也就是這里的測試集,綜合評估這個最佳模型的性能,主要是看看是否存在過擬合或者功效不足的情況,沒問題之后就可以用到項目中了。以上,就是訓練一個神經網絡模型的主要過程。再次強調一次:一共是三步,分別是:分割數據、使用訓練集計算模型參數、通過驗證集調整模型超參并用測試數據綜合評估最終模型的性能。了解了以上背景內容之后,我們就可以轉入深度學習的內容了。對于很多比較簡單的問題而言,一個單層的神經網絡通常是可以滿足要求的。但對于維度更多、更復雜的生物學問題來說,單層是不夠用的,只能通過更復雜的模型才能處理這類數據。圖3是一個多層神經網絡模型的示意圖。

圖3. 一個多層神經網絡示意圖

這個網絡有兩層,而且你可以看到中間一層不與輸出層相連接,對于輸出來說是一個不可見的“層”,所以也被稱為隱藏層,它的作用是將上一層的輸入數據做轉換,將其映射到一個可以對特征值進行線性分離的空間,然后通過激活函數進行非線性化,再給到后一層作為輸入。這個模型是深度神經網絡的雛形,當你的模型有許多個中間隱藏層(>2)時,這個模型就稱之為深度神經網絡模型。深度神經網絡使用隱藏層來自動學習非線性特征的各類變換。模型里的每一個隱藏層都可以是多個線性模型疊加一個激活函數所構成,激活函數非常重要,它起到了將線性模型非線性化的作用,否則你的模型就無法通過非線性的形式描述真實世界的生物學問題(因為這些問題本身通常就是線性模型無法解答的)。目前深度學習中用得最多的激活函數是ReLU,這是一個線性整流函數(負數賦值為0,正數不變):

圖4. ReLU

深度學習模型的訓練也和上面所術的過程一致。區別就在于,它涉及的參數多,需要更多的訓練數據和更長的時間才能得到理想的結果。對于我們來說深度神經網絡的構建和訓練可以用專門的深度學習框架來實現,比如:TensorFlow、PyTorch和Keras等。

全連接網絡層

在說完上面的關于模型訓練的內容之后,接下來要說的是第一部分中的第一個概念:全連接網絡層(Fully connected layer)。

什么?!第一部分才剛開始嗎.....?

全連接網絡層一般是深度學習模型的倒數第二、第三層,它在網絡中主要起分類器的作用,本質上就是將前面各層訓練得到的特征空間線性地變換到另一個特征空間(即,結果空間——其實就是結果集)中。結果空間的每一個維度都會受到源空間所有維度的影響,數據被利用得很充分,所以可以很準確地將獲得分類結果。這么說比較抽象的話,可以通俗理解為,經過全連接層的計算之后,目標預測結果就是前面各層結果的加權和了。以全連接層結成的神經網絡也叫全連接神經網絡,全連接神經網絡在基因組學里也都有所應用,比如一開始我提到的剪接位點預測,還有致病突變預測、基因表達預測特定基因區域內順式調控元件的預測等,但全連接層神經網絡運算量很大。

深度卷積神經網絡

接下來,我們用深度卷積神經網絡(也就是CNN)作為例子,介紹序列模式特征的發現過程。如圖5 所示,這個模型要通過神經網絡預測TAL1-GATA1轉錄因子復合物的結合親和力。

圖5. 基于CNN的序列模式特征檢測

圖中,從左到右,第一層分別以 GATA1 和 TAL1 轉錄因子的位置為權重濾波器,滑動掃描整個 DNA 序列,然后卷積計算每一個掃描框中的結果形成一個權重矩陣(b-c),再使用 ReLU 激活函數——這個激活函數會將負值重新賦為0,正值則保持不變,進一步做運算。然后再用最大池化操作(圖中的Max pooling),獲取位置軸上各個連續窗口內的最大加權結果,再傳入下一個卷積層進行新一輪的運算和特征訓練,過程與第一個卷積層類似,最后再經過一個全連接層,得到最終想要的預測結果。目前利用 CNN 對序列特征預測轉錄因子結合位點的方法有三個,分別是DeepBind、DeepSEA和Basset。而且這是目前 CNN 在基因組序列特征預測方面做的比較成功的例子。

循環卷積神經網絡

介紹完CNN之后,我們開始探討循環卷積神經網絡——簡稱RNN。鑒于它的特征,目前它主要在基因組遠端調控預測方面有所運用。這是因為 RNN 相比于 CNN,它更加適合用于處理序列化的數據,包括時間序列數據、語言數據、文字翻譯以及 DNA 序列數據,而且 RNN 對每一段序列單元都使用相同的操作,參數之間由一定的方式進行共享。

圖6. RNN

鑒于 RNN 模型的這些特點,它既可以有效地在DNA序列的任意位置上進行開放讀碼框的預測,也可以用來識別某類特定的輸入序列,比如起始密碼子預測、終止密碼子預測等。相比于CNN,RNN模型的主要優勢在于,RNN模型可以很自然地處理長度變化很大的DNA序列,比如mRNA序列就很適合通過RNN模型來進行處理和分析。如果CNN要達到類似的效果,需要作出很多繁瑣的模型調整。不過,由于 RNN 只能對序列進行從前到后的順序操作,因此也不太容易進行并行化處理,這就導致它的速度要比 CNN 模型慢很多。在基因組學的應用方面,RNN 主要是用在單細胞 DNA 甲基化預測、RNA binding protein預測和表觀遺傳學中DNA長序列可及性的預測(也就是長序列調控的預測)。如果你對這一塊感興趣可以試試 deepTarget/deepMiRGene,它們就是干這些事情的。此外,最近有一項研究發現,RNN模型還可用在測序數據的堿基識別(即Base-calling)。這在三代測序數據的Base-calling中有應用,DeepNano 就是通過構造合適的 RNN 模型對 Oxford Nanopore 測序儀所產出的長讀長測序序列進行堿基識別的方法。

圖卷積神經網絡

圖卷積神經網絡模型(GCN)圖6(d),在基因組學中涉及的應用還很少。它比較合適的應用場景是蛋白質之間互作用的網絡或者基因與基因之間的調控網絡上。因為這兩個方面的網絡,在邏輯上都將是以圖結構的形式呈現。圖卷積神經網絡通過圖中代表個體特征的節點和節點與節點之間的連接性來實行機器學習任務。雖然應用還比較少,但GCN實際上提供了一種分析圖結構數據的新方法,值得在基因組學中進行更多的嘗試和應用,比如可以嘗試利用它來解決腫瘤亞型的分類等。

第二部分

第二部分要介紹的內容是“多任務學習和多模態學習”。之所以涉及到這個方面,是因為基因數據實際上并非只有 DNA 序列這一類遺傳方面的數據,還涉及到轉錄組、表觀組修飾、蛋白組等多組學數據,而且數據在彼此之間存在著一定的內在關系。如何處理和整合這些多組學數據就涉及到“多任務和多模態學習”這個問題了。在多模態學習模型的構成中,它有一個總損失函數,它的值是各個模態數據損失函數之和或者加權和,這取決于各個模態之間損失函數的結果是否差異巨大。下面圖7.a-c 是一個多任務和多模態學習的示意圖。這類模型的訓練往往比較困難,因為需要同時優化學習網絡中多個不同的損失函數,并且往往還得做出合適的取舍,每一個取舍都要有合理的內在理由。而且如果不同的類型的數據之間,出現了較為嚴重的權重失衡的話——比如出現”一超無強”的情況,那么最終的模型可能僅能代表一小撮數據的結果,這就會讓模型出現嚴重偏差。

圖7. 多任務與多模態學習模型

基因組學領域,已經成功應用多任務學習和多模態學習的一個場景是對多種不同的分子表型的預測,比如前面提到的轉錄因子結合位點、組蛋白標記、DNA可及性分析和不同組織中的基因表達等這一類與轉錄組學和表觀基因組學相關的多組學研究。

第三部分

這一部分我們來說說遷移學習。遷移學習與上述內容都不同,它是一種解決訓練數據稀缺問題的機器學習方法。因為數據稀缺或者數據缺失的情況下,從頭訓練整個模型可能是不可行的。那么一個取而代之的方法就是使用相似結構的任務,以及由它訓練得到的模型的大多數參數來初始化我們的目標模型。你可以理解為,這是一種將先驗知識整合到新模型中的機器學習方法,它可以在一定程度上解決訓練數據不足的問題。比如 圖8 這個例子,你可以看到在這個例子中,源模型的數據很充足,且源模型中第一個子模型的結構和預測結果的形式都跟目標模型相似(都是橢圓),那么這時我們就可以將源模型里這個子模型的相關參數遷移到下方的目標模型里,對目標模型進行初始化,接著再利用有限的訓練數據對目標模型進行更新就可以了。

圖8. 遷移學習

在基因組學中,遠程調控的預測模型就應用到了遷移學習。不過遷移學習在組學方面的應用還缺少深入的研究,比如目前依然不清楚應該如何選擇合適的源模型、以及源模型中有哪些參數適合共享到目標模型中等。

深度學習模型的可解釋性問題

這個問題對于深度學習來說是天生的,但它關系著深度學習是否適合被充分應用到生命健康領域。我們知道深度學習模型的一個問題是黑盒子效應——我們無法得知模型的具體訓練細節以及中間特征參數的變化。這對于基因組學研究來說是不利的,這是因為組學研究最后的服務對象是我們人類自身的健康(特別是重大的健康問題),沒有人真的愿意將重大的健康問題交給一個沒人理解的黑盒子處理,所以我們還是有必要對深度學習模型的可解釋性進行一定的研究。但遺憾的是目前對深度學習模型的黑盒子效應,似乎尚未有特別有效的解密方法。目前主要是通過不斷給出示例數據,探查輸入和輸出結果之間的關系來推測和評估模型所用到的特征和權重,給出特征重要性評分(Feature important score),可用的方法包括:歸因分數、相關性系數或權重共享系數等。不過在深度學習領域,最近有一個稱為DCell的模型,它提出了一種稱為“可見神經網絡”的技術,通過它可以檢查神經網絡的訓練情況,進而再改善神級網絡的可解釋性。

第四部分

最后這部分討論非監督學習在基因組學方面應用的問題,這里主要介紹自動編碼機(Autoencoder, AE)和生成對抗網絡(generative adversarial networks,GANs)這兩類非監督學習方法,其中生成對抗網絡在基因組學的首次應用是在單細胞基因組研究中。非監督學習與有監督學習不同,它的訓練數據并不需要標記。模型的目的是通過學習數據集中有用的特征和屬性來表征整個數據集的結構。最典型、最被熟知的非監督學習方法就是k-means聚類和降維算法(如PCA、tSNE)。神經網絡也有類似的方法,比如自動編碼機(AE),就是一種能夠將數據嵌入到一個含有隱藏瓶頸層的低維空間中并對原始數據進行重建的方法,如圖9所示。

圖9. 自動編碼機(AE)

這個方法很特別,而且非常有用的一點是它能夠對原始數據進行有效的“降噪”!這是因為網絡中間有一個維度較低的瓶頸層存在,它會迫使網絡在學習的過程中盡可能提取更有用的特征,那些不重要的特征變化會被自動遺漏。而且,在該瓶頸層中的數據已經實現了降維,這個正好可以與PCA相呼應。另外,自動編碼機適合用于缺失數據的填補,特別是可以用來填補基因芯片數據的缺失值和處理RNA-seq中基因表達數據中的異常值處理。另一個非監督神經網絡是生成模型。生成模型不同于前面提到的方法,它的目的是學習數據的生成過程。代表性的例子就是生成對抗網絡(GANs)和可變自動編碼器(VAEs)。其中,VAEs方法可以生成新的隨機樣本,可以用在單細胞和RNA-seq數據中,用來協助尋找統計意義的結果。GANs是另一種生成模型,它包含一個鑒別器和一個生成器網絡。這兩個網絡會進行共同訓練,生成器用來生成真實的數據點,而鑒別器則用于區分樣本是真實的或是由生成器所生成,圖9(c)也是對該過程的一個描述。不過目前GANs,在基因組學中的應用非常有限,目前只看到在設計和蛋白質相關的DNA探針方面有所應用。

小結

關于目前深度學習在基因組學方面的應用和研究情況就介紹到這里了。在未來深度學習肯定是會深刻影響這個領域的,具體來說主要有三個方面:

  • 第一,協助對非編碼區變異的功能進行預測,這是目前傳統方法做得比較差的一個方面;
  • 第二,深度學習是一種完全由數據驅動的方法,它會進一步革新當前的生物信息學工具,我可以將它稱為新生信,這個也是目前最熱的,除了文章中所提到的新算法之外,變異檢測算法DeepVariants和Clair也屬于這一方面;
  • 第三,高效揭示多組學中高維數據的更多結構。

除此之外,對于未來還有一個非常重要的領域,那就是因果推斷。不管是傳統的機器學習方法,或是現在的深度學習方法,都很難用于預測數據之間的因果聯系,而因果關系對于生命科學研究來說十分重要,目前雖有過一些嘗試——比如孟德爾隨機,但其實都比較初步??偟膩碚f,這是一個很值得我們去進一步探索的地方,可以從零開始,而這也是我們的機會!

最后還有一句話:不要迷信模型。模型是解決問題的工具,用好工具是我們的追求,但問題的解決應以人為本。

參考文獻 Deep learning- new computational modelling techniques for genomics


如果喜歡更多的生物信息和組學文章,歡迎搜索并關注我的微信公眾號 ID: helixminer

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,412評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,514評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,373評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,975評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,743評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,199評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,262評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,414評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,951評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,780評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,527評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,218評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,649評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,889評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,673評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374