Software2.0

深度學習和計算機視覺專家、特斯拉人工智慧部門主管Andrej Karpathy最近提出Software 2.0的概念,將神經網路視為Software 2.0,而非「機器學習中的一種工具」。在沒有深度學習的情況下也是適用的。

以前工程師想清楚業務邏輯然後實現系統代碼,現在隨著軟體系統越來越複雜,,系統複雜到業務的邏輯已經不能由人設計了。在現實世界中,大部分的問題具有收集數據要比明確地編寫程序容易得多的性質。以後程序員不再需要開發複雜的程序。他們需要收集、整理、操作、標記、分析和可視化提供給神經網路的數據。

人已經沒有辦法理解業務是什麼邏輯,是什麼邏輯產生輸出,所以只能依靠軟體系統自身優化的過程去尋找業務背後的邏輯是什麼。所以傳統的feature engineering就不能用了,

人只需要設計一個(深度學習)框架,框架的具體參數不需要人設計,人只需要標註很多數據, 讓系框架根據學習輸入,尋找背後的邏輯,產生輸出。

知識從何而來

前面所講到的智能的盒子(書),裡面的知識(能力)從哪裡來呢?傳統的方法是專家理解並尋找出在複雜世界中的運行規律,然後寫成rule或者知識圖譜,寫成計算機程序,這些計算機程序就可以像專家一樣做決策,取代專家的位置。 問題是流程中需要很多很多專家,專家就成了瓶頸。

弱監督下的自然語言處理

人希望能達到的效果是隻給出端到端的訓練樣例,如用戶一個查詢,用戶需要什麼,喜歡什麼,但是不會告訴系統怎麼產生結果,系統通過機器學習的過程自動搞清楚輸入的問題背後的邏輯是什麼,最終從輸入產生輸出,從而快速產生很智能的系統。

語言和推理

在這裡再介紹一個概念語義計算。

自然語言有兩種主流派別,分別觀點是:

? the formalist view(形式主義觀點)

自然語言是拿來計算的,日常生活中有很多需要推理情況,如要知道事物之後的規則,現象運行的規律等等,這些規則都是用自然語言來描述的。所以他們認為自然語言的最大作用是推理和計算。

language was primarily invented for resoning

? the functionalist view(功能主義觀點)

觀點是自然語言是用來交流的,計算能力是次要的

當前兩種觀點趨於融合(cognitive coupling hypothesis),認為人類進化到了一定階段,就擁有了推理能力,這個能力可以用於導航,交流,狩獵等。

複雜例子一

讓機器人理解 「bart『s father is homer「這句話。

機器人需要通過計算來理解這句話,假設機器人有一個知識圖譜,在機器人的腦海里已經知道有一個人叫做bart simpson,有父母雙親,爸爸叫做homer,性別男,媽媽叫做marge,性別女, 知道一個人叫做bart,父母。當機器人聽到bart『s father的時候,機器人通過計算找到bart的父母,性別是男性,就知道了homer是bart的父親。

複雜例子二

這個例子涉及到語義組合,例子的目標是理解「impressionist painters during the 1920s」。

每個詞的背後都是有語義的,painters背後的語義其實是一個計算步驟,在知識圖譜中找到painting(畫)它有個關係(!/)叫做art_forms, art_forms意思是藝術形式是否是繪畫,整個計算過程就是從paining節點出發找到所有藝術形式是繪畫的人。(結果會找出很多)。所以painters的語義是計算步驟,計算步驟放入到具體的事件(知識圖譜)中,計算結果會出現很多符合條件的人,這些人就相當於語義的外延。,

下面把painter和其他語義結合起來,比如impressionist<visual_artist>, x代表一個denotation,已經有了一羣artist,通過條件associated_periods_or_movements(事件)過濾,時間是impressionism,意思是這個畫家參加過印象派的事件,說明它是印象派的藝術家,這個過程就是過濾掉不是印象派的畫家。本來有4個畫家,現在剩下兩個。把語義組合在一起變成一個更長的計算步驟,算出一個更長的語義外延。

<artist>during the 1920s的語義是看畫家的創作的時間是否在20年代,把不是20年代創作的畫家過濾掉。把以上三個語義連在一起,是一個更長的計算步驟。

例子總結

左邊是自然語言問題,如「largest city in us?」,把這句話翻譯成計算步驟,city存在變數v1中,「hop v1 city」意思是找到這個國家所有的城市,「argmax v2 population」按照人口排序。

最後輸出所要的答案。自然語言理解就是計算過程。

語義好像外語,因為要描述計算步驟需要一種語言,而這種語言不是人類語言,是機器語言。自然語言理解目的是把人類語言翻譯成機器語言。

語言的作用是控制,編程是為了控制機器,和人交流是為了控制人的行為。因為目的是控制,其實優化目標最好用控制的目標函數,所以加強學習的目標函數是效果最好。

語義搜索

計算機被發明之前,就覺得它可以幫你搜索各種信息的裝置。

如搜索引擎就已經實現了,但是搜索引擎不能理解自然語言,雖然能找到你要的網頁但是不能理解,

所以搜索的應用主要是幫你找到互聯網上的資源,如電影,餐館,產品等。

語義解析

語義解析目標是把自然語言(natural language)翻譯成機器語言或者叫做logical form(邏輯表達式),機器語言在知識圖譜上進行計算,算出正確的答案或者你期望產生的行為。傳統的訓練方式叫做強監督,就是訓練的時候要給logical form的輸入,把每句話對應的步驟標註出來,這樣就很難大規模的應用,因為人力成本很高,不是什麼人都能理解機器語言怎麼寫。新的趨勢就是弱監督,我只是標註它最終的行為,而不是標註中間的步驟(中間的計算過程)。

基於自然語言理解的問答系統的挑戰

第一:paraphrase,同樣的語義有不同的理解,如何找到足夠的數據,把他們都表示出來。

第二:compositionality,如何把語義組合起來,表達出你要表達的意思。

第三:large search space,搜索空間,知識圖譜存儲空間很大。如知識圖譜有2w個關係的種類,基於此寫計算步驟是很複雜的,同一個語義,要搜索上百萬的表達式才能找到目標表達式。

典型數據集

webquestionssp數據集:它是berant在2013年斯坦福做的,裡麪包含5800多個從google和amazon爬下來的問題。這些問題都可以回答,如

? what do michelle Obama do for a living?

Writer,lawyer

? What character did natalie portman play in star wars?

Padme amidala

? What currency do you use in costa rica?

Costa rican colon

? What did Obama study in school?

Political science

? What killed Sammy davis jr?

Throat cancer

Wikitablequestions數據集,它是通過維基百科的圖表中回答問題,如:

上表是關於不同國家舉辦奧運會,問答系統可以通過圖表來回答問題。這個數據集研究的問題更難一些,因為程序的空間更大,用到的詞更多,對機器學習挑戰更大。

上表是wikitablequestions用到的function,上面都是在圖表中計算的步驟,把他們組合起來,就可以通過圖表回答問題。

參看:

飄哥:學習基於弱監督學習的自然語言理解(上)?

zhuanlan.zhihu.com圖標
推薦閱讀:

相關文章