首頁>科學>

2019年,事件視界望遠鏡(Event Horizon Telescope, EHT)團隊首次向世界展示了黑洞的真實外觀。這張發光的黑色光環影象其實並不是傳統意義上的照片,而是經過計算模擬出來的。

EHT團隊對美國、墨西哥、智利、西班牙和南極的射電望遠鏡捕獲的資料進行收集,並經過大規模的數學計算將資料轉化成影象。在隨後發表的文章中,EHT團隊公開了所使用的程式程式碼,為整個科學界對外太空天體的研究打下了基礎。

現代科學每一項偉大的研究背後,都離不開計算機的支援,從天文學到生態學,這已經變成了一種越來越普遍的現象。斯坦福大學的計算生物學家邁克爾·萊維特(Michael Levitt)因用計算機建模的方式發展了複雜化學結構的多尺度模型而獲得了2013年諾貝爾化學獎,他表示,現在的膝上型電腦的儲存量和時鐘頻率(clock time)是1967年剛剛開始這項研究的10000倍。萊維特說:“當今,我們確實掌握了相當數量的計算方法,但是仍需要人的思維”。

科學突破,前沿進展理應受到媒體的關注。背後的研究過程也同樣值得探討。再強大的超級計算機也只是工具,沒有處理特定問題的軟體和建立並執行軟體的研究人員,也是無用的。

最新的《自然》雜誌深入探索了科學研究背後的故事,帶我們回顧過去幾十年來,改變科學史的關鍵性計算機程式。他們在過去的一年中,《自然》編輯部訪問了幾十個享譽世界的科學家,從不同領域中選出了科學家們心中10個影響世界科學進展的計算機工具。

01

計算機語言先驅者:Fortran編譯器 (1957)

Language pioneer: the Fortran compiler (1957)

第一臺現代計算機如果從使用者友好度評價的話,堪稱“失敗”。程式設計事實上是用電線連線電路組手工完成的, 隨後的機器語言和組合語言允許使用者使用程式碼對計算機進行程式設計,但是仍然需要對計算機的體系結構有深入的瞭解,學習成本過高,使得許多科學家無法使用這些語言望而卻步。

隨著符號語言的發展,這種情況在1950年代發生了變化,特別是由IBM公司John Backus及其團隊開發的“數學公式編輯語言” — Fortran編譯器。

Fortran是一項革命性的發明,是當時統治計算機世界的高階語言之王。透過Fortran編譯器,使用者可以將“人類可以閱讀書寫”的數學語言輸入在文字編輯器中,然後編譯器自動將這些指令轉換成快速高效的二進位制的機器程式碼,進行運算。

CDC 3600超級計算機,於1963年運送到位於科羅拉多的美國原子能研究中心,正式投入使用。這臺超級計算機搭載了Fortran編譯器。Credit: University Corporation for Atmospheric Research/Science Photo

普林斯頓大學氣象學家真鍋淑郎(Syukuro Manabe)分享道:“在早些年,程式設計師用打孔卡來輸入程式碼,一個複雜的模擬模型可能需要成千上萬張打孔卡。Fortran語言幫助沒有計算機背景的科學家順利使用超級計算機。第一次真正的由我們自己操控計算機。”在Fortran編譯器的輔助下,真鍋教授和同事成功開發出了世界上第一個氣象模型。

如今八十年過去了,Fortran仍被廣泛應用於氣象建模、流體動力學、計算化學等涉及到複雜線性代數且需要計算機快速處理資料的學科中。Fortran語言簡練,執行速度快效高,很多資深程式設計師將使用這種語言的習慣延續至今。無論超級計算機如何更新迭代,程式碼庫中一定會有Fortran語言的位置。

02

訊號處理器:快速傅立葉變換 (1965)

Signal processor: fast Fourier transform (1965)

當射電天文學家掃描天空時,他們捕獲了不同時間段中嘈雜的複雜電波。為了瞭解這些無線電波的性質,他們需要檢視這些訊號繪製成頻率函式。數學中的傅立葉變換可以幫助研究者做到這一點。但問題是,當需要計算的樣本量為N時,需要進行N2次計算,例如當N=1024時,需要進行N2=1048576次運算,耗時極長,效率極低。

