国产精品久久久久久久小说,国产国产裸模裸模私拍视频,国产精品免费看久久久无码,风流少妇又紧又爽又丰满,国产精品,午夜福利

熱搜: 發(fā)那科機(jī)器人  工業(yè)  機(jī)器人  上海  ABB機(jī)器人  自動化  工業(yè)機(jī)器人  工業(yè)機(jī)器人展  機(jī)器  展會 

運(yùn)用深度學(xué)習(xí)教機(jī)器人理解自然語言

   日期:2016-08-18     評論:0    
標(biāo)簽:
 在深度學(xué)習(xí)出現(xiàn)之前,文字所包含的意思是通過人為設(shè)計的符號和結(jié)構(gòu)傳達(dá)給計算機(jī)的。本文討論了深度學(xué)習(xí)如何用向量來表示語義,如何更靈活地表示向量,如何用向量編碼的語義去完成翻譯,以及有待改進(jìn)的地方。

在深度學(xué)習(xí)出現(xiàn)之前,我們書寫的文字所包含的意思是通過人為設(shè)計的符號和結(jié)構(gòu)傳達(dá)給計算機(jī)的。其符號方法包括WordNet、ConceptNet和FrameNet,通過對比來更好地理解深度學(xué)習(xí)的能力。然后我會討論深度學(xué)習(xí)如何用向量來表示語義,以及如何更靈活地表示向量。接著我將探討如何用向量編碼的語義去完成翻譯,甚至為圖片添加描述和用文字回答問題。最后,總結(jié)了用深度學(xué)習(xí)技術(shù)真正地理解人類語言還需要哪些改進(jìn)。

WordNet可能是最著名的象征意義的語料庫,由普林斯頓大學(xué)研發(fā)。它將意思相近的單詞歸為一組,并且表示組與組之間的層次聯(lián)系。舉個例子,它認(rèn)為“轎車”和“汽車”指的是同一個物體,都是屬于一類交通工具。

ConceptNet是來自麻省理工學(xué)院的語義網(wǎng)絡(luò)。它表示的關(guān)系比WordNet更廣。例如,ConceptNet認(rèn)為“面包”一詞往往出現(xiàn)在“烤面包機(jī)”附近。然而,詞語間的這種關(guān)系實在是不勝枚舉。理想情況下,我們會說“面包機(jī)”不能被“叉子”插入。

FrameNet是伯克利大學(xué)的一個項目,它試圖用框架對語義歸檔。框架表示各種概念及其相關(guān)的角色。例如,孩子生日聚會框架的不同部分有著不同的角色,比如場地、娛樂活動和糖源。另一個框架是“購買”這個行為,包括賣方、買方和交易商品。計算機(jī)能夠通過搜索觸發(fā)框架的關(guān)鍵詞來“理解”文字。這些框架需要手動創(chuàng)建,它們的觸發(fā)詞也需要手動關(guān)聯(lián)。我們可以用這種方式來表示大量知識,但是很難一五一十地明確寫出來。因為內(nèi)容實在太多,完完全全寫出來也太費神了。

符號也可以用來創(chuàng)建語言模型,計算某個單詞將會出現(xiàn)在句子中的概率。舉個例子,假設(shè)我剛剛寫下“我吃了”,那么下一個詞語是“慶豐包子”的概率,可以用語料庫中“我吃了慶豐包子”出現(xiàn)的次數(shù)除以“我吃了”出現(xiàn)的次數(shù)來計算。此類模型相當(dāng)有用,但我們知道“慶豐包子”與“狗不理包子”非常相似,至少比“電飯鍋”相似,但是模型并沒有利用這種相似性的優(yōu)勢。使用的詞語有千千萬萬,若是存儲所有三詞短語需消耗(詞語數(shù)量 x 詞語數(shù)量 x 詞語數(shù)量)存儲空間,這也是使用符號所帶來的問題,因為詞語以及詞語的組合實在太多。所以,我們需要一種更好的方式。

使用向量表示語義

深度學(xué)習(xí)使用向量來表示語義,因此概念不再是由一個龐大的符號來表示,而是由特征值表示的一個向量來表示。向量的每個索引代表神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的一個特征,向量的長度一般在300左右。這是一種更加有效的概念表示方法,因為這里的概念是由特征組成的。兩個符號只有相同或者不同兩種情況,而兩個向量可以用相似性來衡量。“慶豐包子”對應(yīng)的向量與“狗不理包子”對應(yīng)的向量很接近,但是它們和“轎車”對應(yīng)的向量差別很大。如同WordNet處理方式一樣,相似的向量被歸為同一類。

