最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

蛋白質深度學習

2023-05-10 22:18 作者:HuggingFace  | 我要投稿

本文主要面向兩類目標讀者: 一類是想使用機器學習的生物學家,一類是想進入生物學領域的機器學習研究者。如果你不熟悉生物學或機器學習,仍然歡迎你閱讀本文,但有時你可能會覺得有點讀不太懂!如果你已經熟悉這兩者,那么你可能根本不需要本文 —— 你可以直接跳到我們的示例 notebook 以查看這些模型的實際應用:

  • 微調蛋白質語言模型 (PyTorch,TensorFlow)

  • 使用 ESMFold 進行蛋白質折疊 (PyTorch,因為?OpenFold?僅支持 PyTorch,所以目前僅支持 PyTorch)

面向生物學家的科普: 語言模型是什么鬼?

用于處理蛋白質的模型深受 BERT 和 GPT 等大語言模型的啟發(fā)。因此,為了了解這些模型是如何工作的,我們要回到 2016 年左右,那時大語言模型還沒有出現(xiàn),特朗普還沒有當選,脫歐還沒有發(fā)生,深度學習 (Deep Learning,DL) 還是個日日新的超級新星 …… DL 成功的關鍵在于它使用人工神經網絡來學習數(shù)據(jù)中的復雜模式。不過,深度學習有一個關鍵問題 —— 它需要?大量?的數(shù)據(jù)才能正常工作,而在很多任務中,根本沒那么多數(shù)據(jù)。

假設你想訓練一個 DL 模型,輸入一個英語句子,并判斷它是否合乎語法。所以你準備了訓練數(shù)據(jù),格式如下:

TextLabelThe judge told the jurors to think carefully.CorrectThe judge told that the jurors to think carefully.Incorrect……

理論上,這個任務在當時是完全可行的 —— 如果你將如上格式的訓練數(shù)據(jù)輸入深度學習模型,它就可以學著去預測新句子是否合乎語法。但在實踐中,它的效果并不怎么好,因為在 2016 年,大多數(shù)人都從一個隨機初始化的新模型開始他們的每項任務。這意味著?模型必須僅從給定的訓練數(shù)據(jù)中學習它們需要知道的一切!

我們來理解一下這到底有多難,假設你是一個機器學習模型,我提供給你一些訓練數(shù)據(jù)用于完成我希望你學習的任務。假如我給你的訓練數(shù)據(jù)如下:

TextLabelIs í an stiúrthóir is fearr ar domhan!1Is fuath liom an scannán seo.0Scannán den scoth ab ea é.1D’fhág mé an phictiúrlann tar éis fiche nóiméad!0

在這里,我選擇了一種我希望你從未曾見過的語言,所以我猜你已經可能開始對你是否能學會這個任務不太自信了。也許在數(shù)百或數(shù)千個樣本之后,你可能會開始注意到輸入中一些重復出現(xiàn)的單詞或模式,然后你可能開始能夠作出比隨機機猜測更好的判斷,但即使這樣,一旦出現(xiàn)新單詞或之前沒見過的措辭馬上就能夠難住你,讓你猜錯。無獨有偶,這也是 DL 模型當時的表現(xiàn)!

現(xiàn)在我們試試相同的任務,但這次使用英語:

TextLabelShe’s the best director in the world!1I hate this movie.0It was an absolutely excellent film.1I left the cinema after twenty minutes!0

現(xiàn)在事情變得簡單了 —— 任務只是預測電影評論是正面 (1) 還是負面 (0) 的。僅使用兩個正例和兩個反例,你就能以接近 100% 的準確率完成這項任務,因為?你原本就具備大量的英語詞匯和語法知識,并具有電影和情感相關表達的文化背景。?如果沒有這些知識,事情就會變得更像第一個任務 —— 你需要閱讀大量的例子才能開始發(fā)現(xiàn)輸入中的表達模式,即使你花時間研究了數(shù)十萬個的例子你的猜測仍然遠不如在英語任務中只有四個例子準確。

關鍵突破: 遷移學習

在機器學習中,我們把這種將先驗知識遷移到新任務的概念稱為“遷移學習”。在 DL 上使用遷移學習是 2016 年左右該領域的一個主要目標。預訓練詞向量之類的東西 (非常有趣,但超出了本文的范圍!) 在 2016 年確實存在并且允許遷移一些知識到新的模型,但是這種知識遷移仍然比較膚淺,模型仍然需要大量的訓練數(shù)據(jù)才能很好地工作。

