首頁>科技>

本文屬於個人觀點,跟本人在職公司的立場無關。由於最近 GitHub 伺服器在國內訪問速度嚴重變慢,雖然經過大幅度壓縮尺寸,文中的圖片仍然可能需要比較長時間才能載入。這篇文章揭示了 AI 領域重要的謬誤和不實宣傳,為了阻止愚昧的蔓延,我鼓勵大家轉發這篇文章和它的後續,轉發時只需要註明作者和出處就行。

這是這個系列文章的第二集,在這一集中,我想詳細分析一下 AI 領域到底理解多少人類神經系統的構造。

神經網路為什麼容易被欺騙

“神經網路”與人類神經系統的關係是是很膚淺的。等你理解了所謂“神經網路”,就會明白它跟神經系統幾乎沒有一點關係。“神經網路”只是一個誤導性質的 marketing 名詞,它出現的目的只是為了讓外行產生不明覺厲的效果,以為它跟人類神經系統有相似之處,從而對所謂的“人工智慧”信以為真。

其實所謂“神經網路”應該被叫做“可求導程式設計”。說穿了,所謂“神經網路”,“機器學習”,“深度學習”,就是利用微積分,梯度下降法,用大量資料擬合出一個函式,所以它只能做擬合函式能做的那些事情。

用了千萬張圖片和幾個星期的計算,擬合出來的函式也不是那麼可靠。人們已經發現用一些辦法生成奇怪的圖片,能讓最先進的深度神經網路輸出完全錯誤的結果

圖片來源:http://127.0.0.1/vhost/conf/img_echo.php?w=640&h=571&src=http://www.evolvingai.org/fooling

神經網路為什麼會有這種缺陷呢?因為它只是擬合了一個“畫素=>名字”的函式。這函式碰巧能區分訓練集裡的圖片,卻不能抓住物體的結構和本質。它只是畫素級別的擬合,所以這裡面有很多空子可以鑽。

深度神經網路經常因為一些畫素,顏色,紋理匹配了物體的一部分,就認為圖片上有這個物體。它無法像人類一樣理解物體的結構和拓撲關係,所以才會被畫素級別的膚淺假象所欺騙。

比如下面兩個奇怪的圖片,被認為是一個菠蘿蜜和一個遙控器,僅僅因為它們中間出現了相似的紋理。

另外,神經網路還無法區分位置關係,所以它會把一些位置錯亂的圖片也識別成某種物體。比如下面這個,被認為是一張人臉,卻沒發現五官都錯位了。

神經網路為什麼會犯這種錯誤呢?因為它的目標只是把訓練集裡的圖片正確分類,提高“識別率”。至於怎麼分類,它可以是毫無原則的,它完全不理解物體的結構。它並沒有看到“葉子”,“果皮”,“方盒子”,“按鈕”,它看到的只是一堆畫素紋理。因為訓練集裡面的圖片,出現了類似紋理的都被標記為“菠蘿蜜”和“遙控器”,沒有出現這紋理的都被標記為其它物品。所以神經網路找到了區分它們的“分界點”,認為看到這樣的紋理,就一定是菠蘿蜜和遙控器。

我試圖從神經網路的本質,從統計學來解釋這個問題。神經網路其實是擬合一個函式,試圖把標籤不同的樣本分開。擬合出來的函式試圖接近一個“真實分界線”。所謂“真實分界線”,是一個完全不會錯的函式,也就是“現實”。

資料量小的時候,函式特別粗糙。資料量大了,就逐漸逼近真實分界線。但不管資料量如何大,它都不可能得到完全準確的“解析解”,不可能正好抓住“現實”。

除非現實函式特別簡單,運氣特別好,否則用資料擬合出來的函式,都會有很多小“縫隙”。以上的畫素攻擊方法,就是找到真實分界線附近,“縫隙”裡面的樣本,它們正好讓擬合函數出現分類錯誤。

