懟王講歷史:圖靈被過譽,哥德爾和丘奇才是計算機科學之父

ai科技評論 發佈 2021-09-19T01:53:26+00:00

長期以來,Jürgen Schmidhuber 都像一個精力充沛的戰士,矛頭直指科技界當紅小生,曾與 Ian Goodfellow 爭辯 GAN 的歸屬、還在ACM 將圖靈獎授予「深度學習三巨頭」後,極力肯定和推廣LSTM在人工神經網絡和深度學習領域的巨大作用,引用 200 多條文獻逐條反駁 「三巨頭」的不該獲獎。

Jürgen Schmidhuber

編譯 | 吳彤

編輯 | 陳大鑫

作為科技界「公正處」的編外人員,Jürgen Schmidhuber(約爾根·施密杜伯)常年以個人博客為主陣地,對科技界新聞躬身評審,撰寫了超過350篇同行評審論文。作為一位經常發表主旨演講的人,他還長期就人工智慧戰略為各國政府提供建議。

在9月14日,他終於完成一年半之前的約稿,在個人博客上又發新作:艾倫·圖靈(Alan Mathison Turing) 被過譽。

博文截圖

長期以來,Jürgen Schmidhuber 都像一個精力充沛的戰士,矛頭直指科技界當紅小生,曾與 Ian Goodfellow 爭辯 GAN 的歸屬、還在ACM 將圖靈獎授予「深度學習三巨頭」後,極力肯定和推廣LSTM在人工神經網絡和深度學習領域的巨大作用,引用 200 多條文獻逐條反駁 「三巨頭」的不該獲獎。直到去年的IEEE 2021上,神經網絡先驅獎被授予 LSTM 提出者 Sepp Hochreiter,長達近兩年的 LSTM爭 論終獲正名,科技界「抬槓選手」 Schmidhuber 的指正也獲得迂迴性的勝利。

註:圖靈獎(Turing Award),全稱A.M.圖靈獎(A.M Turing Award),是由美國計算機協會(ACM,)於1966年設立的計算機獎項,名稱取自艾倫·麥席森·圖靈(1912年-1954年),旨在獎勵對計算機事業作出重要貢獻的個人。圖靈獎對獲獎條件要求極高,評獎程序極嚴,一般每年僅授予一名計算機科學家。圖靈獎是計算機領域的國際最高獎項,被譽為"計算機界的諾貝爾獎"。

正因為帶有種種爭議和故事,Jürgen Schmidhuber 的動態更加引入關注。

今年,Jürgen Schmidhuber不再將矛頭指向圖靈獎的公正性,而是直接指向圖靈獎的創始人——艾倫·圖靈(以下簡稱圖靈)

長期以來,圖靈確實對計算機科學做出了某些重大貢獻,然而,這一領域的先驅們的貢獻常常被忽視,圖靈的個人價值卻經常被過分誇大。儘管這並不是圖靈的錯,但我們需要停止以犧牲先輩為代價而過度誇大單個科學家的貢獻。尋找和引用科技創新的原始來源相當重要。在新作中,Jürgen Schmidhuber引用了97條參考文獻,並直言:本文是為有同樣見解的計算機科學家提供的資源。

同時,《Nature》雜誌也在呼籲:"要重視那些修正科學的人"。

在新作中,Jürgen Schmidhuber重點討論了計算機科學的基本概念,以及哥德爾、祖斯、萊布尼茨先驅們研究的箇中關係。他們的研究有時被錯誤地認為是英國數學家圖靈的發明,尤其是在英語圈(以英語為母語的人)。

AI科技評論對其博文進行了不改變原意的整理,以下為具體內容。

1 矛盾點:並不完全錯誤,但極具誤導性

有人聲稱圖靈創立了計算機科學,就連同行評議的英國《Nature》雜誌此前也發表過誇大其詞的言論,比如:圖靈1936年的論文為未來所有計算機提供了"理論支柱"。事實並非如此。

