《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > Nature盤點:從Fortran、arXiv到AlexNet,這些代碼改變了科學界

Nature盤點:從Fortran、arXiv到AlexNet,這些代碼改變了科學界

2021-01-21
來源:機器之心
關鍵詞: Fortran arXiv AlexNet

  從 Fortran 編譯器到 arXiv 預印本庫、AlexNet,這些計算機代碼和平臺改變了科學界。

  2019 年,「事件視界望遠鏡」團隊拍下了第一張黑洞照片。這張照片并非傳統(tǒng)意義上的照片,而是計算得來的——將美國、墨西哥、智利、西班牙和南極多臺射電望遠鏡捕捉到的數(shù)據(jù)進行數(shù)學轉換。該團隊公開了所用代碼,使科學社區(qū)可以看到,并基于此做進一步的探索。

  而這逐漸成為一種普遍模式。從天文學到動物學,每一個偉大的現(xiàn)代科學發(fā)現(xiàn)背后都有計算機的身影。斯坦福大學計算生物學家、2013 年諾貝爾化學獎獲得主 Michael Levitt 表示,現(xiàn)在的筆記本電腦在內存和時鐘速度方面是 1967 年其實驗室計算機的一萬倍。「今天,我們擁有大量算力。但問題是,這仍然需要人類的思考?!?/p>

  如果沒有能夠處理研究問題的軟件以及知道如何編寫和使用軟件的研究人員,計算機再強大也是無用。「現(xiàn)在的研究與軟件緊密相關,軟件已經(jīng)滲透到科研的方方面面?!管浖沙掷m(xù)性研究所(Software Sustainability Institute)負責人 Neil Chue Hong 如是說。

  最近,Nature 上的一篇文章試圖揭示科學發(fā)現(xiàn)背后的重要代碼,正是它們在過去幾十年中改變了科研領域。這篇文章介紹了對科學界帶來重大影響的十個軟件工具,其中就包括與人工智能領域密切相關的 Fortran 編譯器、arXiv、IPython Notebook、AlexNet 等。

  1.png

  語言先驅:Fortran 編譯器(1957)

  首批出現(xiàn)的現(xiàn)代計算機對用戶并不友好。編程實際上是由手工完成的,通過電線連接一排排電路。后來的機器語言和匯編語言允許用戶使用代碼進行計算機編程,但這兩種語言依然要求使用者對計算機架構有深入了解,導致很多科學家無法使用它們。

  20 世紀 50 年代,隨著符號語言的發(fā)展,尤其是「公式翻譯」語言 Fortran 的出現(xiàn),上述境況發(fā)生了改變。Fortran 語言由 IBM 的約翰 · 巴科斯(John Backus)團隊開發(fā)。借助 Fortran,用戶可以使用 x = 3 + 5 等人類可讀的指令進行計算機編程,之后編譯器將這類指令轉化為快速高效的機器碼。

  2.png

  這臺使用 Fortran 編譯器編程的 CDC 3600 計算機于 1963 年移送至美國國家大氣研究中心。(圖源:美國大氣科學研究大學聯(lián)盟 / 科學圖片庫。)

  在早期,編程人員使用穿孔卡片(punch card)輸入代碼,復雜的模擬可能需要數(shù)萬張穿孔卡片。不過,F(xiàn)ortran 使得并非計算機科學家的研究者也能夠進行編程。普林斯頓大學氣候學家 Syukuro Manabe 表示:「我們第一次靠自己進行編程。」他和同事使用 Fortran 語言開發(fā)了首批成功的氣候模型之一。

  60 多年過去了,F(xiàn)ortran 依然廣泛應用于氣候建模、流體動力學、計算機化學,以及其他涉及復雜線性代數(shù)并需要強大計算機快速處理數(shù)字的學科。Fortran 代碼運行速度很快,仍然有很多編程人員知道如何寫 Fortran。古老的 Fortran 代碼庫依然活躍在世界各地的實驗室和超級計算機上。

  信號處理器:快速傅里葉變換(1965)

  當天文學家掃描天空時,他們捕捉到了隨時間變化的復雜信號的雜音。為了理解這些無線電波的性質,他們需要觀察這些信號作為頻率函數(shù)的樣子。一種被稱為傅里葉變換(Fourier transform)的數(shù)學過程允許科學家實現(xiàn)這一點。但問題在于傅里葉變換并不高效,對大小為 N 的數(shù)據(jù)集它需要進行 N 次運算。

  1965 年,美國數(shù)學家 James Cooley 和 John Tukey 開發(fā)了一種加速傅里葉變換過程的方法。借助遞歸(recursion)這種「分而治之」的編程方法(其中算法可以實現(xiàn)重復地再運用),快速傅里葉變換(fast Fourier transform, FFT)將計算傅里葉變換問題簡化為 N log_2(N) 個步驟。速度也隨著 N 的增加而提升。對于 1000 個點,速度提升約 100 倍;對于 100 萬個點,速度提升約 5 萬倍。

  牛津大學數(shù)學家 Nick Trefethen 表示,F(xiàn)FT 的發(fā)現(xiàn)實際上是一種「再發(fā)現(xiàn)」,因為德國數(shù)學家卡爾 · 弗里德里希 · 高斯在 1805 年就完成了該發(fā)現(xiàn),不過從未發(fā)表。但是,James Cooley 和 John Tukey 開啟了 FFT 在數(shù)字信號處理、圖像分析和結構生物學等領域中的應用。Trefethen 認為 FFT「是應用數(shù)學與工程領域偉大的發(fā)現(xiàn)之一。」FFT 已經(jīng)在代碼中實現(xiàn)了很多次,其中一種流行的變體是 FFTW(「西方最快的傅里葉變換」)。

  3.png

  默奇森天文望遠鏡,使用快速傅里葉變換來收集數(shù)據(jù)。

  勞倫斯伯克利國家實驗室(Lawrence Berkeley National Laboratory)分子生物物理學和綜合生物成像部門主任 Paul Adams 回憶稱,當他在 1995 年改進細菌蛋白 GroEL 的結構時,即使使用 FFT 和一臺超級計算機,也需要「很多很多個小時,甚至是幾天」的計算。但要沒有 FFT,很難想象這件事要怎么做,花的時間將難以估量。

  線性代數(shù)運算標準接口:BLAS(1979)

  科學計算通常涉及使用向量和矩陣的數(shù)學運算,這些運算相對簡單,但計算量大。20 世紀 70 年代,學界并沒有出現(xiàn)一套普遍認可的執(zhí)行此類運算的工具。因此,科研工作者不得不花費時間設計高效的代碼來做基礎的數(shù)學運算,導致無法專注于科學問題本身。

  編程世界需要一個標準。1979 年,基礎線性代數(shù)子程序庫(Basic Linear Algebra Subprograms, BLAS)應運而生。直到 1990 年,該標準仍然在發(fā)展變化,定義了數(shù)十條涵蓋向量和矩陣運算的基本程序。

  田納西州大學計算機科學家、BLAS 開發(fā)團隊成員之一 Jack Dongarra 表示,BLAS 實際上將矩陣和向量運算簡化成了像加減法一樣的基礎計算單元。

  4.png

  Cray-1 超級計算機。(圖源:科學歷史圖像 / Alamy)

  德州大學奧斯汀分校計算機科學家 Robert van de Geijn 表示:「BLAS 可能是為科學計算而定義的最重要接口?!钩藶槌S煤瘮?shù)提供標準名稱之外,研究者可以確?;?BLAS 的代碼能夠以相同的方式在任何計算機上運行。該標準也使得計算機制造商能夠優(yōu)化 BLAS 實現(xiàn),以實現(xiàn)硬件上的快速運行。

  40 多年來,BLAS 代表了科學計算堆棧的核心,使得科學軟件持續(xù)發(fā)展。喬治華盛頓大學機械與航空航天工程師 Lorena Barba 將 BLAS 稱為「五層代碼內的核心機制」。

  預印本平臺:arXiv.org(1991)

  20 世紀 80 年代末,高能物理領域的研究者往往會把自己提交的論文郵寄給同行審閱,這是一種禮儀,但只郵寄給少數(shù)幾個人。「那些處于食物鏈底端的人依賴于頂端人的施舍,這往往會把非精英機構中有抱負的研究者完全排除在特權圈之外,」物理學家 Paul Ginsparg 曾在 2011 年的一篇文章中寫道。

  1991 年,洛斯阿拉莫斯國家實驗室(Los Alamos National Laboratory)的 Ginsparg 寫了一個電子郵件自動回復器,以建立公平的競爭環(huán)境。郵件訂閱者每天都會收到一份預印本列表,每份論文都帶有標識符。如此一來,世界各地的用戶都可以通過一封電子郵件提交或檢索來自上述實驗室計算機系統(tǒng)的論文。

  Ginsparg 原本計劃將文章保留三個月,將范圍限制在高能物理社區(qū),但他的同事勸他去掉了這些限制?!妇褪窃谀且豢?,它從布告欄轉變成了檔案庫,」Ginsparg 表示。在這之后,大批論文開始涌入,其學科之廣遠遠超出了 Ginsparg 的預期。1993 年,Ginsparg 把這個系統(tǒng)移植到互聯(lián)網(wǎng)上。1998 年,他正式將該系統(tǒng)命名為 arXiv.org。

  如今,30 歲的 arXiv 收錄了 180 萬份預印本文章,且全部免費閱讀,其每月論文提交量超過 15000 份,每月下載量高達 3000 萬次?!覆浑y看出 arXiv 為何如此受歡迎,」Nature Photonics 的編輯曾表示,「該系統(tǒng)為研究者提供了一種快捷、方便的科研方式,可以告訴大家你在做什么、什么時間做的,省去了傳統(tǒng)期刊同行評審的繁瑣?!?/p>

  5.png

  該網(wǎng)站的成功還對生物學、醫(yī)學、社會學等其他學科類似存儲庫的建立起到了助推作用,成千上萬份新冠病毒相關研究預印本的發(fā)布就是一個例證。

  數(shù)據(jù)探索器:IPython Notebook (2011)

  Fernando Pérez 在 2001 年決定「探尋拖延癥」,當時他是一名研究生,決定采用 Python 的核心組件。

  Python 是一種解釋型語言,意味著程序會一行一行地執(zhí)行。編程人員可以使用一種被稱為「讀取 - 求值 - 輸出循環(huán)(REPL)」的計算型調用和響應(call-and-response)工具,他們可以鍵入代碼,然后由解釋器執(zhí)行代碼。REPL 允許快速探索和迭代,但 Pérez 指出 Python 并不是為科學構建的。例如,它不允許用戶輕松地預加載代碼模塊或保持數(shù)據(jù)可視化的打開狀態(tài)。因此 Pérez 創(chuàng)建了自己的版本。

  2001 年 12 月,Pérez 發(fā)布了交互式 Python 解釋器 IPython,它共有 259 行代碼。10 年后,Pérez 和物理學家 Brian Granger、數(shù)學家 Evan Patterson 合作,將該工具遷移到 Web 瀏覽器,創(chuàng)建了 IPython Notebook,掀起了一場數(shù)據(jù)科學的革命。

  和其他計算型 notebook 一樣,IPython Notebook 將代碼、結果、圖形和文本組合到了單個文檔中。但與其他此類型項目不同的是,IPython Notebook 是開源的,歡迎廣大社區(qū)開發(fā)者為其發(fā)展做出貢獻,并且支持 Python 這種科學家常用的語言。2014 年,IPython 演變成 Project Jupyter,支持約 100 種語言,并允許用戶像在自己計算機上一樣輕松地在遠程超級計算機上探索數(shù)據(jù)。

  Nature 在 2018 年指出:「對數(shù)據(jù)科學家而言,Jupyter 已經(jīng)成為一種實際標準」。那時,GitHub 上已經(jīng)有 250 萬個 Jupyter notebook,如今已有近一千萬個,其中包括 2016 年發(fā)現(xiàn)引力波和 2019 年黑洞成像的記錄。Pérez 表示:「我們能為這些項目做出一點貢獻也是非常有意義的」。

  快速學習器:AlexNet(2012)

  人工智能(AI)可分為兩類,一類使用編碼規(guī)則,另一類讓計算機通過模擬大腦的神經(jīng)結構來「學習」。多倫多大學計算機科學家、圖靈獎獲得者 Geoffrey Hinton 表示:「幾十年來,人工智能研究者一直將第二種研究方法視為『荒謬』」。2012 年,Hinton 的研究生 Alex Krizhevsky 和 Ilya Sutskever 證明了事實并非如此。

  在當年的 ImageNet 的年度競賽上,研究者們被要求在包含 100 萬張日常物品圖像的數(shù)據(jù)庫上訓練 AI,然后在另一個圖像集上測試算法。Hinton 表示:「在當時,最佳算法會在 1/4 的圖像上出現(xiàn)分類錯誤」。Krizhevsky 和 Sutskever 開發(fā)的 AlexNet 是一種基于神經(jīng)網(wǎng)絡的深度學習算法,該算法將誤差率降至 16%。Hinton 表示:「我們幾乎將誤差率降低了一半」。

  Hinton 認為,該團隊在 2012 年的成功反映出足夠大的訓練數(shù)據(jù)集、出色的編程和圖形處理單元(最初為了提高計算機視頻性能的處理器)新力量的結合。他表示:「突然之間,我們就能夠將該算法的速度提高 30 倍,或者說可以學習 30 倍的數(shù)據(jù)」。

  Hinton 表示真正的算法突破實際上發(fā)生在 3 年前。當時他的實驗室創(chuàng)建了一個比幾十年來不斷完善的傳統(tǒng) AI 更能準確識別語音的神經(jīng)網(wǎng)絡。雖然準確率只稍微提升了一點,但已值得被記住。

  AlexNet 及相關研究的成功帶來了實驗室、臨床等多個領域深度學習的興起。它讓手機能夠理解語音查詢,也讓圖像分析工具能夠輕松地從顯微照片中挑選出細胞。這就是 AlexNet 在改變科學、改變世界的工具中占有一席之地的原因。

  除了以上這些項目之外,入選該榜單的代碼還包括生物數(shù)據(jù)庫、大氣環(huán)流模型、圖像處理軟件 NIH Image / ImageJ / Fiji 和生物大分子序列比對搜索工具 BLAST。感興趣的同學可以去閱讀原文。



本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。