計算機界奠基性的工作真的已經被做完了嗎?

在 《在程序員這個職業里,究竟是天賦重要還是興趣和努力重要?》 中,目前得票第一的答案說道:

如果希望成為一代宗師,開宗立派,就計算機領域目前的工作,恐怕已經晚了,奠基性的工作大多已經完成。但是,這絲毫不影響我們做一個能為世界帶來一些改變的程序員,這個世界在很多領域都存在改進的空間,而我們程序員還有很多可以做的事情。

不禁想到當年不也有人(卡爾文勛爵)說過:「科學的大廈已經建成,後代科學家只要做一些修修補補的工作就行了」之類的話,但顯然被推翻。

於是計算機界奠基性的工作真的已經被做完了嗎?


首先你要明確一點,計算機科學不是嚴格意義上的自然科學,它反而更接近於數學——事實上,純理論的計算機研究就是數學的一部分。

所以,用 1900 年代對於物理學的論斷去類比計算機科學是不正確的——物理理論需要實驗去驗證,計算理論則不需要,它不需要正確,只需要自恰。與計算機科學最接近的是純數學,尤其是數論。

作為一門數學分支,理論計算機科學的基礎——比如圖靈機理論和形式語言理論——的規則,完全是由人類制定的。只是這些人類制定的基礎究竟有多強大人類自己都不知道。你沒看到 P vs NP 都沒解決么?數論也是一樣的,黎曼猜想這麼重要的東西,不也是一直沒有得證么?

另外,那些教人提高編程效率的東西,是屬於工程學和管理科學,和理論研究完全是兩碼事。

==========================================================

我來解釋下什麼叫「正確」,什麼叫「自恰」

「自恰」即沒有自相矛盾的地方,比如下面這個理論:

  1. @winter 是胖子。
  2. 所有胖子都是猥瑣男。
  3. @winter 是猥瑣男。

這個理論就是自恰的,因為這裡面的三條論斷不自相矛盾。現在的理論計算機科學、數論、還有量子物理都是自恰的。

但是,「正確」就要求你的理論必須和現實一致。上面的胖子理論我就不能斷定它是正確的,因為我們有可能找到某個胖子他不是猥瑣男,或者 @winter 貼出照片,看上去瘦的和竹竿一樣(ps. 這個特性——即理論中存在論斷有可能被推翻,叫做可證偽性,是嚴格意義上「科學理論」的必要條件)。所以,如果想證明那個胖子理論正確,你就必須去做實驗調查。物理理論被反覆推翻就是因為舊的理論和現實世界不一致。


如果你說的是學術方面的話,你看人工智慧現在普遍都在訓練模型,完全沒有涵蓋推理機方面的概念,這個道路的局限已經很明顯的出現了。現在就只能等待一個牛逼的人出來,創建一個全新的模型,解決通用的知識的組合和表示的模型,讓被訓練的材料富有意義,而不是跟現在一樣純粹的當做一個信號處理。

人在認識貓的時候,難道會把它作為信號來處理嗎?顯然不會,我們是有對貓的知識進行邏輯上的建模的,而且對於什麼是貓人類完全可以通過語言來描述。現在的人工智慧訓練一個程序來認識貓,完全走的是不同的道路。

我主觀上認為,這條路子在未來的人來看,肯定是邪路。

=========================================

@Tiger David 我覺得他沒有理解我的意思。作為人工智慧的未來,至少得達到讓他用攝像頭讀一本書數學書就可以解證明題的地步吧,現在的訓練方法根本沒有戲


奠基性或非奠基性完全是相對而言的。你選擇不同的標準,就得到不同的答案。對於有的人來說,提出信息冗餘度的概念,並給出計算公式是奠基性的工作,而給出具體的壓縮演算法(不管是基於字典的還是人工神經網路的)就不能算奠基性的工作。因為前者更「深刻」,更「理論」,更「影響深遠」,更「高大上」,後者則「只不過是一種理論的對應實現而已」。但對於另外一些人來說,只要你做了一些工作——哪怕是一些小而瑣碎的工作,只要這些工作成為了他們後續工作的基礎,那麼他們就會認為你的工作是「奠基性」的。

拋開奠基性與非奠基性,其實人們更感興趣的是,現在的計算機科學是不是已經發展得很圓滿了?是不是已經沒有留下多少可以讓我們這些「後生」們可研究甚至突破的了?答案顯然是否定的。但要理解這背後的原因,我們需要仔細看看計算機科學本身。