一部受歡迎的英國電影《模仿遊戲》甚至說他發明了電腦。他沒有。(電影改編自安德魯·霍奇斯編著的《艾倫·圖靈傳》。二戰期間,盟軍苦於德國的秘密系統"英格瑪"無法破譯,政府召集了一批民間數學家、邏輯學家進行秘密破解工作,圖靈就是其中之一)

一位著名的歷史學家寫道:"我可以寫很多專欄,只不過是歪曲關於圖靈的荒謬文章,但大多數應該是由更了解的人寫的。"其中ACM對2018年對圖靈獎的官方解釋是, "圖靈獎是以英國數學家艾倫·M·圖靈(Alan M. Turing)的名字命名的,他闡明了計算的數學基礎和局限性。」

儘管ACM關於圖靈的聲明並不是完全錯誤的,但它極具誤導性,就像它的其他一些聲明一樣。ACM說圖靈"闡明了計算的數學基礎和極限" ,然而,幾十年來許多人已經這樣做了。當科學蓋棺定論時,重要的問題是誰先做的?

圖靈在奧地利數學家庫爾特·哥德爾 ( Kurt Gödel ) 開創性工作的五年後,以及圖靈的顧問美國人阿隆佐·丘奇( Alonzo Church)一年後發表了論文。當然,他在1936年的論文(其更正在1937年發表)中引用了這兩篇文章。帶著這一點,讓我們更仔細地看看現代計算機科學的誕生。

2 哥德爾的工作 (1906-1978)

20世紀30年代初(1931年),哥德爾成為現代計算機理論科學的奠基人。他引入了一種基於整數的通用編碼語言。它允許以公理的形式形式化任何數字計算機的操作。哥德爾用它來表示數據(如公理和定理)和程序 (如數據操作的證明生成序列)。他構建了一個著名的形式命題,討論了其他形式命題的計算,特別是自指式命題,這意味著它們是不可判定的,給出了一個計算定理證明,系統地從一組可列舉的公理中列舉出所有可能的定理。因此,他確定了算法定理證明、計算和任何基於計算的人工智慧的基本極限。

哥德爾

20世紀40 -70年代早期的人工智慧實際上是關於定理證明和通過專家系統和邏輯編程的哥德爾風格的演繹。

哥德爾建立在Gottlob Frege(在1879年他引入了第一個形式語言)、Georg Cantor(1891年,對角化技巧)、Thoralf Skolem(1923年他引入了原始遞歸函數)和Jacques Herbrand(他發現了Skolem方法的局限性)的早期工作的基礎上。這些作者是建立在萊布尼茨(Gottfried Wilhelm Leibniz)的形式代數思想(1686)的基礎上,它與後來1847年的布爾代數是演繹等價的。

萊布尼茨(Gottfried Wilhelm Leibniz)是「計算機科學之父」的候選人之一,他被稱為「世界上第一位計算機科學家」,甚至被稱為「有史以來最聰明的人」。他不僅是第一個發表無限小微積分(1684)的人,也是第一個描述穿孔卡片控制的二進位計算機原理(1679)的人。(二進位編碼本身要比這古老得多,可以追溯到古埃及。二進位運算的算法部分是相對較新的。比較Juan Caramuel y Lobkowitz發表的二進位編碼(1670)和Thomas Harriott未發表的論文)

此外,萊布尼茨追求一個雄心勃勃且極具影響力的項目,通過一種通用語言和用於推理的一般演算來回答所有可能的問題:《普遍性特徵與微積分推理者》 (靈感來自13世紀的學者Ramon Llull)。然而,在20世紀30年代早期,哥德爾的著名結果顯示了萊布尼茨計劃的局限性。

3 丘奇的工作 (1903–1995)

