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

Nature盤點(diǎn):從Fortran、arXiv到AlexNet,這些代碼改變了科學(xué)界

2021-01-21
來(lái)源:機(jī)器之心
關(guān)鍵詞: Fortran arXiv AlexNet

  從 Fortran 編譯器到 arXiv 預(yù)印本庫(kù)、AlexNet,這些計(jì)算機(jī)代碼和平臺(tái)改變了科學(xué)界。

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

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

  如果沒(méi)有能夠處理研究問(wèn)題的軟件以及知道如何編寫和使用軟件的研究人員,計(jì)算機(jī)再?gòu)?qiáng)大也是無(wú)用。「現(xiàn)在的研究與軟件緊密相關(guān),軟件已經(jīng)滲透到科研的方方面面。」軟件可持續(xù)性研究所(Software Sustainability Institute)負(fù)責(zé)人 Neil Chue Hong 如是說(shuō)。

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

  1.png

  語(yǔ)言先驅(qū):Fortran 編譯器(1957)

  首批出現(xiàn)的現(xiàn)代計(jì)算機(jī)對(duì)用戶并不友好。編程實(shí)際上是由手工完成的,通過(guò)電線連接一排排電路。后來(lái)的機(jī)器語(yǔ)言和匯編語(yǔ)言允許用戶使用代碼進(jìn)行計(jì)算機(jī)編程,但這兩種語(yǔ)言依然要求使用者對(duì)計(jì)算機(jī)架構(gòu)有深入了解,導(dǎo)致很多科學(xué)家無(wú)法使用它們。

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

  2.png

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

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

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

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

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

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

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

  3.png

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

  勞倫斯伯克利國(guó)家實(shí)驗(yàn)室(Lawrence Berkeley National Laboratory)分子生物物理學(xué)和綜合生物成像部門主任 Paul Adams 回憶稱,當(dāng)他在 1995 年改進(jìn)細(xì)菌蛋白 GroEL 的結(jié)構(gòu)時(shí),即使使用 FFT 和一臺(tái)超級(jí)計(jì)算機(jī),也需要「很多很多個(gè)小時(shí),甚至是幾天」的計(jì)算。但要沒(méi)有 FFT,很難想象這件事要怎么做,花的時(shí)間將難以估量。

  線性代數(shù)運(yùn)算標(biāo)準(zhǔn)接口:BLAS(1979)

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

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

  田納西州大學(xué)計(jì)算機(jī)科學(xué)家、BLAS 開發(fā)團(tuán)隊(duì)成員之一 Jack Dongarra 表示,BLAS 實(shí)際上將矩陣和向量運(yùn)算簡(jiǎn)化成了像加減法一樣的基礎(chǔ)計(jì)算單元。

  4.png

  Cray-1 超級(jí)計(jì)算機(jī)。(圖源:科學(xué)歷史圖像 / Alamy)

  德州大學(xué)奧斯汀分校計(jì)算機(jī)科學(xué)家 Robert van de Geijn 表示:「BLAS 可能是為科學(xué)計(jì)算而定義的最重要接口。」除了為常用函數(shù)提供標(biāo)準(zhǔn)名稱之外,研究者可以確保基于 BLAS 的代碼能夠以相同的方式在任何計(jì)算機(jī)上運(yùn)行。該標(biāo)準(zhǔn)也使得計(jì)算機(jī)制造商能夠優(yōu)化 BLAS 實(shí)現(xiàn),以實(shí)現(xiàn)硬件上的快速運(yùn)行。

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

  預(yù)印本平臺(tái):arXiv.org(1991)

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

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

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

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

  5.png

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

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

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

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

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

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

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

  快速學(xué)習(xí)器:AlexNet(2012)

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

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

  Hinton 認(rèn)為,該團(tuán)隊(duì)在 2012 年的成功反映出足夠大的訓(xùn)練數(shù)據(jù)集、出色的編程和圖形處理單元(最初為了提高計(jì)算機(jī)視頻性能的處理器)新力量的結(jié)合。他表示:「突然之間,我們就能夠?qū)⒃撍惴ǖ乃俣忍岣?30 倍,或者說(shuō)可以學(xué)習(xí) 30 倍的數(shù)據(jù)」。

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

  AlexNet 及相關(guān)研究的成功帶來(lái)了實(shí)驗(yàn)室、臨床等多個(gè)領(lǐng)域深度學(xué)習(xí)的興起。它讓手機(jī)能夠理解語(yǔ)音查詢,也讓圖像分析工具能夠輕松地從顯微照片中挑選出細(xì)胞。這就是 AlexNet 在改變科學(xué)、改變世界的工具中占有一席之地的原因。

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



本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 天天夜天干天天爽 | 成人网视频在线观看免费 | 一男一女搞黄 | 久久久一本精品99久久精品66 | 日韩欧美高清在线 | 国产一区二区三区视频在线观看 | 免费国产成人高清视频网站 | 国产成人福利视频网站 | av国产精品| a毛片基地免费全部香蕉 | 午夜日b视频| 韩国一级黄色毛片 | 国产精品黄网站免费观看 | 免费观看国产精品 | 国产不卡在线观看视频 | 爽爽日本在线视频免费 | 日韩免费观看一级毛片看看 | 亚洲精品国产专区一区 | 欧美激情视频一区二区免费 | 亚洲精品国产综合99久久一区 | 日本高清在线精品一区二区三区 | 一级一片一a一片 | 亚洲欧美一区二区三区在线播放 | 三级免费毛片 | 国产精品香蕉一区二区三区 | 亚洲经典三级 | 国产精品久久久精品视频 | 免费国产成人高清在线看软件 | 色屁屁一区二区三区视频国产 | a级毛片在线播放 | 国内视频一区 | 老司机亚洲精品 | 在线视频 日韩 | 久久99精品久久久久久野外 | 国产成人精品视频频 | 久草视频官网 | 日本美女一区二区三区 | 成人免费视频在线 | 亚洲男人的天堂久久香蕉 | 免费国产不卡午夜福在线 | 99re伊人|