如果我們籠統的來看待,基本上可以將計算機科學一分為二。

其一為對「計算」相關理論的研究,這一部分使用數學來建立和研究計算模型,同時又用研究產生的計算模型反過來研究一些數學問題。通俗的來說就是,這部份常常研究的就是,基於已有的數學方法,我們可以創建什麼樣的計算模型?這些計算模型本身,又具有怎樣的數學特性?基於這些認識,可以幫助我們解決什麼問題?

看到這裡你肯定明白,這樣的研究領域一看就不是廣大青少年喜聞樂見的。通常只有不想找女朋友的謝耳朵類型的聰明孩子才會讀這個方向(開個玩笑)

這樣的純理論方向確實不容易出成果,但是並非像許多人想像的那樣「每一平米土地都已經被發現了」,「已經不再有任何秘密了」,事實上我們對數學本身、計算理論本身,計算機理論本身的認識還很粗淺,許多基本的問題都還沒有答案,例如NP問題和P問題到底等價不等價?質因數分解到底存不存在多項式時間內求解的演算法?如果不存在,為什麼?等等。

可見,即使是做純理論研究,也大有可為。問題只是突破性的認識出現得比較慢,而不是已經不會再有突破性的認識了。這些突破性的認識將會逆轉我們許多現有的觀念,導致更多的新技術的產生。

除了剛才提到的這一部分,在計算機科學裡,還有另外一部份同樣重要,那就是計算機科學中對於「如何應用計算機來做一些有用的事」的研究。

計算機硬體,操作系統,虛擬機,計算機網路,機器視覺,圖像分析,人工智慧實踐等都在這裡。甚至可以說,只要是利用計算機去解決實際問題的,都可以歸入這一類別。

談到這裡,我想補充一點,許多人認為這部份與前一部分的區別可以簡單的劃分為「理論研究」和「應用實踐」。這種說法本身談不上對錯,但是常常給人以誤導,似乎理論研究是給大家指明方向,而應用實踐只是順著已經有的路往前走而已。事實上,許多時候,真正的道路是在實踐中發現的,實踐認識在大多數情況下都超出理論認識。人們常常是在實踐中遇到了新的問題,或者發現了新的規律後,才通過理論的方式來進行總結,進而更深刻的揭示其中蘊含的道理。所以,這一部分的研究,雖然冠以實踐之名,但是其本身與理論是相互促進,共同生長的關係,並不存在所謂的誰更勝過一籌的問題。

以人工智慧為例,其理論可行性通過圖靈機理論早就已經確定,但是至今在實踐上仍然非常初級。作為計算機科學的明珠,人工智慧殿堂里一直保留著那個真正的王位,等待著一個(群)偉大的人,去帶領人類走向真正的機器智能時代。

其他方向也同樣如此,事實上,哪怕是發展多年,已經在應用上頗為成熟的領域,也會在不經意間迎來顛覆性的發現。例如近年來討論熱烈的壓縮感知技術就是一個活生生的例子。傳統上,為了能夠減小網路通信和存儲時的信息量,我們會在採集到的完整信號的基礎上應用數據壓縮演算法來減小數據的體積。無論是何種數據壓縮演算法,從早期的 zip 壓縮演算法,到現在常用的壓縮率更高的 LZMA2 演算法,實際上都基於香農的信息冗餘度理論——通過發現和降低信息中的冗餘度來實現壓縮。這個過程耗費的資源是可觀的。通常越高的壓縮度意味著越長的壓縮時間以及更多的CPU、內存、電量消耗。

但壓縮感知技術的出現,使得人們找到了減小數據傳輸和存儲體積,同時又無需經過費時費力的壓縮過程的新途徑。大大拓寬了人們在這一領域的認識。壓縮感知技術揭示了數據的局部和整體之間存在著此前我們未發現的關係。這使得我們只需採集原始數據的一個局部,就能夠在後期重建出整個原始數據本身。注意這一過程里根本沒有任何數據壓縮,但卻同樣實現了減小數據的傳輸和存儲體積的目的。令人驚訝的地方在於,我們曾經奉為真理的奈奎斯特定理告訴我們,如果我們想要完整保留原始數據,那麼採樣率必須達到某一限定值之上。但是壓縮感知卻打破了奈奎斯特定理,使得我們能夠以低得多的採樣率採樣,最後卻依然能夠得到完整的原始數據。