1935年,丘奇(Church)證明了希爾伯特和阿克曼(Hilbert & Ackermann)的決策問題沒有通解,從而導出了哥德爾結果的一個推論。為了做到這一點,他使用了另一種通用編碼語言,稱為非類型Lambda微積分(Untyped Lambda Calculus),它構成了極具影響力的程式語言LISP的基礎。

丘奇

1936年,圖靈引入了另一個通用模型,這可能是其中最著名的一個(至少在計算機科學領域): 圖靈機。他重新推導了上述結果。當然,他在1936年的論文中同時引用了哥德爾和丘奇。

同年,波斯特(Emil Post)發表了另一個獨立的通用計算模型,也引用了哥德爾和丘奇。丘奇證明了他的模型與哥德爾的模型具有同樣的表達能力。然而,據美籍華裔數學家、邏輯學家、哲學家王浩說,是圖靈的工作(1936)使哥德爾相信了自己(1931)和丘奇(1935)方法的普適性。

就像哥德爾在1931- 1934年發明的最初的通用語言一樣,圖靈機和1936年發明的波斯特機器都是理論的、不切實際的結構,不能直接作為現實世界計算機的基礎。值得注意的是,康拉德·祖斯為第一台實用的通用程序控制計算機申請的專利也可以追溯到1936年。

4 圖靈究竟做了什麼

圖靈和波斯特在1936年究竟做了什麼,是哥德爾(1931)和丘奇(1935)沒有做過的?

有一個看似微小的差異,但其重要性後來才顯現出來:哥德爾的許多指令序列都是數字編碼的存儲內容的整數乘法,但他並不關心這種乘法的計算複雜度會隨著存儲空間的增大而增加。同樣,丘奇也忽略了他的算法中基本指令的上下文依賴性時空複雜性。

然而,圖靈和波斯特採用了傳統的、簡化主義的、極簡主義的二進位的計算觀點。他們的機器模型只允許非常簡單、複雜度不變的基本二進位指令,比如萊布尼茨(1679)的早期二進位機器模型和祖斯1936年的專利申請。他們並沒有利用這一點——圖靈只是用他的(相當低效的)模型來重新表述哥德爾和丘奇關於可計算極限的結果。然而,後來,這些機器的簡單性使它們成為複雜性理論研究的方便工具。(我也很高興在無窮無盡的計算中使用並推廣了它們)

祖斯

有世人稱,圖靈至少為人工智慧奠定了基礎。這有什麼意義嗎?

  • 1948年,圖靈寫下了與人工進化和學習人工神經網絡有關的想法,其架構至少少可以追溯到1943年(參見自20世紀20年代以來與之密切相關的物理學工作)。圖靈沒有發表,這也解釋了為什麼他的論文缺乏影響力。

  • 1950年,他提出了一個簡單而著名的主觀測試,用來評估計算機是否智能。

1956年,在達特茅斯的一次會議上,約翰·麥卡錫(John McCarthy)創造了「人工智慧」一詞,作為相關研究的新標籤。然而,第一次關於人工智慧的會議早在1951年就在巴黎召開了,當時的人工智慧仍被稱為控制論,重點是與基於深度神經網絡的現代人工智慧非常一致。

但是早在1914年,西班牙人Leonardo Torres y Quevedo就已經成為20世紀第一個實用人工智慧的先驅,他創造了第一個可以使用的象棋終局棋手(當時象棋被認為是一種僅限於智能生物領域的活動)。幾十年後,當人工智慧先驅Norbert Wiener在1951年的巴黎會議上與它交手時,這台機器仍大展拳腳。

然而,祖斯(Konrad Zuse)早在1945年就有了更通用的象棋套路。他也在1948年應用了他開創性的Plankalkül程式語言來證明定理,遠早於Newell和Simon 1956年的工作。通過專家系統自動證明和推導定理,為人工智慧奠定了形式化的基礎(有些人錯誤地認為他也證明了人類優於人工智慧)。總之,人工智慧的基礎性成就遠遠早於圖靈的成就。