1965年,美國數學家James Cooley和John Tukey提出了一種加快計算過程的方案。透過遞迴(一種分而治之,層層轉化的方法)的策略,程式不斷的呼叫自身,把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,這就是快速傅立葉變換(fast Fourier transform ,FFT)。

FFT只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的程式碼量。例如原本需要N2次的計算過程,可以簡化為N log2(N)次計算的問題,當N=1024時,僅需10240次運算,步驟節約為之前的1%,大大的提高了效率。並且 速度隨著N的增長而提高。 當N為1000時,速度提升約為100倍;當 N為一百萬時,速度提升約五萬倍。

牛津大學數學系教授Nick Trefethen追溯歷史發現,快速傅立葉變換的發明,以1805年德國數學家高斯未發表的理論為基礎。 但Cooley和Tukey的革新,青出於藍而勝於藍,開創了在電子裝置上進行訊號處理,影象分析,生物建模的先河。Trefethen教授評價這個發明為“應用數學與工程領域最偉大的發現之一”。

默奇森寬場陣列射電望遠鏡,位於澳大利亞西,使用快速傅立葉變換收集資料。Credit: John Goldsmith/Celestial Visions

加州大學勞倫斯伯克利國家實驗室,分子生物物理學與綜合生物成像部負責人Paul Adams,也是快速傅立葉變換的支持者。他回憶起在1995年改進細菌蛋白GroEL的結構時,即使在超級計算機和FFT演算法的幫助下也耗費了大量的時間。

“我不敢想象沒有FFT演算法的情形,我們的研究永遠不會完成,可能會計算資料到永遠。”Paul Adams說到。

03

分子編目員:生物資料庫(1965)

Molecular cataloguers: biological databases (1965)

資料庫存在於當今科學研究的方方面面,人們可能很容易忽略它們本質上是一個計算機軟體。 在過去的幾十年中,各個科學領域的資料資源指數級激增激增,生物學領域的變化尤其巨大。

如今龐大的基因組和蛋白質資料庫源於Margaret Dayhoff的工作。Dayhoff是馬里蘭州銀泉市國家生物醫學研究基金會的生物資訊學先驅。20世紀60年代初期,生物學家解開了蛋白質氨基酸序列的面紗,Dayhoff開始整理資料,來尋找不同物種之間進化關係的線索。她於1965年與其他三位合作者共同發表了《蛋白質序列和結構圖譜》,描述了當時發現的65種蛋白質的序列,結構和相似性研究。

科學史研究者Bruno Strasser於2010年寫道:“Dayhoff的生物資料庫是科學史上第一個,沒有受限於特定問題的廣泛性科學資料庫。” Dayhoff在進行研究時的裝置還比較落後,她使用打孔卡進行編碼,使之成為一個可以擴充套件,可以檢索的,名副其實的電子資料庫。

在此之後,各種電子化生物資料庫應運而生。1971年創立的蛋白質資料銀行,至今已有超過17萬份大分子結構資料。1981年,加州大學聖地亞哥分校的生物學家Russell Doolittle建立了更先進的蛋白質資料庫,起名叫:Newat。1982年,美國國家健康署成立DNA資料庫GenBank,這一切都離不開最初Dayhoff的努力。

蛋白質資料銀行有超過170000份大分子結構樣本包括圖片所示的結合了RNA和蛋白質綜合體的細菌表達子。Credit: David S. Goodsell and RCSB PDB (CC BY 4.0)

在當時,計算機技術並沒有被大多數科學家所熟知,許多人對花費大量時間和精力建立的生物資料庫產生了質疑。終於在1983年7月,資料庫立了大功。英國生物化學家Michael Waterfield和美國生物學家Doolittle分別進行研究,並得出了相似的結論:特定的人類生長因子和病毒中的蛋白質可以導致猴子患癌。這個觀察提出了一種由病毒導致癌症的機制 — 透過模仿生長因子,病毒誘導細胞癌變。