壓縮感知技術的革命性並不僅僅是讓存儲和傳輸的數據更小而已,它不僅揭示了數據的局部也可能蘊含整體,更給出了這種蘊含關係在數學上的解釋。基於這一技術,誕生了單像素相機這樣過去根本無法想像的新型設備,顛覆了人們對於攝影器材設計的認識。

聽到這裡,我相信你應當能夠接受,即使是在計算機科學裡那些看似已經無坑可挖的領域,實際上也依然存在著顛覆的機會。

縱觀人類歷史的長河,其實人們總是以為自己已經懂得了不少,結果一次次新的突破不斷證明,我們已經知道的不過是那麼的少,而許多令我們驚訝到下巴掉在地上的發現,卻如同那璀璨的繁星,實際上數不勝數。

在計算機科學的世界裡,如果我們沒有作出貢獻,絕不是因為這一領域已經無貢獻可作,而只是我們不夠認真,不夠聰明,或者方法不對而已。


那得看怎麼定義計算機界的奠基工作,甚至得看怎麼定義計算機界,先說計算機科學

計算機科學是啥呢,其實我也不是很懂,所以抄一抄維基百科:

作為一個學科,計算機科學涵蓋了從演算法的理論研究和計算的極限,到如何通過硬體和軟體實現計算系統。 CSAB(以前被叫做Computing Sciences Accreditation Board),由Association for Computing Machinery(ACM)和IEEE計算機協會(IEEE-CS)的代表組成,確立了計算機科學學科的4個主要領域:計算理論演算法與數據結構編程方法與編程語言,以及計算機組成與架構

計算機科學

我不做這四個方面的研究,但是從我學過的教科書的內容來看:演算法導論里最晚是八九十年代的演算法,計算理論介紹的是70年代的NP理論,體系結構講80年代的MIPS。編程語言現在還在不斷發展,但已經被王垠吐槽過,不可能出現大一統什麼特性都有的語言。

所以我覺得如果從這些方面來看的話,如果我們繼續沿著馮諾依曼的計算機結構,圖靈機的計算框架這些基礎走下去,那計算機科學的基礎已經被奠基了,接下來能做的就是從裡面發現沒有被仔細研究的小問題。當然如果我們推翻這些根基,如果能找到更簡潔的自洽的根基,那又是重大的成就。

至於說,人工智慧現在沒有取得重大的進展,互聯網技術,大數據什麼都在迅速發展,我認為,這些東西算不上計算機科學的奠基工作,只能算很有影響力,很有應用價值的計算機技術。他們確實在不斷發展,而且有待進一步發展。

但我認為這些技術除非別的學科(比如材料學,仿生學,通信)取得重大突破,否則也快到頭了。


人類發展了上千年的歐幾里德幾何學,差點就把它當宇宙真理了,但還是有非歐幾何出現,科學的大廈哪是那麼容易建成的。

今天的計算機理論大多是圖靈 諾伊曼那代人奠定的基礎,總不會那麼巧第一代計算機科學家就直接把真理搞定了。


實名反對目前的兩個回答,一個低估了當前計算機人工智慧的發展狀況,一個搞錯了計算機科學和一般科學的區別。

首先是當前訓練模型的方法,目前的走法其實沒有問題。我們搞Computer Vision的人,對於這類物體識別問題的思路其實是這樣的:如果是人臉識別,那麼首先判定這是不是一張人臉,然後對人臉提取特徵內容;提取出特徵後,得到的信息結果再進行training,等等等等。

也就是說,雖然最後我們還是要對信息進行訓練模型,但在這之前先要做一個預處理,就是如何將人臉轉化為特徵信息。這個就是我們computer vision的主要研究目標了啦~仔細看起來,其實和 @vczh的說法差不多的思路,所以我們現在的研究者並沒有走在邪路上啦。。。

至於這個提取特徵是怎麼進行得,說起來就比較複雜了;如果有同學感興趣的話,我再湊時間多寫一點。

至於計算機理論的基礎,你說對了,的確是奠定基礎不會再動了。或者說,要是真動了,我們現在這群人就全沒飯吃了。。。