人的視覺系統是完全不同的,人直接就看到了事物是什麼,看到了“解析解”,看到了“現實”,而沒有那個用資料逼近的過程,所以除非他累得頭腦發麻或者喝了酒,你幾乎不可能讓他判斷錯誤。

退一步來看,影象識別所謂的“正確分類”都是人定義的。是人給了那些東西名字,是許多人一起標註了訓練用的圖片。所以這裡所謂的“解析解”,“現實”,全都是人定義的。一定是某人看到了某個事物,他理解了它的結構和性質,然後給了它一個名字。所以別的人也可以通過理解同一個事物的結構,來知道它是什麼。

神經網路不能看到事物的結構,所以它們也就難以得到精確的分類,所以機器在影象識別方面是幾乎不可能超越人類的。現在所謂的“超人類視覺”的深度學習模型,大部分都是欺騙和愚弄福斯。使用沒有普遍性的資料集,使用不公平的準確率標準來對比,所以才顯得機器好像比人還厲害了。這是一個嚴重的問題,在後面我會詳細分析。

神經網路訓練很像應試教育

神經網路就像應試教育訓練出來的學生,他們的目標函式是“考高分”,為此他們不擇手段。等畢業工作遇到現實的問題,他們就傻眼了,發現自己沒學會什麼東西。因為他們學習的時候只是在訓練自己“從 ABCD 裡區分出正確答案”。等到現實中沒有 ABCD 的時候,他們就不知道怎麼辦了。

深度學習訓練出來的那些“引數”是不可解釋的,因為它們存在的目的只是把資料擬合出來,把不同種類的圖片分離開,而沒有什麼意義。AI 人士喜歡給這種“不可解釋性”找藉口,甚至有人說:“神經網路學到的資料雖然不可解釋,但它卻出人意料的有效。這些學習得到的模型引數,其實就是知識!”

這些模型真的那麼有效嗎?那為什麼能夠被如此離譜的圖片所欺騙呢?說“那就是知識”,這說法簡直荒謬至極,嚴重玷汙了“知識”這個詞的意義。這些“學習”得到的引數根本就不是本質的東西,不是知識,真的就是一堆毫無道理可言的數字,只為了降低“誤差”,能夠把特徵空間的圖片區分開來,所以神經網路才能被這樣鑽空子。

說這些引數是知識,就像在說考試猜答案的技巧是知識一樣可笑。“另外幾套題的第十題都是 B,所以這套題的第十題也選 B”…… 深度學習擬合函式,就像拿歷年高考題和它們的答案來擬合函式一樣,想要不上課,不理解科目知識就做出答案來。有些時候它確實可以蒙對答案,但遇到前所未見的題目,或者題目被換了一下順序,就傻眼了。

人為什麼可以不受這種欺騙呢?因為人提取了高階的拓撲結構,不是瞎蒙的,所以人的判斷不受畫素的影響。因為提取了結構資訊,人的觀察是具有可解釋性的。如果你問一個小孩,為什麼你說這是一隻貓而不是一隻狗呢?她會告訴你:“因為它的耳朵是這樣的,它的牙是那樣的,它走路的姿勢是那樣的,它常常磨爪子,它用舌頭舔自己……”

做個實驗好了,你可以問問你家孩子這是貓還是狗。如果是貓,為什麼他們認為這是一隻貓而不是一隻狗?

神經網路看到一堆畫素,很多層處理之後也不知道是什麼結構,分不清“眼睛”,“耳朵”和“嘴”,更不要說“走路”之類的動態概念了,所以它也就無法告訴你它認為這是貓的原因了。擬合的函式碰巧把這歸成了貓,如果你要追究原因,很可能是膚淺的:圖片上有一塊畫素匹配了圖片庫裡某隻貓的毛色紋理。

有一些研究者把深度神經網路的各層引數拆出來,找到它們對應的圖片中的畫素和紋理,以此來證明神經網路裡的引數是有意義的。咋一看好像有點道理,原來“學習”就能得到這麼多好像設計過的濾鏡啊!可是仔細一看,裡面其實沒有多少有意義的內容,因為它們學到的引數只是能把那些圖片類別分離開。

