標籤:

人工智慧究竟需要多少人工?

我15歲的時候寫過聊天機器人,還發起了一個網站:ai.ivydom.com

當時寫聊天機器人有兩個主要原因,一是受貓娘計劃_互動百科刺激。貓娘計劃開始於2011年初,發起人僅僅比當時的我大兩歲。我當時就在想:「我17歲的時候能獨立發起這樣一個在二次元圈廣泛傳播的計劃嗎?」,於是我關注當下,馬上開始動手。二是,15歲的時候,我覺得Google、Facebook已經佔據了互聯網最大的兩塊流量,我已經無法成為他們了,而我若想塑造下一個偉大的公司,機會一定在人工智慧上(後來移動互聯網證明了這是錯的)。

於是,2011年的夏天和冬天,我對人工智慧如痴如醉。

我主要做了兩件事,第一件事是完成了一個IDE和中文編程語言解釋器。這個解釋器可以按行解析中文代碼並翻譯成VB執行,我當時不懂數據結構,所以所有的語法結構,我都自創了一個字元串結構去存儲,當然這個字元串結構遠沒有json、yaml清晰,甚至到了後來我解析我這個字元串結構的時候發現還要再定義另外一套結構存儲,這根本就是個無限遞歸嘛。再然後我就找,有沒有一種可以直接操作內存而不用先解析字元串再操作內存的方法,後來我就看到了數據結構,自此我的另一扇門被打開了。這個中文編程語言拖VB的福,不僅實現了if..else...,for循環,還實現了GUI編程。然而這個語言的下場是,跟著我那台壞掉的電腦一起消失了。

第二件事是從零開發了一套聊天系統,從自然語言處理到上下文聯想,包括數據構建,都是從零開始的。這個聊天機器人達到了,我說一個詞「茄子」,他能根據上下文聯想到「拍照」和「吃飯」這兩件事中的一件事。開發這套系統的時候,我仍然是一個高一的學生,但我在課堂內,課堂外,寫了大量關於人工智慧的文章,現在它們仍躺在我大學的宿舍里。讓我痛惜的事情是,又一次電腦壞掉之後,我爸將這台電腦重裝了系統,於是代碼又沒了,為了這件事,我沒少跟他生氣。但是在這之後,我學會了使用版本控制,並在github上註冊了賬號,那一年是2012年。

這件事做完之後,我深深的感受到了實現通用人工智慧的難度之大,說其不可能毫不為過。從那時起,人工智慧在我的眼裡,就是有多少人工就有多少智能的傻瓜機器。後來我又接觸到了prolog,一款邏輯編程語言,原以為通過它可以實現一些意想不到的事情,後來在用它做一些演算法題時發現,其實現難度甚至比使用普通的編程語言更大。

然後,貓娘計劃倒閉了,要高考了,我的人工智慧歷程也到此結束了。

接著就到了2017年,人工智慧又成了熱詞。百度指望著用AI成為千億美金市值的公司,聯想拿上身家性命賭AI,劉強東已經用無人機送貨了,無人駕駛已經上路了,AT也相繼成立了AI Lab,甚至連ofo都宣布要航天了。

人人都想從其中分一杯羹。打著AI旗號的公司太多,多如牛毛。一場泡沫忽的又被吹起來了,AI泡沫,這是第三次了,所有人都希望它能夠接替移動互聯網成為新的經濟增長引擎。

那麼回到問題,人工智慧究竟需要多少人工?

答案是顯而易見的,有多少智能就有多少人工,甚至成倍的人工都有可能。

私以為,真正的強人工智慧應該有以下能力:

  1. 將非結構化數據自動結構化
  2. 根據結構化數據自動編程,生成代碼
  3. 自調試,自運行,自檢錯

給人類自身的反射就是:

  1. 隨便給一段自然語言,機器能夠理解正確
  2. 隨便給一段自然語言描述的需求,機器能夠響應並完成需求

而僅僅是第一步「將非結構化數據自動結構化」就是一個世界性難題。馮·諾伊曼架構的計算機,在原理上就無法模擬大腦。當然,如果有足夠的數據和人力,確實可以彌補這個缺陷。現行的人工智慧都屬於垂直領域的智能,但即使是垂直領域的智能,也需要大量的人力和時間。

最明顯的例子,百度無人車有三千多個場景,一萬多個if。對,沒錯,就是這樣的窮舉羅列,這就是現在的人工智慧。

在運維領域,有一種理念叫DevOps,它主張從開發到上線的全自動無人化管理,你說這東西可不可以叫人工智慧?它也使機器自動化完成一些任務,只是這些任務比較簡單,可能幾個shell腳本就可以做到。去年雙11的時候,阿里部署了幾十萬docker容器,這些容器都實現了自動監控,彈性伸縮,你說這算不算人工智慧?

沒有人覺得這是人工智慧,它們只能被稱作為自動化系統。最本質的區別在於,上面的自動化系統在處理機器與機器之間的通信,而人工智慧要處理人與機器之間的通信

機器與機器之間的通信,可以用機器的語言表達,其實就是數據結構。

而人與機器中間的通信,其中間格式就多了去了,有文本、視頻、圖片、音頻等,每一項中間格式,都可以撐起一個產業。這些產業研究的重點就在於,如何將這些人類可讀的數據高效轉化成機器可讀的數據結構然後執行。

我以前學Web的時候,寫多了,覺得計算機世界用4個字就可以描述清楚:CRUD——增刪改查。看似高大上的人工智慧,其實也在做這件事:

  • C(Create,增):將人類現實世界的數據二進位化
  • R(Read,查):根據二進位化數據查找人類世界事物之間的關係
  • U(Update,改):根據人類反饋不斷修正關係、數據、模型
  • D(Delete,刪):根據人類反饋刪除臟數據

後來,我覺得,世界本身也是CRUD。計算機吸引我的地方也在於此,既可以創造一個世界,也可以反射真實的世界。

雖然人工智慧需要很多人工,但是如果人工足夠的話,真的出現了智能也說不定。


推薦閱讀:

TAG:人工智能 |