計算機科學和其他自然學科的最大區別就是,後者的研究對象是大自然創造的萬千世界,而前者只是在研究我們人類創造的機器而已。這點相差很大得,那就是萬千世界的真理是從古到今,一直不變,等著我們去發現;而計算機的真理其實是我們人類自己創造設定得。所以對於計算機科學,我們並不是去發現世界的真理,而只是創造出一個成熟完美的機器,能夠完美的解決所有的目標問題而已。所謂的計算機奠基的創建,其實就是創造出計算機科學的最底層內容,好讓其他人能夠在這個基礎上堆出更高級的玩意兒而已。

然後再想想,一旦計算機的基礎理論發生了變化(比如某個二逼想出來個更強的計算機運演算法則),那麼會造成什麼影響?

根變了,我們之前乾的所有事情都白忙活了!

你覺得現在位居高位的那群大拿們會接受這點嗎?

不然你覺得為啥量子計算機在很早的時候就被提出來,而且可預見能夠帶來革命的一個理論,到現在還處於半死不活的狀態?因為能夠接受的人太少了,所有的事情都得從新來過,誰願意做這種吃力不討好的事兒啊;還不如繼續在現有的東西基礎上打打補丁,反正也足夠拿來用了。。。

所以並不是說不存在比現有的計算機底層理論更好的玩意(事實上我相信肯定有)。只是目前現有的這個,已經足夠成熟,包不進來新的東西了;全新的東西,像量子計算機之類,只會和當前的奠基產生不兼容的問題,而不兼容出現的後果,我們碼農們都懂得。。。

再舉個例子,我經常看到有報道說,某某科學家在嘗試如何作出生物CPU,或者液體傳導CPU,等等等等。他們要解決的首要,而且是最大的難題,就是如何讓新的材質模擬出與或門之類的效果。為什麼要弄得那麼蛋疼?因為不這麼做,原有的所有基於與或門的所有理論都沒法套用在上面,弄出來的東西再強大也沒人認得,這點你們慢慢感受一下。

至於未來會怎麼發展,我相信像量子計算機這類的領域會有發展的可能性,但只有在發展到能夠兼容當前計算機理論底層概念的時候,才會被人所接受。如果不是的話,那就只是邪路了。。。

--------------------------------------------------------------------------

把對 @vczh的回答放在這裡:

恩,你的意思就是對於演算法和方法本身能夠舉一反三的處理辦法啊,那的確是人工智慧的終極問題;能夠得到這種演算法框架的人,肯定能夠獲得圖靈獎了。。。

不過也並不是說目前訓練樣本的方法是邪路,我看看能不能理個思路出來。

解決這個問題要說明兩點,第一是訓練樣本本身是可以進行舉一反三得:比如說中文輸入法常有的手寫輸入,比較高端的輸入法就有樣本訓練功能。練一會兒之後,系統自動識別會越來越好,這如果不算舉一反三,那麼我也不知道舉一反三的定義到底是什麼了。。。

其實訓練樣本我覺得比較有前途的原因,是因為人類也是通過這種方法來學習技能得;我們現在無意識就能做的很多事情,比如說走路之類,也不是天生就會得,而是通過不斷的樣本學習,不斷的失敗後,漸漸的得到最適應的解決辦法;而就算我們平時已經很熟練的事情,在遇到新環境的時候(比如南方人跑到冰面上走路),就會出現極大的不適應,然後再重新進行樣本訓練,等等等等,最終得到在新環境下的最優解。而且和人類不同的是,機器進行訓練可以對其過程進行優化,converge到最終解的速度加快。所以對於樣本訓練這個技能,理論上計算機更有優勢。

然後第二點,就是演算法本身(或者說解決各類問題的方法),如果看作是一個一個的信息樣本的話,那麼也是可以進行訓練得。這其實並不難理解,現在的樣本訓練方法不光圖像,信號,聲音,所有的只要能夠被記錄下來的東西都能夠訓練得。演算法作為一種可以被記錄的信息,當然也是可以進行訓練,分類,歸納,總結,最後舉一反三,等等等等。。。。

當前卡著的問題就是,如何將現有的各類演算法進行人工建模,組成一個個可以被訓練的信息樣本。這並不是一個簡單的問題,不過我相信在不久的將來會實現得,因為在邏輯推理上這個說得通,這也是各AI領域大神所認同的想法。


Yes and No。