向量還存在內(nèi)部結(jié)構(gòu)。如果你用意大利向量減去羅馬向量,得到的結(jié)果應(yīng)該與法國向量減去巴黎向量的結(jié)果非常接近。我們可以用一個等式來表示:

意大利 - 羅馬 = 法國 - 巴黎

另一個例子是:

國王 - 皇后 = 男人 - 女人

我們通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)來預(yù)測每個詞語附近的詞語,得到帶有這些屬性的向量。你可以從谷歌或者是斯坦福直接下載已經(jīng)訓(xùn)練好的向量,或是用Gensim軟件庫自己訓(xùn)練。令人驚訝的是這種方法竟然有效,而且詞向量有如此直觀的相似性和聯(lián)系,但事實上確實是有效。

由詞向量構(gòu)成語義

我們已經(jīng)有了原來表示單個詞語的向量,該如何用這些詞表示語義,甚至形成完整的句子呢?我們使用一種稱為遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)的技術(shù),如下圖所示。用RNN把句子“The woman ate tacos.”編碼為向量,記作h4。單詞“the”的詞向量記作h0,然后RNN把h0與表示“woman”的詞向量結(jié)合,生成新的向量h1。然后向量h1繼續(xù)與下一個單詞“ate”的詞向量結(jié)合,生成新的向量h2,以此類推,直到向量h4。向量h4則表示了完整的句子。

運(yùn)用深度學(xué)習(xí)教機(jī)器人理解自然語言

一旦信息被編碼為一個向量,我們就能將其解碼為另一種形式,如下圖所示。比如,RNN隨后可以將向量h4表示的句子翻譯(解碼)成西班牙語。它先根據(jù)已有向量h4生成一個最有可能的單詞。向量h4與新生成的單詞“La”一起又產(chǎn)生了向量h5。在向量h5的基礎(chǔ)上,RNN推出下一個最有可能出現(xiàn)的單詞,“mujer”。重復(fù)進(jìn)行這個過程直到產(chǎn)生句號,網(wǎng)絡(luò)結(jié)構(gòu)也到此為止。

運(yùn)用深度學(xué)習(xí)教機(jī)器人理解自然語言

使用這種編碼器—解碼器模型來做語言轉(zhuǎn)換,需要用一個包含大量源語言與目標(biāo)語言的語料庫,基于這個語料庫訓(xùn)練RNN網(wǎng)絡(luò)。這些RNN通常含有非常復(fù)雜的內(nèi)部節(jié)點,整個模型往往有幾百萬個參數(shù)需要學(xué)習(xí)。

我們可以將解碼的結(jié)果以任何形式輸出,例如解析樹(parse tree),或是圖像的描述,假設(shè)有足夠多包含描述的圖像素材。當(dāng)給圖片添加描述時,你可以用圖片訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)來識別圖像中的物體。然后,把神經(jīng)網(wǎng)絡(luò)輸出層的權(quán)重值作為這幅圖像的向量表示,再將這個向量用解碼器解析出圖像的描述。

從合成語義到關(guān)注、記憶和問答

剛才的編碼器—解碼器方法似乎像是小把戲,我們接著就慢慢的來看看其在實際場景的應(yīng)用。我們可以把解碼的過程想象成回答問題,“這句話該怎么翻譯?”或者,已經(jīng)有了待翻譯的句子,并且一部分內(nèi)容已經(jīng)翻譯了,那么“接下去該怎么寫?”

為了回答這些問題,算法首先需要記住一些狀態(tài)。在之前提到的例子中,系統(tǒng)只記住當(dāng)前向量狀態(tài)h以及最后寫下的單詞。若是我們想讓它能運(yùn)用之前全部所見所學(xué)該怎么辦?在機(jī)器翻譯的例子里,這就意味著在選擇下一個單詞時,要能夠回溯之前的狀態(tài)向量h0、h1、h2和h3。創(chuàng)造了能滿足這種需求的網(wǎng)絡(luò)結(jié)構(gòu)。神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)如何在每個決策點確定之前哪個記憶狀態(tài)是最相關(guān)的。我們可以認(rèn)為這是一個關(guān)注記憶的焦點。