除此之外,生物資料庫的建立標誌著客觀生物學的問世。以往的生物學研究需要針對某個特定的假設組織實驗。但在資料庫的支援下,科學家可以尋找資料之間的聯絡,會發現很多超越以往的科學突破。

04

氣象預測領航者:大氣環流模式(1969)

Forecast leader: the general circulation model (1969)

戰爭推動出大批先進科技的發展,計算機在二戰中被用來計算彈道軌跡和設計武器。二戰結束後,計算機先驅John von Neumann開始改進原有的計算機程式,用於預測天氣。關於這一點,真鍋淑郎教授解釋說:“天氣預測是經驗性的。” 運用以往的經驗和預感來預測接下來要發生什麼。von Neumann的團隊希望可以在物理學規律的基礎上,透過數學計算來準確預測天氣。

美國海洋與大氣管理局,地球物理流體動力學實驗室負責人Venkatramani Balaji說,預測天氣的數學公式早就已經存在了,但早期的科學家無法將其實際應用於天氣預測領域,因為天氣預測要做到及時迅速,需要短時間內進行大量的重複性計算,人工根本沒有辦法完成。

曾有科學家做過嘗試。

1922年,德國數學家劉易斯·弗萊·理查森(Lewis Fry Richardson)收集資料,打算預測六個小時後慕尼黑的天氣,結果手工計算過程持續了幾個月,早就超過了六個小時。並且這個計算出的結果和實際天氣比,非常不準確。

計算機的發明,使得這樣的計算過程可以付諸實踐。

1940年代後期,von Neumann在普林斯頓前沿科學中心建立了天氣預測團隊。1955年又建立了第二隻團隊—地球物理流體動力學實驗室,開始研究氣候預測模型。真鍋淑郎教授1958年加入氣候預測模型團隊,開始研究大氣模型,他的同事Kirk Bryan負責研究海洋模型。1969年該團隊成功的結合大氣模型與海洋模型,創造了被《自然》雜誌在2006年評為“計算機科學裡程碑”的大氣環流模式(general circulation model,GCM)。

現在的GCM模型可以將地球表面精確到25×25千米的方塊網格,將大氣精確到幾十層。1969年時的GCM模型精確度是500×500千米網格和9層,這項技術僅能覆蓋1/6個地球。可以看出,發展到今日,已經有了極大的飛躍。

05

數字處理器:基礎線性子資料庫(1979)

Number cruncher: BLAS (1979)

科學計算通常使用向量和矩陣來進行相對簡單的數學運算。但是1970年代,還沒有一套普遍認可的用於執行此類操作的計算工具。因此從事科學工作的程式設計師花費大量時間寫程式碼來進行基本的數學運算,而不是有效率地研究科學問題。

程式世界需要一套準則。1979年,基礎線性代數子程式庫(Basic Linear Algebra Subprograms, BLAS)終於問世。BLAS包含幾十種向量和矩陣數學公式的基礎運算。田納西大學諾克斯維爾分校計算機科學家傑克·東納拉(Jack Dongarra)說:“實際上,BLAS將矩陣和向量運算簡化為像加減法一樣基礎的計量單位。”

Cray-1超級計算機:在BLAS程式庫還沒有發明的1979年,線性代數計算並沒有標準的演算法,研究人員只能用Cray-1這樣的超級計算機運算資料。Credit: Science History Images/Alamy

德克薩斯大學奧斯汀分校的計算機科學家Robert van de Geijn評價說:BLAS可能是科學計算最重要的發明之一。BLAS資料庫不僅創立了一套標準化運算公式,還確保了可以在任何電腦上相容,幾乎每一個科學家都可以在自己的電腦上執行,不再受硬體的限制

06

數字處理器:基礎線性子資料庫(1979)

Number cruncher: BLAS (1979)