Yes - 按照你提問的方式,首先 assume 你說的是理論計算機 (theoretical computer science),因為說到『奠基』。可計算理論 (computability theory/recursion theory/lambda-calculus)以及複雜度理論 (complexity) 都發展得很壯大,特別是 complexity 裡面的各種 class 已經有很清晰的脈絡了,Turing machine 的能力早被 Church-Turing 刻畫,局限性也早就被 Godel 證明。That said,很多關鍵的理論都是建立在 NP =/= P 的假設下, NP ?= P 之於 TCS 無異於大一統理論對於物理,黎曼猜想、哥德巴赫猜想對於數論。雖然人們普遍認為是不等於,但還是沒人能證明。恩,希望在有生之年看到 Terrance Tao 給證出來……

No - 首先,即使是理論計算機也有很多沒有解決的問題,比如像 quantum computing theory 就算是一個比較新的領域。你甚至可以去『發明』新的比圖靈機牛逼的計算模型 (hypercomputation, e.g, Zeno machine),實際上做不做得出來就是另一回事了…… 比較實際點的可能是在現有的架構下解決一些帶條件的問題,比如 @林建入 提到的 Compressed sensing 就是在 Shannon 的資訊理論框架下一個很 neat 的發現(繼續仰慕 T. Tao...)。個人很喜歡 @林建入 這句話『即使是在計算機科學裡那些看似已經無坑可挖的領域,實際上也依然存在著顛覆的機會。』—— 少年,顛覆就靠你了!

其次,現在有很多新興的CS branch學科,這些可能是更實用的、但又帶有其理論基礎的。比如近幾年很火的 Computer Vision / Machine Learning / Data Mining,特別是 ML 的 VC-dimension, PAC-learning 理論算是自成一體的理論,這裡面都可以大有作為。像近些年 (2001) 異軍突起的 Smoothed analysis 也灰常有意義——你基本上可以把現存的演算法用它再分析一次,也算是為理論大廈添磚加瓦。實在對理論不感興趣的,可以緊抓時代潮流,坑出來就趕緊填,比如 Big data (好像填得7788了? what"s next? )。

待補充。

--- 評論的分割線 ---

順便評論一下 @vczh 的答案。現在說『邪路』還有點早。如果作為一個 strong AI 的 fans,自然會覺得現在基於統計方法的 AI 很醜陋 —— 因為它沒有真實地模擬一樣東西。但是,它的框架本身是沒有問題的,最重要的是本身 model 是不是正確的,features 是不是準確的。但實際上用的基本都是近似的 model + 一堆猜測可能能描述這個model 的 params。理論上,如果 model 正確,加上足夠的計算能力,應該是能模擬人腦的 —— 這正是神經網路以及 strong AI 的理論基礎。現在的問題是按照現在的計算模型 (turing machine) 以及現實的實現 (von neumman architecture) 似乎是沒辦法達到那麼強大的計算能力。從這點去講,樓主可以去研究一下比先有架構厲害的計算機架構 (比如 biological computer),看看是不是能突破一下5nm node的瓶頸,看起來很難再下去,有人說是 Moore"s law 的極限了 [1] ……

[1] "End of Moore"s Law: It"s not just about physics"

最後恭喜一下你獲得了我在知乎最長的答案。


正如 n &<&<&<&<&<&<&<&<&<&<&<&<&<&<&< 2^n

現在的計算機理論只能解決 n 的問題,未來的計算機需要解決 2^n 的問題。

還遠沒有結束,你看到的只是一個開始罷了。


外行來湊個熱鬧。

蘇聯不是以前搞過三進位計算機嗎,那應該完全不同於現在的二進位計算機吧。

還有人說最好的計算機應用e進位。也許未來會有吧。


遠遠沒有。

舉個例子:

P等於NP嗎?


看領域的層次。硅半導體晶元快到極限了,摩爾定律就目前的水平就快到頭了。新材料和量子器件仍然在開發中。基礎領域的突破很難,但是作為上層建築的基石,它的影響力往往最大。


推薦閱讀:

小米5c這個版本更新之後拍照又更強了,於是我拍了樣張
科學家應該100%公開基因編輯實驗計劃,防止基因泄露引發生態危機
中歐科技互補合作空間有多大?
想用榨汁機又懶得洗?他們看準你的弱點推出了一款不用清洗的榨汁機
曾被質疑「騙子」,如今撼動巨人,這家非典型初創公司將如何變革人類基因測序市場?

TAG:科技 | 計算機科學 |