所以人的視覺系統很可能是跟深度神經網路原理完全不同的,或者只有最低階的部分有相似之處。

“神經網路”與人類神經元的關係是膚淺的

為什麼 AI 人士總是認為視覺系統的高階功能都能通過“學習”得到呢?非常可能的事情是,人和動物視覺系統的“結構理解”,“3D建模”功能不是學來的,而是早就固化在基因裡了。想一想你生下來之後,有任何時候看到世界是平面的,毫無關聯的畫素嗎?

所以我覺得,人和動物生下來就跟現有的機器不一樣,結構理解所需的硬體在胚胎裡就已經有了,只等發育和啟用。人是有學習能力,可是人的學習是建立在結構理解之上,而不是無結構的畫素。另外人的“學習”很可能處於比較高的層面,而不是神經元那麼“底層”的。人的神經系統裡面並沒有機器學習那種 back-propagation。

縱使你有再多的資料,再多的計算力,你能超越為期幾十億年的,地球規模的自然進化和選擇嗎?與其自己去“訓練”或者“學習”,不如直接從人身上抄過來!但問題是,我們真的知道人的視覺系統是如何工作的嗎?

神經科學家們其實並沒有完全搞明白人類視覺系統是如何工作的。就像所有的生物學領域一樣,人們的理解仍然是很粗淺的。神經網路與人類視覺系統的關係是膚淺的。每當你質疑神經網路與人類視覺系統的關係,AI 研究者就會抬出 Hubel & Wiesel 在 1959 年拿貓做的那個實驗:“有人已經證明了人類視覺系統就是那樣工作的!” 如此的自信,不容置疑的樣子。

我問你啊,如果我們在 1959 年就已經知道人類視覺系統的工作原理細節,為什麼現在還各種模型改來改去,訓練來訓練去呢?直接模仿過來不就行了?所以這些人的說法是自相矛盾的。

你想過沒有,為什麼到了 2019 年,AI 人士還拿一個 60 年前的實驗來說明問題?這 60 年來就沒有新的發現了嗎?而且從 H&W 的實驗你可以看出來,它只說明了貓的視覺神經有什麼樣的底層功能(能夠做“線檢測”),卻沒有說那就是全部的構造,沒說上層的功能都是那樣夠構造的。

H&W 的實驗只發現了最底層的“線檢測”,卻沒有揭示這些底層神經元的訊號到了上層是如何組合在一起的。“線檢測”是影象處理的基礎操作。一個能夠識別拓撲結構的動物視覺系統,理所當然應該能做“線檢測”,但它應該不止有這種低階功能。

視覺系統應該還有更高階的結構,H&W 的實驗並沒能回答這個問題,它仍然是一個黑盒子。AI 研究者們卻拿著 H&W 的結果大做文章,自信滿滿的聲稱已經破解了動物視覺系統的一切奧祕。

那些說“我們已經完全搞明白了人類視覺是如何工作”的 AI 人士,應該來看看這個 2005 年的分析 Herman grid 幻覺現象的幻燈片。這些研究來自 Schiller Lab,MIT 的腦科學和認知科學實驗室。通過一系列對 Herman grid 幻覺圖案的改動實驗,他們發現長久以來(從 1960 年代開始)對產生這種現象的理解是錯誤的:那些暗點不是來自視網膜的“邊沿強化”功能。他們猜想,這是來自大腦的 V1 視覺皮層的 S1 “方向選擇”細胞。接著,另一篇 2008 年的 paper 又說,Schiller 的結果是不對的,這種幻覺跟那些線條是直的有關係,因為你如果把那些白線弄彎,幻覺就消失了。然後他們提出了他們自己的,新的“猜想”。

從這種研究的方式我們可以看出,即使是 MIT 這樣高階的研究所,對視覺系統的研究還處於“猜”的階段,把人腦作為黑盒子,拿一些圖片來做“行為”級別的實驗。他們並沒有完全破解視覺系統,看到它的“線路”和“演算法”具體如何工作,而是給它一些輸入,測試它的輸出。這就是“黑盒子”實驗法。以至於很多關於人類視覺的理論都不是切實而確定的,很可能是錯誤的猜想。