1980年代初期,程式設計師Wayne Rasband在馬里蘭州貝塞斯達的美國國立衛生研究院的腦成像實驗室工作。他的工作主要是使用掃描器將X射線膠片儲存成電子版,但也僅僅是儲存而已,無法在計算機上瀏覽或分析。因此,Rasband決定編寫了一個程式來實現瀏覽和分析的目的。

在當時,實驗室中通用的電腦還是價值15萬美元的PDP-11電腦。Rasband也是以這個電腦為平臺編寫。但1987年,蘋果推出第二代採用圖形介面的Macintosh一體式電腦,定位專業級生產力,價格卻更低。Rasband意識到蘋果電腦的推出是革新性的改變,因此,便改變了程式設計平臺,開始打造適用於Macintosh電腦的影象處理系統,NIH 圖片分析軟體應運而生。

NIH圖片分析軟體幾乎能夠在任何計算機上檢視或量化任何影象。現有的NIH 圖片分析軟體有:可在Windows和Linux系統使用的,基於java的版本—ImageJ;和由德國德累斯頓馬克斯·普朗克分子細胞生物學與遺傳學研究所的Pavel Tomancak小組開發的,帶有多種外掛,功能更豐富的軟體—Fiji。這兩個軟體普及率非常高,已經成為了科學家處理圖片的必備神器。

ImageJ 軟體及其外掛,可以自動識別顯微圖片中的細胞核Credit: Ignacio Arganda-Carreras/ImageJ

為什麼ImageJ這麼受歡迎? 創始人Rasband開玩笑說: “可能因為是免費的。” 而更大的原因是因為ImageJ可以按照使用者的需求定製軟體,不斷革新。ImageJ從1990年代開始就一直保持著極簡的使用者介面,並且軟體可以無限擴充套件,只需要滑鼠點選或選單欄選項便可以輕鬆記錄下工作流程。整個軟體架構使用者友好且靈活。

07

數序列搜尋器:BLAST (1990)