5 奇怪的頒獎

哥德爾理論計算機科學獎以哥德爾命名,但目前獎金更加豐厚的ACM 的圖靈獎成立於1966年,以表彰「對計算機領域具有持久和重大技術重要性」的貢獻。有趣而尷尬的是,哥德爾(1906-1978)從未得到過一個,儘管他不僅為該領域的「現代」版本奠定了基礎,而且還在給約翰·馮·諾依曼(1956)的著名信中指出了該領域最著名的開放問題「P=NP?」 儘管這些先驅者在該獎項設立數年後就去世了,但中間還有12年的時間。

同樣,祖斯(1910-1995)也從未獲得過圖靈獎,儘管他在1935-1941年間創造了世界上第一台可編程通用計算機。並且他在1936年的專利申請描述了可編程物理硬體所需的數字電路,這比香農在1937年關於數字電路設計的論文要早。

祖斯也在20世紀40年代早期創造了第一種高級程序設計語言,以及在1941年發明的Z3電腦。Z3不像哥德爾(1931)、丘奇(1935)、圖靈(1936)和波斯特(1936)那樣,只是一種理論上不切實際的紙筆結構,忽略任何物理計算機不可避免的存儲限制。它的物理硬體在上述理論的現代意義上確實是通用的——簡單的算術技巧可以彌補它缺乏一個顯式條件跳轉指令的類型 「IF…然後轉到地址…

順便說一下,圖靈的編程或波斯特的機器更尷尬,它們也不允許「現代的」條件跳轉——它們甚至沒有指令指針可以跳轉到的編號內存地址。

Z3 在計算硬體的歷史中處於什麼位置?

已知的第一個基於齒輪的計算裝置是2000多年前古希臘的天球儀(一種天文鐘)。1500年後,彼得·亨萊因仍在製造概念上類似的機器——儘管更小——也就是第一個小型化懷表(1505年)。但這些設備總是計算相同的東西,例如,用分鐘除以60得到小時。

17世紀出現了更靈活的機器,可以根據輸入數據計算答案。1623年,威廉·希卡德(Wilhelm Schickard)建造了第一台基於數據處理齒輪的簡單算術專用計算器,他是「自動計算之父」的候選人之一,緊隨其後的是Blaise Pascal(1642年)的高級Pascaline。

在1673年,上述不可避免的萊布尼茨設計了第一台能執行所有四種算術運算的機器(步數計算器),而且第一台有內存的機器。他還在1679年描述了二進位計算機的原理,幾乎是所有現代計算機的原理,包括Zuse的Z3。

Z3採用電磁繼電器,開關明顯移動。第一個電子專用計算器(其運動部件是太小而看不見的電子)是由John Atanasoff(「基於電子管的計算之父」)發明的二進位ABC(美國,1942年)。與17世紀以齒輪為基礎的機器不同,ABC使用的是電子管——今天的機器使用的是電晶體原理,由Julius E. Lilienfeld在1925年獲得專利。但是不像Z3, ABC不是自由編程的。湯米·弗勞爾斯(Tommy Flowers,英國,1943-45年)發明的用來破解納粹密碼的電子巨像機(NASC6)也不是。

另一方面,程序的概念當時已經眾所周知。也許世界上第一台可編程機器是亞歷山大的赫倫(顯然他也有第一個已知的蒸汽機- Aeolipile) 在1世紀製造的自動劇院。他的可編程機器人的能量來源是一個下落的重物,拉著一根纏繞在旋轉圓筒銷上的繩子。控制門和木偶幾分鐘的複雜指令序列由複雜的包裝編碼。

巴格達的巴努·穆薩兄弟(Banu Musa brothers)於9世紀發明的自動音樂裝置(music automaton)使用旋轉圓筒上的大頭針來存儲控制蒸汽驅動笛子的程序(與Al-Jazari公司的可編程鼓機1206相比)。