腦科學發展到今天也還是如此,AI 領域相對於腦科學的研究方式,又要低一個級別。2019 年了,仍然抬出神經科學家 1959 年的結果來說事。閉門造車,對人家的最新成果一點都不關心。現在的深度神經網路模型基本是瞎蒙出來的。把一堆畫素操作疊在一起,然後對大量資料進行“訓練”,以為這樣就能得到所有的視覺功能。

動物視覺系統裡面真有“反向傳導”(back-propagation)這東西嗎?H&W 的實驗裡面並沒有發現 back-propagation。實際上神經科學家們至今也沒有發現神經系統裡面有 back-propagation,因為神經元的訊號傳遞機制不能進行“反向”的通訊。很多神經科學家的結論是,人腦裡面進行 back-propagation 不大可能。

所以神經網路的各種做法恐怕沒有受到 H&W 實驗的多大啟發。只是靠這麼一個膚淺的相似之處來顯得自己接近了“人類神經系統”。現在的所謂“神經網路”,其實只是一個普通的數學函式的表示式,裡面唯一起作用的東西其實是微積分,所謂 back-propagation,就是微積分的求導操作。神經網路的“訓練”,就是反覆求導數,用梯度下降方法進行誤差最小化,擬合一個函式。這一切都跟神經元的工作原理沒什麼關係,完全就是數學。

為了消除無知帶來的困惑,你可以像我一樣,自己去了解一下人類神經系統的工作原理。我推薦你看看這個叫《Interactive Biology》的 YouTube 視訊系列。你可以從中輕鬆地理解人類神經系統一些細節:神經元的工作原理,視覺系統的原理,眼睛,視網膜的結構,聽覺系統的工作原理,等等。神經學家們對此研究到了如此細節的地步,神經傳導資訊過程的每一個細節都展示了出來。

AI 研究者並不知道人腦如何工作

AI 領域真的理解人腦如何工作嗎?你可以參考一下這個演講:”Can the brain do back-propagation?” (人腦能做 back-propagation 嗎?)。演講人是深度學習的鼻祖級人物 Geoffrey Hinton。他和其它兩位研究者(Yoshua Bengio 和 Yann LeCun),因為對深度學習做出的貢獻,獲得了 2018 年的圖靈獎。演講一開頭 Hinton 說,神經科學家們說人腦做 back-propagation 是不可能的,然後他開始證明這是可能的,依據神經元的工作原理,back-propagation 如何能用人腦神經元來實現。

是的,如果你有能力讓人腦按你的“演算法”工作的話,神經元組成的系統也許真能做 back-propagation,可是人腦是你設計的嗎?很可惜我們無法改變人腦,而只能去“發現”它到底是如何工作。這不是人腦“能不能”的問題,而是“做不做”的問題。研究人腦是一個科學發現工作,而不是一個工程設計工作。

看了這個演講,我覺得 AI 人士已經進入了一種“上了天”的狀態。他們堅定的認為自己的模型(所謂的“神經網路”)就是終極答案,甚至試圖把人腦也塞進這個模型,設想人腦神經元如何能實現他們所謂的“神經網路”。可是他們沒有發現,人腦的方式也許比他們的做法巧妙很多,根本跟他們的“神經網路”不一樣。

從這個視訊我們也可以看出,神經科學界並不支援 AI 領域的說法。AI 領域是自己在那裡瞎猜。視訊下面有一條評論我很欣賞,他用諷刺的口氣說:“Geoff Hinton 確切地知道人腦是如何工作的,因為這是他第 52 次發現人腦工作的新方式。”

AI 人的盲目信仰

AI 人士似乎總是有一種不切實際的“信仰”或者“信念”,他們堅信機器一定可以具有人類一樣的智慧,總有一天能夠在所有方面戰勝人類。總是顯示出一副“人類沒什麼了不起”的心態,張口閉口拿“人類”說事,好像他們自己是另外一個物種,已經知道人類的一切能力,有資格評判所有人的智力似的。