Sequence searcher: BLAST ( (1990)

網際網路時代有一種特殊的文化現象,將軟體名稱當作動詞用,例如,google 一下,百度一下。也就代表著這個軟體真的家喻戶曉。對於遺傳學來,BLAST就是這樣的存在。

組建第一個生物資料庫的科學家Dayhoff發明了一種處理資訊的方法:可接受點突變矩陣(PAM矩陣),可以量化兩種蛋白質之間的關連,不僅可以測試出序列的相似性,還可以測量出兩種蛋白質的進化距離。

1985年,弗吉尼亞大學的William Pearson和美國健康署的David Lipman發明了FASTP,是一種結合了Dayhoff的PAM矩陣的,具有快速搜尋能力的演算法。在此基礎上,1990年,Lipman及其合作者,發明了更強大的搜尋應用:基於區域性比對演算法的搜尋工具(the Basic Local Alignment Search Tool ,BLAST)。BLAST既可以快速處理資料,還可以挑選出進化距離最匹配的序列。同時,還可以篩查出高匹配的樣本中僅僅是巧合的樣本。

哈佛大學的計算生物學家西恩·埃迪說,BLAST系統的出現加速了基因組生物學領域的發展,研究人員可以根據相關基因推匯出未知基因的情況。全世界的生物學家都已經將這個系統當作了動詞用,“我剛剛blast了一下我的序列”。

08

預列印動力源:電子預印本文獻庫 (1991)

Preprint powerhouse: arXiv.org (1991)

1980年代還沒有線上論文資料庫。高能物理學者在發表論文之後,經常會將紙質版文章寄給一些同行瀏覽,由於人力物力的限制,只有少數有幸獲得手稿。但同行業學者之間也存在著食物鏈,食物鏈下游的學者需要引用頂尖學者的文獻來為自己的文章背書,但頂尖學者並不會給他們郵寄論文,他們也沒有其他的獲得渠道。頂尖學者汗牛充棟,普通學者無人問津,形成一種惡性迴圈。

1991年,洛斯阿拉莫斯國家實驗室的Ginsparg郵件自動傳送程式,編寫了一套糾正這樣不平等的惡性迴圈。訂閱使用者每天可以自動收到更新的文獻。透過這個系統,全世界的學者只要透過郵件便可以收到最新鮮的論文諮詢。

在Ginsparg的計劃中,這個系統可以自動儲存3個月的文章,僅涵蓋高能物理領域的文章。但一個同事給他提建議,說希望不設時間限制,無限的儲存文章。因此,這個系統就從公告欄模式改成了檔庫模式,涵蓋的領域也逐漸擴充套件。1993年,Ginsparg將這個系統遷移到全球資訊網上,1998年命名為:arXiv.org,這個名字使用至今。

Source: arXiv.org

30年過去了,如今的arXiv.org儲存了180萬份文稿,全部免費,每個月有15000份新稿上傳,3000萬份下載。不僅物理領域,arXiv.org還涵蓋了生物,醫藥,社會學和其他領域的文獻。系統中至今已經收錄了成千上萬篇新冠病毒的文章。

Ginsparg說:30年前,arXiv.org還被看作是挑戰傳統物理社群的異端,但如今,已經成為了研究必不可少的工具。在他看來,這是一個成功的專案。

09

資料探索者:IPython Notebook (2011)

Data explorer: IPython Notebook (2011)

Fernando Pérez在2001年時,還是一名有拖延症的研究生。 他想學習Python來幫助科研。但他發現,Python是一種低效的解釋性語言,程式按順序逐行執行。Pérez覺得Python不適合科研,使用者不能預載入程式碼模組,資料視覺化功能也不是很好用,因此,Pérez決定要重新寫一個版本。因此他在2001年建立了IPython,一個互動式Python直譯器。10年後,Pérez和同事又釋出了網頁版工具—IPython Notebook,開啟了資料科學革命。

像其他程式碼直譯器一樣,IPython Notebook結合了程式碼,結果,圖形和文字功能。但是與其他同類程式不同,IPython Notebook是開源的,使用者可以自己開發自己想要的功能。2014年,IPython升級為Project Jupyter,支援約100種語言,使用者在自己的個電腦上也可以進行超級計算機一樣的計算。

現在,開源平臺GitHub有超過100萬個應用在Jupyter notebooks的開原始碼。包括2016年發現引力波的程式碼和19年黑洞圖片的程式碼。

10

快速學習工具:AlexNet (2012)

Fast learner: AlexNet (2012)

人工智慧(AI)有兩種方式。一種使用程式碼程式設計,另一種使用計算機透過模擬大腦的神經結構來“學習”。圖靈獎得主,計算機科學家Geoffrey Hinton說,幾十年來,人工智慧研究人員一直致力於研究第一種方式,認為第二種方式不靠譜。2012年,Hinton的學生, Alex Krizhevsky 和Ilya Sutskever的研究證實了第二種方法可行性。

在當年的ImageNet競賽中,參賽者被要求在包含了100萬張常見物品呢的圖片的資料庫中訓練AI,然後在另一路圖片中測試演算法。最好的演算法出現了1/4的失誤。而Krizhevsky和Sutskever設計的基於神經網路的深度學習AI—AlexNet,將誤差減小到16%。

Hinton表示,AlexNet反映了,成功的人工智慧演算法需要足夠大的訓練資料集,出色的程式設計和新型圖形處理單元的結合,圖形處理器可以提高計算機影片效能。

人工智慧質的提升,應該追溯到2009年,當時他的實驗室建立了第一個神經網路。這個神經網路比傳統的人工智慧準確率有了一些提升,雖然進步很小,但足以載入史冊。

2012年 AlexNet的一鳴驚人引發了全世界機器學習的熱潮。SIRI等手機內建人工智慧助手也是基於機器學習技術。AlexNet在所有的AI工具中尤為重要,因為他從根本上改變了科學,進而改變了整個世界。

15
最新評論
  • mRNA疫苗可誘導對SARS-CoV-2及其多種擔憂的變體的持久免疫記憶
  • 宇航員登月看到了什麼?為何返回地球后,都相信“神”的存在