這種情況一直持續(xù)到 2018 年。2018 年,兩篇巨著橫空出世,第一篇引入了 ULMFiT 模型,第二篇引入了 BERT 模型。這兩篇論文是讓自然語言遷移學習真正發(fā)揮作用的開創(chuàng)性論文,尤其是 BERT 標志著預訓練大語言模型時代的發(fā)軔。兩篇論文共同使用了一個技巧,那就是它們利用了深度學習中人工神經網絡的固有性質 —— 先花較長的時間在有著豐富訓練數(shù)據(jù)的文本任務上訓練神經網絡,然后將整個神經網絡復制到新任務中,僅用新任務的數(shù)據(jù)更新或重新訓練與網絡輸出相對應的少數(shù)神經元。

上圖來自 ULMFiT 論文,它展示了在三個獨立的任務上使用遷移學習與從頭開始訓練模型相比帶來的巨大的性能提升。在許多情況下,使用遷移學習的效果相當于擁有超過 100 倍的訓練數(shù)據(jù)。不要忘記這是 2018 年發(fā)布的 —— 現(xiàn)代的大語言模型可以做得更好!

這樣做的原因是,在解決任何重要任務的過程中,神經網絡學習到很多輸入數(shù)據(jù)的結構性知識 —— 如對于視覺神經網絡,輸入的是原始像素,模型學習到了如何識別直線、曲線和邊緣; 對于文本神經網絡,輸入的是原始文本,模型學習到了有關語法結構的細節(jié)。而這些信息并不特定于某些任務?!?遷移學習起作用的關鍵原因是?解決任務需要知道的很多信息都不是特定于該任務的!?要對電影評論進行分類,你不需要了解很多關于電影評論的知識,但你需要大量的英語和文化背景知識。通過選擇訓練數(shù)據(jù)豐富的任務,我們可以讓神經網絡學習此類“領域知識”,然后將其應用于我們關心的新任務,而在這些新任務中訓練數(shù)據(jù)可能更難獲取。

至此,希望你已經了解了什么是遷移學習,并且大語言模型是一個經過大量文本數(shù)據(jù)訓練而得的大型神經網絡,這使其成為遷移到新任務的主要備選方案。我們將在下面看到相同的技術如何應用于蛋白質,但首先我需要為另一半觀眾寫一篇介紹。如果你已經熟悉這方面的知識,你可以隨時跳過下一部分!

面向機器學習研究者的科普: 蛋白質是什么鬼?

簡而言之,蛋白質可以做很多事情。有些蛋白質是??—— 它們充當化學反應的催化劑。當你的身體將營養(yǎng)物質轉化為能量時,從食物到肌肉運動的每一步都由一種酶催化。一些蛋白質是?結構性的,它們的功能是提供穩(wěn)定性以及塑形,例如結締組織的蛋白質。如果你看過化妝品廣告,你可能看到過?膠原蛋白、?彈性蛋白?以及?角蛋白,這些是構成我們皮膚和頭發(fā)結構的蛋白質。

其它蛋白質對健康和疾病至關重要 —— 每個人可能都記得有關 COVID-19 病毒的?spike 蛋白?的無數(shù)新聞報道。COVID spike 蛋白與人類細胞表面一種名為 ACE2 的蛋白質結合,使其能夠進入細胞并傳遞病毒 RNA 的有效載荷。由于這種相互作用對感染至關重要,因此在 COVID 大流行期間對這些蛋白質及其相互作用進行建模是一個熱門研究焦點。

蛋白質由多個?氨基酸組成。氨基酸是相對簡單的分子,它們都具有相同的分子結構,而該結構的化學性質允許氨基酸融合在一起,從而使單個分子可以成為一條長鏈。這里關鍵是要知道氨基酸種類不多 —— 只有 20 種標準氨基酸,某些生物體上可能還有一些其他非標準的氨基酸,但總量不多。導致蛋白質巨大多樣性的原因是?這些氨基酸可以按任何順序組合,而由此產生的蛋白質鏈可以具有截然不同的形狀和功能,因為鏈的不同部分會粘連以及彼此折疊。與文本類比一下: 英語只有 26 個字母,但想想你可以用這 26 個字母的組合寫出各種單詞。

事實上,由于氨基酸的數(shù)量很少,生物學家可以為每一種氨基酸分配一個不同的字母。這意味著你可以像編寫文本字符串一樣編寫蛋白質!例如,假設一種蛋白質鏈中有這些氨基酸: 甲硫氨酸、丙氨酸和組氨酸。這些氨基酸的 對應的字母 是 M、A 和 H,因此我們可以將該鏈寫為 “MAH”。不過,大多數(shù)蛋白質含有數(shù)百甚至數(shù)千個氨基酸,而不僅僅是三個?。?/p>

蛋白質結構

