時間:2017-04-25 來源:互聯網 瀏覽量:
圖片來自“視覺中國”
【編者按】上周,微軟AI講堂來到了哈爾濱工業大學。微軟亞洲研究院首席研究員林欽佑博士分享了知識計算方向的滿滿幹貨。本文是林欽佑博士的演講整理,一起來了解什麼是知識計算,以及知識計算將如何幫助實現智能未來。
本文轉載自微軟研究院AI頭條,作者林欽佑;由億歐編輯,供行業內人士參考。
演講全文如下(文字內容略有精簡)
很高興回到哈工大,今天跟各位分享一下微軟研究院在人工智能所做的方向,以及未來大家可以準備朝哪個方向發展。
人工智能不是過去兩三年才發生的事情,事實上,在1960年就有很多人工智能的發展。首先我想用很短的一個時間軸跟大家一起來看看最近這幾年的發展。
2010年,微軟XBox推出了Kinect,那個時候大家覺得計算機真的很了不起,能看到人的動作,並把動作融入到遊戲裏麵。這是第一次工業界的產品能夠實時追蹤每個人的關節動作,是一個很大的突破,就好像機器有眼睛,可以看到人是怎麼做動作的一樣。
2011年,IBMWatson在美國的Jeoparody!秀裏做猜謎遊戲時擊敗了Ken Jennings和Brad Rutter。2012年,微軟研究院的創始人Rick Rashid在天津舉辦的“二十一世紀的計算”學術大會上展示了實時語音翻譯技術,造成了很大的震撼。
到了2014年,微軟把這個實時語音翻譯技術運用到了Skype Translator裏。不管是iOS係統、安卓係統還是Window係統,你都可以下載安裝Skype,並使用Skype Translator實時語音翻譯技術。
接下來2016年不用多講了,AlphaGo在圍棋比賽中戰勝了李世石。今年5月AlphaGo還會再戰一場。而在2017年1月,CMU的一個團隊寫了一個AI程序,贏了德州撲克。所以可以想象接下來幾年,我們可能要經常遭受類似的打擊——機器贏過人的某項技能。因此,我想利用這個機會跟各位解釋一下,今天AI到底做到了什麼程度,還有哪些方麵可以做研究的。
人工智能在1960年左右就已經開始了,那為什麼在過去這幾年人工智能這個洪流又開始爆發了呢?主要有幾項:
第一,有很大的數據。大家現在用手機傳短信、在微信上和朋友聊天、搜索內容等等,這裏麵所有的數據都會被記錄下來,從而使得我們有很大的數據。當有了很多你跟同學、朋友交互的過程,或者即使不看你和朋友間的聊天記錄,也可以在網上、微博上看到你發表的內容。而這些數據就可以讓機器看到人在對話的時候,可以講什麼,會講什麼。
所以,因為有大數據的關係,現在的機器可以把有些很難的事情變得簡單。因為機器知道你以前在什麼場合下講過什麼話。
第二,雲計算。現在大家都希望手機有超大的內存,比如64G、128G的。以前我在學校剛剛念書的時候,一個機器隻要有2MB,我就已經很高興了,但是現在手機和它的計算能力實際上比20年前電腦的計算能力還要強。所以,有了大數據之後,又有了很多的計算能力,很大的儲存能力。
二三十年前,架一個網站,我們還需要去想要買什麼樣的PC機,要裝什麼操作係統,可能還要租一條線,再設計個網頁,然後上線。而現在不用了,你可以用微軟的Azure雲或者用亞馬遜的雲係統,隻要一上線你就可以有自己的網站。因為是雲計算,所以每個人都可以通過各種不同的終端設備看到自己的數據。
第三,算法。有了這些數據和存儲能力的時候,我們就要有一些算法。過去幾年,在計算機領域,大家會經常聽到深度學習。深度學習的前身其實在1960年就已經有了,但是當時它叫做神經網絡。現在因為神經網絡做深了,計算能力提高了,數據增多了,才讓深度學習有了它可以發展、發揮、發力的機會。
所以,這幾個關鍵技術結合在一起,促使了現在AI的爆發。
在微軟,我們的AI技術有四個方向,我們看看,微軟在這四方麵都做了哪些事情。
第一,讓機器能看得到。視覺方麵,我們在2015年做了一個152層的深層神經網絡,它能夠在像素級別上知道一張圖上有一隻蜘蛛。甚至在有些醫學上的應用,比如判斷切片影像中是否有癌細胞,最新的消息是機器判斷的正確率已經比醫生更高了。
第二,讓機器能夠聽。學術界在評價技術的進步與否時都有一個標準的測試集。看看下圖的這些線,每個點都是一個語音識別測試數據的結果,線越往下就表示做得越好,錯誤率低。可以看到最右邊的這條線,微軟去年做的錯誤率在5.9%左右,5.9%已經達到了人類水平。
第三個是語言,機器還要能讀。在語言方麵微軟亞洲研究院也一直都有深入的研究,讓機器可以更好的閱讀、理解文字內容,並且我們在這方麵也取得了十分優異的成績。未來會與大家有更多的分享。
最後,機器要能夠對答如流,要有知識。知識方麵有一個測試叫做Knowledge Base Acceleration(KBA)。為什麼我們說做一個像人一樣的人工智能比較難?先舉個例子,今天我講了一些有關AI的內容,有些東西你可能知道,有些東西你可能不知道,但是你今天聽到的一些之前不知道的事情,明天你就應該知道了。也就是說,人是有學習能力的。
機器有沒有學習能力呢?機器可以識別人臉,但是人要先告訴機器說這是我,學習了之後它才能找到圖片裏哪個是我。現在還沒有一種人臉識別的算法可以識別它沒看過的人。所以在做KBA的時候就是假如給出一個百科,讓機器每天讀新聞,當它知道這個新聞是有關哈工大的之後,就把報道哈工大的這個新的新聞中的新知識抽取出來放在哈工大的網頁上,這個測試就是類似這樣的一個實驗。
我們在2013年的時候就做到了最好的效果。我們的係統可以找到vital(最重要而且相關)的信息,就是說機器找到的新聞確實是非常相關的而且有必要記錄的。比如,微軟買了某個公司,這個跟微軟是非常相關,但是,某個人買了微軟的某個產品,也是跟微軟相關的,但是普通人買其實沒那麼重要,但如果是哈工大買微軟的某個產品那就很重要了,這也是vital和useful的差別。
所以,大家可以看到微軟在剛才講的,會看、會聽、會讀、有知識這四個前沿領域都做了很多的研究、開發。
接下來跟大家做一個數學題——
“There are 20 horse sand chicken sat Old Macdonald's farm.Together thereare 58legs.Howmany horsesand how many chickens?”。這個問題很簡單,大家小學的時候就會做了。但要讓機器來解這個問題就沒有那麼簡單了。為什麼呢?
因為計算機不知道馬有幾隻腳,雞有幾隻腳。即使知道,它還要知道Macdonald'sfarm和解決問題一點關係都沒有。另外,解決這個問題還要有數學知識,考的就是加減乘除。
我們可以看出,計算機要有語言理解能力才可能和人溝通。計算機要怎麼解題呢?首先必須要了解語言,不管是英文還是中文。再就是要有知識,即使能理解所有的東西,它還要知道腳和雞的關係,雞和馬的關係,以及農場這個信息跟解題一點關係都沒有等等。第三,是知道這些東西之後,還要能計算。如果所有內容都知道了,但是不知道怎麼算,那也不行。對於一個物理題,要有物理的計算能力,對於統計題,要有統計的計算能力。
所以,我們現在還是有很多問題沒有解決的。比如,機器怎麼能夠知道所有的知識呢?今天要解這個題,我們把雞和馬幾隻腳的知識放進去。明天改成蛇,就要把蛇沒有腳加進去。如果再改成螃蟹,就要把螃蟹有八隻腳加進去等等。這樣的工作量就會十分巨大,每講一個東西都要加進去新的信息,這是不可能的。所以這時候就有一個問題了,如何很快速地累積知識?
總結一下我們剛剛講的這個問題。
首先,要有自然語言的能力,要有知識,機器要學習。要考慮如何讓機器可以很快地有一個學習的算法來了解語言中的信息。
其次,人和機器要結合在一起。微軟在講到AI時都會強調一個概念——ArtificialIntelligence(人工智能)+HumanIntelligence(人類智能)=SuperIntelligence(超級智能)。在此我要強調的一點就是,人在這樣一個成功的環路裏是不可或缺的。
第三,機器要有知識。機器解這個數學題的時候需要哪些能力呢?上圖的左邊是一篇文章,它講到了個人助理。機器要了解這件事,首先要知道什麼是個人助理。然後,機器需要有一個表達的方法,這就是知識了。在知識方麵,比如文章裏講到微軟,那麼機器要知道微軟是什麼,微軟跟它的產品的關係是什麼。
所以,機器跟人之間的溝通或者是機器要去了解這個世界的時候,它有一個語義的鴻溝。我們還有個技術叫實體鏈接,比如文章裏有“微軟的Cortana”,這個短語裏包括了兩個實體,一個是微軟,一個是Cortana。以前在做自然語言處理的時候,我們說這是一個名詞詞組,不需要了解裏麵講的是微軟還是什麼,它就是個專有名詞,Cortana也是一個專有名詞。但人理解的時候,我們不是隻知道它是什麼詞性的,我們知道微軟是代表一個公司,Cortana是微軟公司的一個產品。
所以說真正要進入到AI時代,機器必須要有語義的理解,而且要知道為什麼用這個東西來代表某個事情。我們微軟知識計算組的任務就是,我們怎麼能夠為這個世界服務,通過什麼手段讓機器可以自動理解知識,通過對數據的挖掘來增進我們的知識。我們希望機器以後能幫人們幹更多的活。
自然語言中有一些問題對計算機來說很麻煩,比如,當我通過語音讓智能手機給潘副院長打電話,但通訊錄裏隻寫了潘天佑博士,那麼機器就無法執行這個操作。再比如重名問題,再比如當說到我來自中國的時候,機器要知道這個中國指的就是中華人民共和國等等類似的問題。事實上機器要理解語言,要有知識,這個方麵還是非常寬闊的。
第一,理解知識。我們必須要知道怎麼建這個包含巨大知識的數據庫,機器怎麼才能知道這麼多不同的東西。今天有iPhone8,明天就有iPhone9了,機器的知識要一直不斷增加,這對人類來說沒有問題。當別人說iPhone8要出來了,你就會想什麼時候出更新一代的iPhone,你會自己推理。
第二,機器必須要有一定的推理能力。這個推理的能力也包括一部分知識,不是隻知道事實。比如,地上有水,那就一定下過雨嗎?不一定。但是,天下雨地上一定有水。所以要考慮怎麼把這類知識放到機器裏麵去理解這個內容。
我們從哪些地方取得這些知識呢?就是從非結構性的數據中,比如新聞、文件,還有從結構性的數據中,如個人數據庫、公司、學校裏的一些內容,像每天選課的課表都是結構化的數據,這些都可以綜合起來使用。除此之外當然還可以讓人直接給機器添加知識。
第三,算法。有了知識和理解能力後,我們要做一些算法,把這些數據結合、清理、連接起來,提供服務給上層的應用。
經過來源之後,我們會做挖掘的工作,做處理。然後把獲得的內容存在知識庫裏,然後知識庫就能應用到不同的場景中了。
我們還有什麼挑戰呢?
第一個,機器什麼時候可以真正的理解?所謂的理解不是說隻把它變成一個語法樹,而是真正能夠知道我們講的是什麼東西。
第二個,如何解決問題?理解語言沒問題,但你要怎麼解決問題呢,解決問題的知識去哪裏獲得?我們不能靠百科網頁,因為這些百科網頁不能解決所有的事情。所以,我們要怎麼獲取這樣的知識?
第三個,怎麼讓機器有永久學習的能力?人每天看一些書本,聽一些演講,看一些視頻,可以自己教育自己,機器可不可以做到這些?
最後總結一下,我們要機器能看、能聽、能說、能寫、能學習、有知識,就需要自然語言的處理能力。並且,我們不隻是可以做中文、英文,我們要做各種不同的語言。在這個領域,未來的工作機會有太多太多。希望大家在生活和學習中多思考,用自己的創新想法解決人工智能的核心問題。
0
5