我不知道是什麼導致了這種“AI 宗教”。有句話說得好:“我所有的自負都來自我的自卑,所有的英雄氣概都來自於我內心的軟弱,所有的振振有詞都因為心中滿是懷疑。” 似乎是某種隱藏很深的自卑和怨恨,導致了他們如此的堅定和自負。一定要搞出個超越所有人的機器才善罷甘休,卻沒發現人類智慧的博大精深已經從日常生活的各種不起眼的小事透露出來。

他們似乎看不到世界上有各種各樣,五花八門的人類活動,每一種都顯示出奇蹟般的智慧。連端茶倒水這麼簡單的事情,都包含了機器望塵莫及的智慧,更不要說各種體育運動,音樂演奏,各種研究和創造活動了。就連比人類“低階”一點的動物,各種寵物,家畜家禽,飛鳥走獸,甚至昆蟲,全都顯示出足以讓人敬畏的智慧。他們對所有這些奇蹟般的事物視而不見,不是去欣賞他們的精巧設計和卓越表現,而是坐井觀天,唸叨著“機器一定會超越人類”。

他們似乎已經像科幻電影似的把機器當成了一個物種,像是保護“弱勢群體”一樣,要維護機器的“權益”和“尊嚴”。他們不允許其他人質疑這些機器,不允許你說它們恐怕沒法實現人類一樣的智慧。總之機器在他們心理已經不再是工具,而是活的生命,甚至是比人還高階的生命。

對此你可以參考另一個 Geoffrey Hinton 的採訪視訊,錄製於今年 5 月份的 Google 開發者大會(Google I/O ‘19)。

從這個視訊裡面我看到了許多 AI 人士盲目信仰和各種沒有根據的說法的來源,因為這些說法全都集中而強烈的體現在了 Hinton 的談話中。他如此的堅信一些沒有根據的說法,不容置疑地把它們像真理一樣說出來,卻沒有任何證據。有時候主持人都不得不採用了有點懷疑的語氣。

Hinton 在採訪中有以下說法:

他的這些說法都是不準確,不科學,沒有根據的。

我發現每當主持人用稍微懷疑的語氣問:“這真的可以實現嗎?” Hinton 就會回答:“當然能。我們不都是神經網路嗎?” 這裡有一個嚴重的問題,那就是他所謂的“神經網路”,其實並不是人腦裡面的神經元連成的網路。AI 領域的“神經網路”只是他們自己的數學模型,是他們自己給它起名叫“神經網路”而已。所以他的這種“證明”其實是在玩文字遊戲:“因為我們都是神經網路,所以神經網路能夠實現一切人類智慧,感情,甚至意識本身!”

前面的“神經網路”和後面的“神經網路”完全是兩回事。我們是“神經網路”嗎?我們的腦子裡是有神經元,神經元貌似連成了一個網路,可是它的結構卻跟 AI 領域所謂的“神經網路”是兩回事,工作原理也非常不一樣。Hinton 面對問題作出這樣的回答,是非常不科學,不負責任的。

最後關於生命,感情和意識的說法,我也很不認同。雖然生物學解釋了生命體的各種構造和原理,可是人們為什麼仍然沒能從無生命的物質製造出有生命的事物呢?雖然人們懂得那麼多生物學,生物化學,有機化學,甚至能合成出各種蛋白質,可是為什麼沒能把這些東西組裝在一起,讓它“活”起來呢?這就像你能造出一些機器零件,可是組裝起來之後,發現這機器不轉。你不覺得是因為少了點什麼嗎?生物學發展了這麼久,我們連一個最簡單的,可以說是“活”的東西都沒造出來過,你還能說“生命沒什麼特別的”嗎?

這說明生物學家們雖然知道生命體的一些工作原理,卻沒有從根本上搞明白生命到底是什麼。也就是說人們解決了一部分“how”問題(生命體如何工作),卻不理解“what”和“why”(生命是什麼,為什麼會出現生命)。

實際上生物學對生命體如何工作(how)的理解都還遠遠不夠徹底,這就是為什麼我們還有那麼多病無法醫治,甚至連一些小毛病都無法準確的根治,一直拖著,只是不會馬上致命而已。“生命是什麼”的 what 問題仍然是一個未解之謎,而不像 Hinton 說的,全都搞明白了,沒什麼特別的。

也許生命就是一種特別的東西呢?也許只有從有生命的事物,才能產生有生命的事物呢?也許生命就是從外星球來的,也許就是由某種更高階的智慧設計出來的呢?這些都是有可能的。真正的科學家應該保持開放的心態,不應該有類似“人定勝天”這樣的信仰。我們的一切結論都應該有證據,如果沒有我們就不應該說“一定”或者“必然”,說得好像所有祕密全都解開了一樣。

對於智慧和意識,我也是一樣的態度。在我們沒有從普通的物質製造出真正的智慧和意識之前,不應該妄言理解了關於它們的一切。生命,智慧和意識,比有些人想象的要奇妙得多。想要“人造”出這些東西,比 AI 人士的說法要困難許多。

有心人仔細觀察一下身邊的小孩子,小動物,甚至觀察一下自己,就會發現它們的“設計”是如此的精巧,簡直不像是隨機進化出來的,而是由某個偉大的設計者創造的。46 億年的時間,真的夠進化和自然選擇出這樣聰明的事物嗎?

別誤會了,我是不信宗教的。我覺得宗教的聖經都是小人書,都是某些人嚇編的。可是如果你堅定的相信人類和動物的這些精巧的結構都是“進化”來的,你堅定的相信它們不是什麼更高階的智慧創造出來的,那不也是另外一種宗教嗎?你沒有證據。沒有證據的東西都只是猜想,而不能堅信。

好像扯遠了……

總之,深度學習的鼻祖級人物說出這樣多信念性質的,沒有根據的話,由此可見這個領域有多麼混沌。另外你還可以從他的談話中看出,他所謂的“AI”都是各種相對容易的識別問題(語音識別,影象識別)。他並沒有看清楚機器要想達成“理解”有多困難。而“識別”與“理解”的區別,就是我的這篇文章想澄清的問題。

煉丹師的工作方式

設計神經網路的“演算法工程師”,“資料科學家”,他們工作性質其實很像“煉丹師”(alchemist)。拿個模型這改改那改改,拿海量的圖片來訓練,“準確率”提高了,就發 paper。至於為什麼效果會好一些,其中揭示了什麼原理,模型裡的某個節點是用來達到什麼效果的,如果沒有它會不會其實也行?不知道,不理解。甚至很多 paper 裡的結果無法被別的研究者復現,存在作假的可能性。

我很懷疑這樣的研究方式能夠帶來什麼質的突破,這不是科學的方法。如果你跟我一樣,把神經網路看成是用“可求導程式語言”寫出來的程式碼,那麼現在這種設計模型的方法就很像“一百萬只猴子敲鍵盤”,總有一隻能敲出“Hello World!”

許多數學家和統計學家都不認同 AI 領域的研究方式,對裡面的很多做法表示不解和懷疑。為此斯坦福大學的統計學系還專門開了一堂課 Stats 385,專門討論這個問題。課堂上請來了一些老一輩的數學家,一起來分析深度學習模型裡面的各種操作是用來達到什麼目的。有一些操作很容易理解,可是另外一些沒人知道是怎麼回事,這些數學家都看不明白,連設計這些模型的煉丹師們自己都不明白。

所以你也許看到了,AI 研究者並沒能理解人類視覺系統的工作原理,許多的機器視覺研究都是在瞎猜。在接下來的續集中,我們會看到他們所謂的“超人類識別率”是如何來的。

請看下一篇:機器與人類視覺能力的差距(3)

(見本日推送第三篇)

作者:王垠原文地址:http://www.yinwang.org/blog-cn/2019/09/15/machine-vs-human-2

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 5G帶來的新商機