上圖顯示了一種蛋白質的兩種表示形式。所有氨基酸都包含碳 - 碳 - 氮 (C-C-N) 序列。當氨基酸融合到蛋白質中時,這種重復模式將貫穿始終,我們稱為蛋白質的 “骨架”。然而,氨基酸的不同之處在于它們的 “側鏈”,側鏈指的是附著在 C-C-N 主鏈上的原子。圖的下半部分有標記為 R1、R2 和 R3 的側鏈,它們可以是任何氨基酸。在圖的上半部分,中央氨基酸有一個 CH3 側鏈 - 那么該氨基酸即為?丙氨酸,由字母 A 表示(圖片來源)。

盡管我們可以將其寫成文本字符串,但蛋白質實際上并不是一種 “語言”,至少不是諾姆 - 喬姆斯基認可的任何一種語言。但它們確實有一些類似語言的特征,從機器學習的角度來看,它們是一個與文本非常相似的領域: 只有一部分字符串是有“意義”的。隨機文本是垃圾,隨機蛋白質只是一個無形狀的斑點。

此外,如果你只是孤立地考慮蛋白質的一部分,信息就會丟失,就像當你只閱讀從較長文本中提取的某個句子時,信息也會丟失。蛋白質的一個區(qū)域可能只有在其它部分存在的情況下才會呈現(xiàn)其自然形狀,因為需要其它部分幫助穩(wěn)定和矯正其形狀!這意味著被全局自注意力很好地捕捉到的那種長程作用力對于正確建模蛋白質非常重要。

至此,希望你對蛋白質是什么以及為什么生物學家如此關心它們有一個基本的概念 —— 盡管氨基酸“字母表” 、很小,但它們具有廣泛的結構和功能多樣性。因此如果能僅通過觀察氨基酸的原始“字符串”來理解和預測蛋白質的結構和功能對研究是非常有價值的。

聯(lián)袂 - 蛋白質機器學習

現(xiàn)在我們已經了解了使用語言模型進行遷移學習是如何工作的,同時我們還了解了什么是蛋白質。一旦你有了這些背景知識,下一步就不難了 —— 我們可以在蛋白質上應用相同的遷移學習思想!我們不是在涉及英文文本的任務上預先訓練模型,而是在輸入是蛋白質且有大量可用訓練數(shù)據(jù)的任務上訓練它。一旦我們這樣做了,我們的模型就有希望學到很多關于蛋白質結構的知識,就像語言模型學到了很多關于語言結構的知識一樣。這使得預訓練的蛋白質模型有希望可以遷移到任何其它基于蛋白質的任務!

生物學家想在哪些任務上用機器學習訓練蛋白質模型?最著名的蛋白質建模任務是?蛋白質折疊。該任務是,給定像 “MLKNV……” 這樣的氨基酸鏈,預測蛋白質最終會折疊成什么形狀。這是一項極其重要的任務,因為準確預測蛋白質的形狀和結構可以深入了解蛋白質作用和機理。

早在現(xiàn)代機器學習出現(xiàn)之前,人們就一直在研究這個問題。最早的一些大規(guī)模分布式計算項目,如 Folding@Home,以超精的空間和時間分辨率使用原子級模擬來模擬蛋白質折疊。甚至還存在一個專門的 _蛋白質晶體學_領域,該領域的研究者使用 X 射線衍射來觀察從活細胞中分離出的蛋白質的結構。

然而,與許多其他領域一樣,深度學習的到來改變了一切。AlphaFold,尤其是 AlphaFold2 使用了 transformer 結構的深度學習模型,并在模型上增加了針對蛋白質數(shù)據(jù)的處理,在僅從原始氨基酸序列預測新型蛋白質結構方面取得了出色的結果。如果你對蛋白質折疊感興趣,我們強烈建議你看看 我們的 ESMFold notebook —— ESMFold 是一種類似于 AlphaFold2 的新模型,但它是一種更“純”的深度學習模型,不需要任何外部數(shù)據(jù)庫或搜索操作即可運行。因此,設置過程不像 AlphaFold2 那樣痛苦,模型運行得更快,同時仍保持出色的準確性。

上圖為多殺巴斯德氏菌的?氨基葡萄糖 - 6 - 磷酸脫氨酶?同源二聚體的預測結構。該結構和可視化圖是由上文中的 ESMFold notebook 在幾秒鐘內生成的。深藍色表示結構置信度最高的區(qū)域。

不過,蛋白質折疊并不是我們唯一感興趣的任務!生物學家可能想做更多的蛋白質分類任務 —— 比如他們想預測蛋白質將在細胞的哪個部分起作用,或者在蛋白質產生后其中哪些氨基酸會被修改。在機器學習的語言中,當你想對整個蛋白質進行分類 (例如,預測其亞細胞定位) 時,這類任務可被建模為?序列分類 (sequence classification); 當你想對每個氨基酸進行分類時 (例如,預測哪些氨基酸會被翻譯后修飾 (Post-translational modification,PTM) ),這類任務可被建模為 **詞分類 (token classification)**。

不過,關鍵的一點是,盡管蛋白質與語言非常不同,但它們可以通過幾乎完全相同的機器學習方法來處理 —— 在一個大的蛋白質序列數(shù)據(jù)庫上進行大規(guī)模預訓練,然后通過?遷移學習?遷移到其它訓練數(shù)據(jù)可能少得多的任務。事實上,在某些方面它甚至比像 BERT 這樣的大型語言模型還要簡單,因為不需要復雜的分詞和詞解析 —— 蛋白質沒有分詞,因此最簡單的方法是直接將每個氨基酸轉換成單詞。

聽起來很酷,但從何下手?

如果你已經熟悉深度學習,那么你會發(fā)現(xiàn)微調蛋白質模型的代碼看起來與微調語言模型的代碼非常相似。我們提供了 PyTorch 和 TensorFlow 兩個示例供你起步。你可以從像 UniProt 這樣的開放蛋白質數(shù)據(jù)庫中獲取大量標注數(shù)據(jù),UniProt 除了提供 REST API 接口以供訪問數(shù)據(jù)外還提供了一個漂亮的 Web 界面。你的主要困難是找到有趣的研究方向進行探索,這我就愛莫能助了 —— 但我相信有很多生物學家愿意與你合作!

反之,如果你是一名生物學家,你可能有很多想法想嘗試,但可能對深入研究機器學習代碼有點害怕。別怕!我們精心設計了示例 (PyTorch、TensorFlow),這些示例中的數(shù)據(jù)加載部分與其他部分完全獨立。這意味著如果你有一個?序列分類?或?詞分類?任務,你只需要構建一個包含蛋白質序列及其應對標簽的數(shù)據(jù)集,然后把我們的數(shù)據(jù)加載代碼換成你自己寫的用于加載你的數(shù)據(jù)集的代碼就好了。

盡管示例中使用 ESM-2 作為基礎預訓練模型,因為它在當前是最先進的。該領域的研究人員可能還熟悉其他模型,如 Rost 實驗室的 ProtBERT (論文鏈接) 是同類中最早的模型之一,并且引起了生物信息學界的極大興趣。只需將示例代碼中的 checkpoint 路徑從?facebook/esm2xxx?改為?Rostlab/prot_bert?之類的,示例中的代碼就可以使用 ProtBERT 模型了。

結語

深度學習和生物學的交叉領域將在未來幾年成為一個非?;钴S和成果豐碩的領域。然而,使得深度學習發(fā)展如此迅速的原因之一是人們可以快速重現(xiàn)結果并調整新模型以供自己使用。本著這種精神,如果你訓練了一個你認為對社區(qū)有用的模型,請分享它!上面那些 notebook 中都包含將模型上傳到 Hub 的代碼,其他研究人員可以在 Hub 上自由訪問和構建它們 - 除了對該領域的好處之外,這也可以讓你的論文被更多人見到和引用。你甚至可以使用 Spaces 做一個實時的網絡演示版,以便其他研究人員可以輸入蛋白質序列并免費獲得結果,而無需編寫一行代碼。祝你好運,愿審稿人對你青眼相加!

英文原文:?https://hf.co/blog/deep-learning-with-proteins

原文作者: Matthew Carrigan

譯者: Matrix Yao (姚偉峰),英特爾深度學習工程師,工作方向為 transformer-family 模型在各模態(tài)數(shù)據(jù)上的應用及大規(guī)模模型的訓練推理。

排版/審校: zhongdongy (阿東)


蛋白質深度學習的評論 (共 條)

分享到微博請遵守國家法律
鸡泽县| 五常市| 陈巴尔虎旗| 阿拉善右旗| 泰兴市| 华阴市| 佛坪县| 苏尼特左旗| 万源市| 四会市| 南江县| 靖安县| 乌兰县| 彭州市| 普洱| 连江县| 涟源市| 宜黄县| 平罗县| 治多县| 临桂县| 大余县| 汉阴县| 沂南县| 牙克石市| 读书| 宣化县| 马山县| 宜都市| 喀喇| 景谷| 建水县| 景泰县| 冷水江市| 伽师县| 沙河市| 南川市| 岑溪市| 渭南市| 阿拉善左旗| 定陶县|