魏忠
1903年,30歲的羅素講了一個(gè)理發(fā)師的故事,瞬間讓當(dāng)時(shí)的數(shù)學(xué)家小伙伴們驚呆了。羅素說,一位理發(fā)師宣稱要為本城市所有不給自己刮臉的人刮臉,結(jié)果這位理發(fā)師非常困惑,他要不要為自己刮臉呢?羅素提出的這個(gè)悖論,成為有史以來數(shù)學(xué)最大的三個(gè)悖論之一,動(dòng)搖了當(dāng)時(shí)的數(shù)學(xué)大廈的基石。
羅素所代表的這種作為科學(xué)的數(shù)學(xué),似乎中國人一直沒有發(fā)明出來。著名數(shù)學(xué)家吳文俊說,中國人似乎一直不在乎,與西方數(shù)學(xué)相比,中國人一直在乎的是算法數(shù)學(xué),也就是我們所談到的計(jì)算機(jī)數(shù)學(xué)。在數(shù)學(xué)領(lǐng)域,與當(dāng)今計(jì)算機(jī)最適合、最現(xiàn)代化的數(shù)學(xué),就是本文的主題——數(shù)學(xué)工程。
三國時(shí)期,曹魏有一個(gè)小官劉徽,按照木工經(jīng)常制作圓的原理,把一個(gè)正圓按照正六邊形開始計(jì)算,正12邊形、正24邊形,最后算到了正2072邊形。劉徽與中國古代的工匠一樣,永遠(yuǎn)不會(huì)糾結(jié)西方從古希臘就開始的數(shù)學(xué)哲學(xué)問題,而是從最接近圓的計(jì)算多邊形不斷接近正確答案,這就是遠(yuǎn)遠(yuǎn)領(lǐng)先的圓周率:3.1416。劉徽所采用的極限方法以及以后幾百年中國古代數(shù)學(xué)家所發(fā)明的子程序、迭代、差分方程、方程組等,是對(duì)世界數(shù)學(xué)的巨大貢獻(xiàn);所采用的數(shù)學(xué)機(jī)械化和計(jì)算數(shù)學(xué),深深影響了后面的數(shù)學(xué),成為今天計(jì)算機(jī)數(shù)學(xué)的重要支柱。
圖1 馮康通過“劉家峽計(jì)算”進(jìn)而發(fā)展出了有限元方法
1964年,在中國黃河修一個(gè)很復(fù)雜的水電站:劉家峽水電站。這個(gè)地質(zhì)水文復(fù)雜、湍流復(fù)雜的電站的形狀,不僅是不規(guī)則的,而且是中空的。按照完全簡化的矩形來計(jì)算,根本不能準(zhǔn)確計(jì)算出水電站所受的力,工期因此嚴(yán)重推遲。
這個(gè)時(shí)候,中科院計(jì)算所的馮康出馬了,他將復(fù)雜形狀的電站切分成成千上萬個(gè)小塊,就像2000年前劉徽計(jì)算圓周率那樣,不過這次馮康不僅是遇到把形狀切小的問題,還要同時(shí)處理每個(gè)小塊的受力和傳導(dǎo)。與劉徽一模一樣的思路,切的塊越小,越接近真實(shí)。好在1964年,中國已經(jīng)獨(dú)立發(fā)明了原始的計(jì)算機(jī),馮康按照當(dāng)時(shí)的計(jì)算能力,把塊切得盡量小。等到計(jì)算完成的時(shí)候,受力也就計(jì)算出來了。完成這個(gè)工程后,馮康把這種計(jì)算方法進(jìn)行總結(jié),在世界上第一次發(fā)明了有限元的方法。
今天,有限元成為計(jì)算機(jī)數(shù)據(jù)受力計(jì)算的基礎(chǔ)方法,所代表的數(shù)字機(jī)械化路徑已經(jīng)成為工程數(shù)學(xué)的基石。今天我們買到很便宜、簡單的宜家家具,承重較差的材料經(jīng)過簡單的連接就能承載很重的壓力,這要感謝工程數(shù)學(xué)的模擬計(jì)算。
工程數(shù)學(xué),讓實(shí)踐有了更多的創(chuàng)新的可能,科學(xué)家們的研究不都需要從閱讀別人的論文開始,也不用等到科學(xué)原理的突破,就可以從工程或物理原理出發(fā),取得巨大的突破。斯坦福大學(xué)的人工智能教授李飛飛,就是這樣做到的。
深度學(xué)習(xí)理論,是在神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上發(fā)展起來的一門人工智能學(xué)科,發(fā)展到今天,已經(jīng)在視頻、圖像和聲音識(shí)別方面有了很成熟的應(yīng)用。然而,在算法上改進(jìn),難度很大,效果也很不好。
例如,讓一個(gè)機(jī)器識(shí)別一條毯子上臥著的一只貓,并寫下這個(gè)句子甚至文章,是很難的。李飛飛經(jīng)過對(duì)兒童認(rèn)識(shí)貓的過程進(jìn)行分析,發(fā)現(xiàn)小孩子從來不需要學(xué)習(xí)關(guān)于貓的概念和理論知識(shí),而是見貓和狗的次數(shù)多了,試錯(cuò)試出來的。于是,李飛飛模擬小孩子的學(xué)習(xí)過程,通過重酬籌集了167個(gè)國家的5萬人、 6萬只貓、10億張圖片、2400萬個(gè)節(jié)點(diǎn)、1億4千萬個(gè)參數(shù)、150億個(gè)連接,訓(xùn)練計(jì)算機(jī)不斷認(rèn)出貓。順便說一句,李飛飛采用的連接數(shù),是盡可能逼近人類大腦的腦細(xì)胞數(shù)量了。如果說西方的概念圖示是先描繪貓的概念,然后再認(rèn)識(shí)貓,李飛飛采用的就是東方的數(shù)據(jù)工程方法,采用大數(shù)據(jù)方法讓機(jī)器自己學(xué)會(huì)什么是貓,最后計(jì)算機(jī)寫出了“一只貓臥在毯子上”這個(gè)句子。
圖2 李飛飛的計(jì)算機(jī)根據(jù)圖片寫出了“一只貓臥在毯子上”
數(shù)據(jù)工程之所以越來越重要,是和信息技術(shù)的發(fā)展密切相關(guān)的。早期軟件采用的是機(jī)器語言,后來發(fā)展成為獨(dú)立于硬件的邏輯符號(hào)語言;隨著軟件應(yīng)用的發(fā)展,后來數(shù)據(jù)庫又獨(dú)立出來。在軟件發(fā)展的前30年,軟件和管理信息系統(tǒng)應(yīng)用效率受制于需求和開發(fā)效率,軟件工程應(yīng)運(yùn)而生。基于互聯(lián)網(wǎng)的軟件開發(fā),逐漸誕生了一種嶄新的開發(fā)方法——MVC,通俗地講,這是將業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼。這種方法又遇到像小米和微信那樣快速迭代以適應(yīng)互聯(lián)網(wǎng)客戶需求的開發(fā),再加上物聯(lián)網(wǎng)、互聯(lián)網(wǎng)大量數(shù)據(jù)的產(chǎn)生,也使得數(shù)據(jù)科學(xué)和數(shù)據(jù)工程越來越重要。在IT產(chǎn)業(yè)中,數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師成為關(guān)鍵性的崗位和獨(dú)立的專業(yè),數(shù)據(jù)工程過程本身也逐漸獨(dú)立于軟件開發(fā),成為大數(shù)據(jù)和數(shù)據(jù)科學(xué)應(yīng)用的基礎(chǔ)。用這個(gè)理解去簡要分析一下李飛飛的計(jì)算機(jī)認(rèn)識(shí)貓的邏輯:貓的圖像的輸入輸出界面和展示效果、用什么最新的算法去認(rèn)識(shí)一只貓、動(dòng)物圖片庫和數(shù)據(jù)組織和更新方式,可以由完全不同的三撥人來完成,而數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師重點(diǎn)解決第三種數(shù)據(jù)工程的問題。
吳文俊院士生前曾預(yù)見,中國人的數(shù)學(xué)思維模式傳統(tǒng),更適合未來計(jì)算機(jī)迭代和機(jī)械化的數(shù)據(jù)工程時(shí)代,讓我們拭目以待吧。
不過我要說的是,既然教計(jì)算機(jī)也得使用讓計(jì)算機(jī)自主學(xué)習(xí)的模式,我們的教師教學(xué)生的時(shí)候,為什么還把從概念開始當(dāng)作唯一的方式呢?