它的意義在于,由于我們可以將概念和語句編碼為向量,并且我們可以使用大量的向量作為記憶元素,通過搜索能找到問題的最佳答案,那么深度學(xué)習(xí)技術(shù)就能用文字來回答問題了。舉一個最簡單的例子,用表示問題的向量與表示記憶的向量做內(nèi)積運(yùn)算,把最吻合的結(jié)果作為問題的最佳回答。另一種方法是把問題和事實用多層神經(jīng)網(wǎng)絡(luò)進(jìn)行編碼,并把最后一層輸出傳給一個函數(shù),函數(shù)的輸出即為答案。這些方法都是基于模擬問答的數(shù)據(jù)來訓(xùn)練,然后用下文Weston所示的方法回答問題。

運(yùn)用深度學(xué)習(xí)教機(jī)器人理解自然語言

下一個前沿方向是準(zhǔn)確理解語義

剛剛討論的方法是關(guān)于如何以讀故事的方式回答問題,但是故事的一些重要情節(jié)一目了然,我們不必都寫下來。設(shè)想桌上放著一本書。計算機(jī)如何才能知道你挪動桌子的同時也挪動了書本?同樣的,計算機(jī)怎么知道屋外只是下雨了呢?就如Marvin Minsky所問,計算機(jī)如何知道你能用一根繩索拉箱子而不是推箱子呢?因為這些事實我們不會都寫下來,故事將只限于能被我們算法所表示的知識。為了獲取這部分知識,我們的機(jī)器人(robot)將通過實景體驗或者模擬體驗來學(xué)習(xí)。

機(jī)器人必須經(jīng)歷這種實景體驗,并用深度神經(jīng)網(wǎng)絡(luò)編碼,基于此可以構(gòu)建通用語義。如果機(jī)器人總是看到箱子從桌上掉下來,它則會根據(jù)這一事件創(chuàng)建一條神經(jīng)回路。當(dāng)媽媽說“天啊,箱子跌落下來了”,這條回路將會和單詞“跌落”結(jié)合。然后,作為一個成熟的機(jī)器人,當(dāng)它再遇到句子“股票跌落了10個點”,根據(jù)這條神經(jīng)回路,它就該理解其中的意思了。

機(jī)器人還需要把一般的實景體驗與抽象推理相結(jié)合。試著來理解這句話的含義“他去了垃圾場。”(He went to the junkyard.)WordNet只能提供一組與“went”相關(guān)的單詞。ConceptNet能把“went”和“go”聯(lián)系在一起,但是永遠(yuǎn)也不明白“go”的真正意思是什么。FrameNet有一個self-motion的框架,已經(jīng)非常接近了,但還是不夠。深度學(xué)習(xí)能把句子編碼成向量,然后回答各種問題,諸如用“垃圾場”回答“他在哪兒”的問題。然而,沒有一種方法能夠傳遞出一個人在不同位置這層意思,也就是說他既不在這里,也不在其它地方。我們需要有一個連接自然語言和語言邏輯的接口,或者是用神經(jīng)網(wǎng)絡(luò)對抽象的邏輯進(jìn)行編碼。

實踐:深度學(xué)習(xí)的入門資源

入門的方法有很多種。斯坦福有一門用深度學(xué)習(xí)做NLP的公開課。也可以去看Hinton教授在Coursera Course的課程。另外,Bengio教授和他的朋友們也編寫了一本簡明易懂的在線教材來講解深度學(xué)習(xí)。在開始編程之前,如果你使用Python語言,可以用Theano,如果你擅長Java語言,就用Deeplearning4j。

總結(jié)

計算機(jī)性能的提升和我們生活的日益數(shù)字化,推動了深度學(xué)習(xí)的革命。深度學(xué)習(xí)模型的成功是因為它們足夠大,往往帶有上百萬的參數(shù)。訓(xùn)練這些模型需要足夠多的訓(xùn)練數(shù)據(jù)和大量的計算。若要實現(xiàn)真正的智能,我們還需要走得更深。深度學(xué)習(xí)算法必須從實景體驗中習(xí)得,并概念化這種經(jīng)驗,然后將這些經(jīng)驗與抽象推理相結(jié)合

 
 
聲明:凡資訊來源注明為其他媒體來源的信息,均為轉(zhuǎn)載自其他媒體,并不代表本網(wǎng)站贊同其觀點,也不代表本網(wǎng)站對其真實性負(fù)責(zé)。您若對該文章內(nèi)容有任何疑問或質(zhì)疑,請立即與中國機(jī)器人網(wǎng)(www.baoxianwx.cn)聯(lián)系,本網(wǎng)站將迅速給您回應(yīng)并做處理。
電話:021-39553798-8007
更多>相關(guān)專題
0相關(guān)評論

推薦圖文
推薦專題
點擊排行
?