大約1800年,約瑟夫-瑪麗·雅卡爾等人在法國製造了第一台商用程序控制機器(穿孔卡片織機),他們也許是世界上第一個工業軟體的「現代」程式設計師。

在這種情況下,似乎有必要指出程序和上面提到的17世紀用戶提供的有限輸入數據之間的區別。程序是存儲在某些介質(如穿孔卡片上)上的指令序列,可以在不需要人工干預的情況下反覆運行。隨著時間的推移,存儲程序所需的物理對象變得越來越輕。古老的機器將它們儲存在旋轉的圓筒上; 提花機把它們放在紙板上; 祖斯將它們儲存在35毫米膠片上,而今天我們通常使用電子和可磁化材料來儲存它們。

雅卡爾的程序(1800年左右)還不是通用型的,但它們啟發了Ada Lovelace和她的導師Charles Babbage (英國,大約1840年)。他計劃製造一種可編程的通用計算機,但未能成功(只有他的非通用專用計算器製造出了一個20世紀的複製品)。

與Babbage不同,祖斯(1936-1941)使用了萊布尼茨的二進位計算原理(1679)替代傳統的十進位計算。這大大簡化了硬體。除了祖斯之外,其他人製造的第一台通用可編程機器是霍華德·艾肯(Howard Aiken)的,並仍然是十進位的MARK I(美國,1944年)。

Eckert和Mauchly(1945/1946)設計的更快的十進位ENIAC可以通過重新布線來編程。然而今天,大多數計算機都是像Z3那樣的二進位。

「"Manchester baby」(Williams, Kilburn & Tootill, 英國, 1948)和1948年升級的ENIAC都將數據和程序存儲在電子存儲器中,ENIAC通過將數字指令代碼輸入只讀存儲器進行了重新編程。然而,早在1936-38年,祖斯就可能是第一個建議將程序指令和數據都放入內存的人。有人指出,除了圖靈自己的ACE設計,20世紀40年代製造的計算機都沒有受到圖靈1936年理論論文的任何影響。

我們再次注意到,哥德爾1931 – 1934的形式模型將數據(例如公理)和程序(對數據的操作序列)以及結果(例如定理)編碼/存儲在相同的基於整數的存儲(現在稱為哥德爾編號)中,就像圖靈和波斯特後來將它們存儲在位字符串中一樣任何圖靈機、波斯特機或任何其他數字計算機都可以用哥德爾最初的通用模型形式化(這啟發了我的自我參照哥德爾機)。

然而,應該注意的是,我們在這裡使用了現代術語:哥德爾(1931年)、丘奇(1935年)和圖靈(1936年)都沒有在他們的論文中提到"程序"這個術語(儘管祖斯1936年的專利申請經常提到"Rechenplan",意思是"程序")。術語「存儲程序」後來首次出現在電子存儲的語境中。

圖靈發表了生物信息學方面的開創性工作。然而,他最大的影響可能來自於他對破譯德國軍隊在第二次世界大戰期間使用的Enigma密碼的貢獻。他與 Gordon Welchman在英國Bletchley公園共事。然而,著名的密碼破譯巨像機是由 Tommy Flowers設計的。英國密碼學家建立在波蘭數學家Marian Rejewski、Jerzy Rozycki和Henryk Zygalski的基礎之上,他們是第一個破解Enigma密碼的人,他們在電影《模仿遊戲》中甚至都沒有被提及。有人說這是打敗第三帝國的決定性因素。

6結語

總之,許多人對計算的理論和實踐做出了貢獻。他1936年的著名論文多次引用了哥德爾(1931)和丘奇(1935)的開創性工作,儘管圖靈站在巨人的肩膀上,但他的貢獻是巨大的。作為一名偉大的科學家,他似乎不太可能會贊同那些對他誇大其詞的說法,錯的不是他,那應該是誰呢。

資料來源:

https://people.idsia.ch//~juergen/turing-oversold.html

關鍵字: