什麼是強人工智慧?目前對此沒有絕對的定義,或許相當於通用人工智慧。但至少有一點可以肯定,那就是強人工智慧至少具備認知智能。認知智能至少包含知識和推理。強人工智慧強在哪裡?強在知其然,還要知其所以然。弱人工智慧只知道結果。比如:阿爾法狗知道如何下贏人類棋手,但無法解釋所用的規則和方法,因為他根本不關心下棋的規則。當規則稍微變化以後,這個碾壓人類的智能就立即變成弱智。因此弱人工智慧很難遷移。強人工智慧必須要能與人類溝通,必須要能解釋,必須要懂人類語言。
理解自然語言是通向強人工智慧的必經之路。自然語言是人類智慧最有效的載體。因為語言中至少包含了以下幾點:知識,常識,解釋,規則,推理和算法。理解語言讓人工智慧至少可以具備以下幾個重要功能:(1)可解釋,(2)能推理,(3)更通用。
坎坷的語言理解之路:
與圖像識別不同的是,知識,常識,解釋,規則,推理和算法,這些至關重要的東西可能並不在語言文字數據之中,從而無法直接從語言數據中獲取對意思的正真理解:
(1) 知識:是對這個客觀世界現象的基本描述。知識是思維最基本的依據。
(2) 常識:是對這個客觀世界規則的基本描述。常識常常不在語言之中,所以理解才更複雜。
(3) 解釋:除了因果解釋,詞語意思的解釋與常識一樣,不在語言之中,讓理解變得更複雜。
(4) 規則:客觀世界有自然規則,人類社會有社會規則,規則無形中約束了我們的思維,也讓語言的理解變得更複雜,很多時候規則也不在當前語言之中。
(5) 推理:推理也是一種規則,但比規則更靈活。他可以是真實的,可以是假設。推理讓思維變得異常複雜。語言表達時常常只說因,讓聽的人去理解果。
(6) 算法:算法是電腦程式的核心,也是人類思維的核心,在人類語言中也無處不在。語言中包含了大量的對知識的處理算法,運用規則和推理的算法,執行命令,回答問題等處理算法。這些都不是數據本身能體現出來的。
理解語言,必須要搞懂人腦處理語言的機制或模擬人腦處理語言的算法。這是一個誰都不太願意面對的問題,卻是一個無法迴避的問題。深度學習的核心思想是用純數學的方法去建立兩個事物之間的關聯性。有效的迴避了大腦運行機制的難題,解決了大部分感知智能能解決的問題。如語音識別,圖像識別,甚至語言方面的自動翻譯,意圖識別,自動回復等。只要不需要解釋為什麼,不用到常識和推理。強大的數據記憶能力和算力讓深度學習在智能界所向披靡。然而數學方法始終無法代替語言的功能,語言中蘊藏了大量的規則和算法,如果人工智慧算法中沒有這些規則和算法的處理,要理解語言有點異想天開。
自然語言理解面前的四座大山:
(1) 語言表達的隨意性。語言有語法嗎?有,沒有。真的有,真沒有。看似有,卻沒有。
(2) 知識,常識,推理的定義和存儲。知識圖譜只是知識的一種簡單表達形式,知識在表達上的複雜度遠非如此。大腦中的神經網絡到底是什麼?為什麼是網狀的,代表了思維的複雜性?不,千億個神經元代表的是知識的複雜結構。知識不像表格一樣一行一列的存儲,也不是以一點為中心,向四周發散。而是網狀的,每個知識點與周圍多個點相連,似乎沒有起點和終點。知識的無窮無盡,前後依賴讓人眼花繚亂。
(3) 算法的靈活設計。人腦處理語言的算法經過了幾千年的進化,優化到了極致。對靈活性的要求之高可想而知。大腦可以隨時隨地編寫算法,調試算法,修改算法。這一點電腦望塵莫及。編寫一個高度靈活的處理算法至關重要。傳統的順序執行程序很難編寫出人腦隨心所欲的思維處理算法。這對算法設計是個很大的挑戰。
(4) 你懂了嗎?人不懂可以直接說我不懂,或說這個詞是什麼意思。電腦不懂只能沉默,因為他不知道這句話到底是什麼意思,不知道自己怎樣才算懂。有時候知道自己懂什麼容易,知道自己不懂反而更難。站在傻電腦的角度去思考問題是難上加難。
理解人類語言的標準:至少能像小孩一樣用語言進行流暢的思想交流。常常看到說機器閱讀理解大賽準確率達到甚至超過人類,這說明什麼?說明機器理解能力強?不,說明我們太浮躁,不能靜下心來正真去理解一句話的意思,哪怕是6歲小朋友說話的意思。不要拿歧義句來作為不能理解語言的藉口,也不要拿很難分詞的重疊字來說事,這些都不是機器理解語言的難點,只是人類理解起來覺得難而已。擺在機器面前最大的難題是簡單的,正常的,基本的語言都無法理解。
理解人類語言的前提:拒絕大數據,基於小數據。一張圖不能改變對貓的識別,但是一句話可以完全改變你對事物的的認知和看法。一句話可以反轉劇情。一句話可以毀掉一個人。理解語言必須理解每一句話的意思,每一個字的意思。搞懂語言中的所有規則和處理算法,並列出相關知識和常識,才有可能正真理解語言。
NN智能AI人機對話課堂,試圖用教學的方式讓機器一點一滴的去掌握人類語言中的知識,給機器一個向人類學習的機會,努力實現人與機器之間心與心的交流。也給人類一個與機器講道理的機會。