在鈦媒體Pro專業(yè)用戶和付費(fèi)用戶專享的“鈦坦白”在線課堂第32期,我們請(qǐng)來(lái)了三位鈦客,分享對(duì)機(jī)器學(xué)習(xí)的思考 。本期鈦客之一、微軟亞洲研究院主管研究員秦濤博士,在國(guó)際會(huì)議和期刊上發(fā)表學(xué)術(shù)論文100余篇,曾/現(xiàn)任機(jī)器學(xué)習(xí)及人工智能方向多個(gè)國(guó)際大會(huì)領(lǐng)域主席或程序委員會(huì)成員,曾任多個(gè)國(guó)際學(xué)術(shù)研討會(huì)聯(lián)合主席。他是中國(guó)科學(xué)技術(shù)大學(xué)博士生導(dǎo)師,IEEE、ACM會(huì)員。他和他的團(tuán)隊(duì)的研究重點(diǎn)是深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)的算法設(shè)計(jì)、理論分析及在實(shí)際問題中的應(yīng)用。
本文節(jié)選自秦濤在鈦坦白的分享。如果您還不是鈦媒體Pro用戶,希望查看鈦坦白所有干貨,進(jìn)入鈦坦白九個(gè)專業(yè)群交流,并查看更豐富的專業(yè)數(shù)據(jù)和信息,可點(diǎn)擊:http://www.chcmb.cn/pro 注冊(cè)。
以下根據(jù)秦濤在鈦坦白的分享實(shí)錄整理:
大家好,我是微軟亞洲研究院的秦濤,非常感謝鈦媒體提供這樣一個(gè)平臺(tái)和機(jī)會(huì),能夠和大家交流、分享。
先介紹一下我所在的機(jī)器學(xué)習(xí)組。微軟亞洲研究院機(jī)器學(xué)習(xí)組研究的重點(diǎn)是機(jī)器學(xué)習(xí),包含機(jī)器學(xué)習(xí)的各個(gè)主要方向,從底層的深度學(xué)習(xí)分布式機(jī)器學(xué)習(xí)平臺(tái)(AI的Infrastructure)到中層的深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)、符號(hào)學(xué)習(xí)算法以及再上面的機(jī)器學(xué)習(xí)理論。
今天晚上我將分享我們組對(duì)深度學(xué)習(xí)這個(gè)領(lǐng)域的一些思考,以及我們最近的一些研究工作。歡迎大家一起交流討論。
人工智能近年的進(jìn)展
從1956年達(dá)特茅斯會(huì)議上人工智能的誕生開始,到如今人工智能已經(jīng)發(fā)展了61年,這期間人工智能歷經(jīng)風(fēng)雨,經(jīng)歷了數(shù)次高潮也有數(shù)次低谷,每次高潮都是因?yàn)楹诵募夹g(shù)的提出引起了人們極大的興趣,吸引了大量的資金的投入。但同時(shí)由于大家的期望值遠(yuǎn)遠(yuǎn)超過了技術(shù)所能夠達(dá)到的高度,因此當(dāng)人們發(fā)現(xiàn)巨大的資金和人才的投入不能達(dá)到預(yù)期成果的時(shí)候,人工智能的冬天也隨之而來(lái)。幸運(yùn)的是,現(xiàn)在我們正處于人工智能的第三次浪潮,并且目前看來(lái),距離下一個(gè)冬天還是挺遠(yuǎn)的。從媒體的報(bào)道,大家可能都能了解到,人工智能在各個(gè)方向都取得了非常大的進(jìn)展,不管是研究上、實(shí)踐上,還是應(yīng)用上。下面我們簡(jiǎn)單回顧一下人工智能近年來(lái)在各個(gè)方向取得的進(jìn)展。
早在2012年,微軟就在“21世紀(jì)的計(jì)算”大會(huì)上展示了一個(gè)同聲傳譯的系統(tǒng),這個(gè)系統(tǒng)其實(shí)相當(dāng)復(fù)雜:當(dāng)微軟研究院創(chuàng)始人Rick Rashid用英文演講的時(shí)候,這個(gè)系統(tǒng)首先需要將英文的語(yǔ)音識(shí)別成英文的文本,然后通過一個(gè)翻譯系統(tǒng)把英文翻譯成中文,然后再把中文文本合成成為中文的語(yǔ)音。整個(gè)復(fù)雜的過程都是通過深度學(xué)習(xí)的技術(shù)來(lái)支撐的。
在2015年底,發(fā)生了一件對(duì)計(jì)算機(jī)視覺領(lǐng)域而言非常重要的事情,就是微軟亞洲研究院的研究員提出了一個(gè)新的基于CNN的深度模型叫做殘差網(wǎng)絡(luò),這個(gè)殘差網(wǎng)絡(luò)深度高達(dá)152層,取得了當(dāng)時(shí)圖象識(shí)別比賽上面最好的成績(jī)。到現(xiàn)在為止,深度殘差網(wǎng)絡(luò)在計(jì)算機(jī)視覺的研究中被廣泛使用,并且被集成到微軟還有其他大公司的產(chǎn)品中。
再到后來(lái),2016年初,可能大家都知道,AlphaGo這個(gè)系統(tǒng)打敗了圍棋世界冠軍李世石,這非常出乎人們的預(yù)料,特別是AI專家的預(yù)料,因?yàn)榇蠹移毡檎J(rèn)為,機(jī)器要在圍棋上戰(zhàn)勝人類可能還需要20年。在2016年下半年,微軟宣布了另外一項(xiàng)AI上的進(jìn)展,就是在日常對(duì)話的語(yǔ)音識(shí)別中,微軟的技術(shù)已經(jīng)達(dá)到了人類的水平,這也是非常了不起的,因?yàn)槿绻蠹谊P(guān)注一下我們?nèi)粘5闹v話,就會(huì)發(fā)現(xiàn),其中有很多停頓,并且?guī)б恍┱Z(yǔ)氣詞,與朗誦或者新聞播音相差很大,這種日常對(duì)話識(shí)別要達(dá)到人類的水平是很不容易的。
從以上的簡(jiǎn)單回顧可以看出,人工智能的第三波浪潮和深度學(xué)習(xí)是分不開的。深度學(xué)習(xí)里最經(jīng)典的模型是全連接的神經(jīng)網(wǎng)絡(luò),就是每相臨的兩層之間節(jié)點(diǎn)之間是通過邊全連接;再就是卷積神經(jīng)網(wǎng)絡(luò),這個(gè)在計(jì)算機(jī)視覺里面用得非常多;再就是循環(huán)神經(jīng)網(wǎng)絡(luò)RNN,這個(gè)在對(duì)系列進(jìn)行建模,例如自然語(yǔ)言處理或者語(yǔ)音信號(hào)里面用得很多,這些都是非常成功的深度神經(jīng)網(wǎng)絡(luò)的模型。還有一個(gè)非常重要的技術(shù)就是深度強(qiáng)化學(xué)習(xí)技術(shù),這是深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的結(jié)合,也是AlphaGo系統(tǒng)所采用的技術(shù)。
深度學(xué)習(xí)的成功主要?dú)w功于三大因素——大數(shù)據(jù)、大模型、大計(jì)算?,F(xiàn)在可以利用的數(shù)據(jù)特別是人工標(biāo)注的數(shù)據(jù)非常多,使得我們能夠從數(shù)據(jù)中學(xué)到以前沒法學(xué)習(xí)的東西。另外技術(shù)上的發(fā)展使得訓(xùn)練大模型成為了可能,例如上千層的深度神經(jīng)網(wǎng)絡(luò),這個(gè)在四年以前都覺得不能想象的事情,現(xiàn)在都已經(jīng)發(fā)展成為現(xiàn)實(shí),并且在產(chǎn)品中都有了很廣泛的使用。再就是大計(jì)算,從CPU到GPU,可獲取的計(jì)算資源越來(lái)越豐富。
大數(shù)據(jù)、大模型、大計(jì)算是深度學(xué)習(xí)的三大支柱,因此這三個(gè)方向都是當(dāng)前研究的熱點(diǎn),例如如何從更多更大的數(shù)據(jù)里面進(jìn)行學(xué)習(xí),如何訓(xùn)練更大更深的模型。非常深的模型,當(dāng)前更成功的例子是在計(jì)算機(jī)視覺里面,但如何把這種更深的模型引入到自然語(yǔ)言處理里面,還需要研究,例如當(dāng)前幾個(gè)大公司的神經(jīng)機(jī)器翻譯模型,都是利用較深的RNN,但是還是遠(yuǎn)遠(yuǎn)達(dá)不到殘差網(wǎng)絡(luò)的深度。從大計(jì)算這個(gè)方面來(lái)講,整個(gè)演變過程是從CPU到GPU到FPGA,再發(fā)展到現(xiàn)在有些公司定制自己專有芯片,國(guó)內(nèi)的有一些創(chuàng)業(yè)公司,也都在做一些AI芯片,專門為AI來(lái)設(shè)計(jì)一些硬件。大計(jì)算另外一個(gè)角度就是深度學(xué)習(xí)的平臺(tái)和系統(tǒng),這個(gè)可以說是各大AI或者是互聯(lián)網(wǎng)公司的著重發(fā)力的地方,例如微軟的CNTK、DMTK,再比如TensorFlow、Torch,以及學(xué)術(shù)界的開源平臺(tái)包括Theano、Caffe、MxNet等等。可以預(yù)計(jì),在短期內(nèi),各大公司還會(huì)在這個(gè)領(lǐng)域做非常激烈的競(jìng)爭(zhēng),希望能夠吸引第三方公司使用他們的平臺(tái)和系統(tǒng)。
俗話說成也蕭何敗也蕭何,大數(shù)據(jù)、大模型、大計(jì)算是深度學(xué)習(xí)成功的三大支柱因素,但他們同時(shí)也為深度學(xué)習(xí)的進(jìn)一步發(fā)展和普及帶來(lái)了一些制約因素。
挑戰(zhàn)1:標(biāo)注數(shù)據(jù)代價(jià)昂貴
前沿1:從無(wú)標(biāo)注的數(shù)據(jù)里學(xué)習(xí)
大家都知道,深度學(xué)習(xí)訓(xùn)練一個(gè)模型需要很多的人工標(biāo)注的數(shù)據(jù)。例如在圖象識(shí)別里面,經(jīng)常我們可能需要上百萬(wàn)的人工標(biāo)注的數(shù)據(jù),在語(yǔ)音識(shí)別里面,我們可能需要成千上萬(wàn)小時(shí)的人工標(biāo)注的數(shù)據(jù),機(jī)器翻譯更是需要數(shù)千萬(wàn)的雙語(yǔ)句對(duì)做訓(xùn)練,在圍棋里面DeepMind當(dāng)初訓(xùn)練這個(gè)模型也用了數(shù)千萬(wàn)圍棋高手走子的記錄,這些都是大數(shù)據(jù)的體現(xiàn)。
但是,很多時(shí)候找專家來(lái)標(biāo)注數(shù)據(jù)是非常昂貴的,并且對(duì)一些應(yīng)用而言,很難找到大規(guī)模的標(biāo)注的數(shù)據(jù),例如一些疑難雜癥,或者是一些比較稀有的應(yīng)用場(chǎng)景。這里我們做一個(gè)粗略的分析,看看標(biāo)注數(shù)據(jù)的代價(jià)有多高。比如說對(duì)機(jī)器翻譯而言,現(xiàn)在如果我們請(qǐng)人工來(lái)翻譯,一個(gè)單詞的費(fèi)用差不多是5—10美分之間,一個(gè)句子平均長(zhǎng)度差不多是30個(gè)單詞,如果我們需要標(biāo)注一千萬(wàn)個(gè)雙語(yǔ)句對(duì),也就是我們需要找專家翻譯一千萬(wàn)句話,這個(gè)標(biāo)注的費(fèi)用差不多是2200萬(wàn)美元。
大家可以看到數(shù)據(jù)標(biāo)注的費(fèi)用是非常非常高的,讓一個(gè)創(chuàng)業(yè)公司或者一些剛剛涉足人工智能的公司拿這么大一筆資金來(lái)標(biāo)注數(shù)據(jù)是很難或者是不太可行的。因此當(dāng)前深度學(xué)習(xí)的一個(gè)前沿就是如何從無(wú)標(biāo)注的數(shù)據(jù)里面進(jìn)行學(xué)習(xí)?,F(xiàn)在已經(jīng)有相關(guān)的研究工作,包括最近比較火的生成式對(duì)抗網(wǎng)絡(luò),以及我們自己提出的對(duì)偶學(xué)習(xí)。
生成式對(duì)抗網(wǎng)絡(luò)的主要目的是學(xué)到一個(gè)生成模型,這樣它可以生成很多圖像,這種圖像看起來(lái)就像真實(shí)的自然圖像一樣。它解決這個(gè)問題的思路跟以前的方法不太一樣,它是同時(shí)學(xué)習(xí)兩個(gè)神經(jīng)網(wǎng)絡(luò):一個(gè)神經(jīng)網(wǎng)絡(luò)生成圖像,另外一個(gè)神經(jīng)網(wǎng)絡(luò)給圖像進(jìn)行分類,區(qū)分真實(shí)的圖像和生成的圖像。在生成式對(duì)抗網(wǎng)絡(luò)里面,第一個(gè)神經(jīng)網(wǎng)絡(luò)也就是生成式神經(jīng)網(wǎng)絡(luò),它的目的是希望生成的圖像非常像自然界的真實(shí)圖像,這樣的話,那后面的第二個(gè)網(wǎng)絡(luò),也就是那個(gè)分類器沒辦法區(qū)分真實(shí)世界的圖像和生成的圖像;而第二個(gè)神經(jīng)網(wǎng)絡(luò),也就是分類器,它的目的是希望能夠正確的把生成的圖像也就是假的圖像和真實(shí)的自然界圖像能夠區(qū)分開。大家可以看到,這兩個(gè)神經(jīng)網(wǎng)絡(luò)的目的其實(shí)是不一樣的,他們一起進(jìn)行訓(xùn)練,就可以得到一個(gè)很好的生成式神經(jīng)網(wǎng)絡(luò)。生成式對(duì)抗網(wǎng)絡(luò)最初提出的時(shí)候,主要是對(duì)于圖像的生成,現(xiàn)在很多人把他應(yīng)用到各個(gè)不同的問題上,包括自然語(yǔ)言理解,比如說最近我們有一個(gè)工作,就是把這種思想應(yīng)用到機(jī)器翻譯里面,能夠很大幅度的提高機(jī)器翻譯的準(zhǔn)確度。
針對(duì)如何從無(wú)標(biāo)注的數(shù)據(jù)進(jìn)行學(xué)習(xí),我們組里面提出了一個(gè)新思路,叫做對(duì)偶學(xué)習(xí)。對(duì)偶學(xué)習(xí)的思路和前面生成式對(duì)抗學(xué)習(xí)會(huì)非常不一樣。對(duì)偶學(xué)習(xí)的提出是受到一個(gè)現(xiàn)象的啟發(fā):我們發(fā)現(xiàn)很多人工智能的任務(wù)在結(jié)構(gòu)上有對(duì)偶屬性。比如說在機(jī)器翻譯里面,我們把中文翻譯成英文,這是一個(gè)任務(wù),但是我們同樣也需要把英文翻譯成中文,這是一個(gè)對(duì)偶的任務(wù)。這種原任務(wù)和對(duì)偶任務(wù)之間,他們的輸入和輸出正好是反著來(lái)的。在語(yǔ)音處理里面,語(yǔ)音識(shí)別是把語(yǔ)音轉(zhuǎn)化成文字,語(yǔ)音合成是把文字轉(zhuǎn)化成語(yǔ)音,也是互為對(duì)偶的兩個(gè)任務(wù)。在圖像理解里面,看圖說話,也就是給一張圖生成一句描述性的語(yǔ)句,它的對(duì)偶任務(wù)是給一句話生成一張圖,這兩個(gè)任務(wù)一個(gè)是從圖像到文本,另外一個(gè)是從文本到圖像。在對(duì)話系統(tǒng)里面,回答問題和問題生成也是互為對(duì)偶的兩個(gè)問題,前者是給定問題生成答案,后者是給定答案生成問題。在搜索引擎里面,給定檢索詞返回相關(guān)文檔和給定文檔或者廣告返回關(guān)鍵詞也是互為對(duì)偶的問題:搜索引擎最主要的任務(wù)是針對(duì)用戶提交的檢索詞匹配一些文檔,返回最相關(guān)的文檔;當(dāng)廣告商提交一個(gè)廣告之后,廣告平臺(tái)需要給他推薦一些關(guān)健詞使得他的廣告在用戶搜索這些詞能夠展現(xiàn)出來(lái)被用戶點(diǎn)擊。
對(duì)偶學(xué)習(xí)試圖把這種結(jié)構(gòu)的對(duì)偶屬性應(yīng)用在機(jī)器學(xué)習(xí)里。其基本思想比較簡(jiǎn)單,我們以機(jī)器翻譯為例子來(lái)說明。我們想把一個(gè)中文句子翻譯成英文,我們可以先用一個(gè)中文到英文的翻譯模型,把這個(gè)句子翻譯成英文的句子,因?yàn)槲覀儧]有英文的標(biāo)注,所以不知道這個(gè)英文的翻譯是好還是壞以及有多好多壞。我們?cè)倮脧挠⑽牡街形牡姆g模型,把這個(gè)英文的句子翻譯成中文的句子,這樣一來(lái),我們就得到了一個(gè)新的中文句子。整個(gè)過程包含了正向翻譯和反向翻譯互為對(duì)偶的兩個(gè)步驟。然后我們比較原始中文的句子和后來(lái)得到的中文句子,如果兩個(gè)翻譯模型都很好的話,這兩個(gè)中文的句子應(yīng)該比較相似,如果兩個(gè)模型不好或者有一個(gè)模型不好的話,得到的兩個(gè)中文句子就不相似。因此我們可以通過這種對(duì)偶過程從無(wú)標(biāo)注的數(shù)據(jù)獲得反饋信息,知道我們的模型工作的好還是不好,進(jìn)而根據(jù)這些反饋信息來(lái)訓(xùn)練更新正向反向模型,從而達(dá)到從無(wú)標(biāo)注數(shù)據(jù)學(xué)習(xí)的目的。
我們?cè)跈C(jī)器翻譯里面做了一些實(shí)驗(yàn),發(fā)現(xiàn)通過對(duì)偶學(xué)習(xí)的過程,我們只需要用10%標(biāo)注的數(shù)據(jù)(大概100萬(wàn)英法雙語(yǔ)句對(duì)),再加上很多沒有標(biāo)注的數(shù)據(jù),達(dá)到用100%標(biāo)注數(shù)據(jù)(1200萬(wàn)英法雙語(yǔ)句對(duì))訓(xùn)練的模型的準(zhǔn)確度。大家回想一下,我們前面有個(gè)粗略的估計(jì),一千萬(wàn)個(gè)訓(xùn)練語(yǔ)料標(biāo)注的費(fèi)用差不多2200萬(wàn)美元,如果我們能把標(biāo)注的人工費(fèi)用從2200萬(wàn)美元降到200萬(wàn)美元,這會(huì)是一個(gè)非常好的結(jié)果,能夠大大降低公司運(yùn)營(yíng)成本提高運(yùn)營(yíng)效率。
最近我們?cè)趯?duì)偶學(xué)習(xí)的研究上有一些新的進(jìn)展,把對(duì)偶學(xué)習(xí)這種基本思想應(yīng)用到其他的問題里面,像圖像分類、圖像生成,以及對(duì)自然語(yǔ)言的情感分析。我們發(fā)現(xiàn)這種結(jié)構(gòu)的對(duì)偶屬性可以從不同角度幫助機(jī)器學(xué)習(xí),提高學(xué)習(xí)算法的準(zhǔn)確度。
從無(wú)標(biāo)注的數(shù)據(jù)進(jìn)行學(xué)習(xí),我們預(yù)計(jì)在未來(lái)三到五年還是非常重要的一個(gè)問題,并且對(duì)我們實(shí)際的應(yīng)用也會(huì)有很大的幫助。很多問題以前是因?yàn)槭芟抻跊]有標(biāo)注的數(shù)據(jù),沒有辦法用深度學(xué)習(xí)技術(shù),如果我們能夠從無(wú)標(biāo)注的數(shù)據(jù)進(jìn)行學(xué)習(xí),那么很多應(yīng)用很多問題里面都可以應(yīng)用深度學(xué)習(xí)技術(shù)。
挑戰(zhàn)2:大模型不方便在移動(dòng)設(shè)備上使用
前沿2:降低模型大小
現(xiàn)在常見的模型,像圖像分類里面,微軟設(shè)計(jì)的深度殘差網(wǎng)絡(luò),模型大小差不多都在500M以上。自然語(yǔ)言處理的一些模型,例如語(yǔ)言模型(language modeling)隨著詞表的增長(zhǎng)而變大,可以有幾G、幾十G的大小,機(jī)器翻譯的模型也都是500兆以上。當(dāng)然500M的大小大家可能覺得沒有多大,一個(gè)CPU服務(wù)器很容易就把這個(gè)模型給load進(jìn)去使用。但是大家要注意到,很多時(shí)候深度學(xué)習(xí)的模型需要在一些移動(dòng)設(shè)備上使用。比如說手機(jī)輸入法,還有各種對(duì)圖像做變換做處理做藝術(shù)效果的app,如果使用深度學(xué)習(xí)的話效果會(huì)非常好,但是這種模型由于它們的size太大,就不太適合在手機(jī)上應(yīng)用。大家可以設(shè)想一下,如果一個(gè)手機(jī)的app需要加載一個(gè)500M甚至1G以上的模型恐怕不太容易被用戶接受。
因此當(dāng)前深度學(xué)習(xí)面臨的第二個(gè)挑戰(zhàn)就是如何把大模型變成小模型,這樣可以在各種移動(dòng)設(shè)備上使用。因?yàn)?strong>移動(dòng)設(shè)備不僅僅是內(nèi)存或者存儲(chǔ)空間的限制,更多是因?yàn)槟芎牡南拗?,不允許我們用太大的模型。近兩年來(lái),有一些相應(yīng)的工作,今天我主要介紹兩種:第一種是針對(duì)計(jì)算機(jī)視覺里面的CNN模型,也就是卷積神經(jīng)網(wǎng)絡(luò),做模型壓縮;第二種是我們?nèi)ツ曜龅?,針?duì)一些序列模型或者類似自然語(yǔ)言處理的RNN模型如何做一個(gè)更巧妙的算法,使得它模型變小,并且同時(shí)精度沒有損失。
- 通過模型壓縮的技術(shù)縮減模型的大小
對(duì)卷積神經(jīng)網(wǎng)絡(luò)而言,近一兩年有一些工作,他們主要是采用模型壓縮的技術(shù)縮減模型的大小。這些模型壓縮的技術(shù),可以分為幾個(gè)方面:
一個(gè)是叫剪枝,大家知道,神經(jīng)網(wǎng)絡(luò)主要是由一層一層的節(jié)點(diǎn)通過邊連接,每個(gè)邊上有些權(quán)重。剪枝的意思很簡(jiǎn)單,如果我們發(fā)現(xiàn)某些邊上的權(quán)重很小,這樣的邊可能不重要,這些邊就可以去掉。我們?cè)诎汛竽P陀?xùn)練完之后,看看哪些邊的權(quán)重比較小,把這些邊去掉,然后在保留的邊上重新訓(xùn)練模型;
模型壓縮的另外一種做法就是通過權(quán)值共享。假設(shè)相鄰兩層之間是全連接,每層有一千個(gè)節(jié)點(diǎn),那么這兩層之間有一千乘一千也就是一百萬(wàn)個(gè)權(quán)值(參數(shù))。我們可以對(duì)一百萬(wàn)個(gè)權(quán)值做個(gè)聚類,看看哪些權(quán)值很接近,我們可以用每個(gè)類的均值來(lái)代替這些屬于這一類的權(quán)值,這樣很多邊(如果他們聚在同一類)共享相同的權(quán)值。如果我們把一百萬(wàn)個(gè)數(shù)聚成一千類,就可以把參數(shù)的個(gè)數(shù)從一百萬(wàn)降到一千個(gè),這也是一個(gè)非常重要的一個(gè)壓縮模型大小的技術(shù)。
還有一個(gè)技術(shù)可以認(rèn)為是權(quán)值共享的更進(jìn)一步,叫量化。深度神經(jīng)網(wǎng)絡(luò)模型的參數(shù)都是用的浮點(diǎn)型的數(shù)表達(dá),32bit長(zhǎng)度的浮點(diǎn)型數(shù)。實(shí)際上沒必要保留那么高的精度,我們可以通過量化,比如說就用0到255表達(dá)原來(lái)32個(gè)bit所表達(dá)的精度,通過犧牲精度來(lái)降低每一個(gè)權(quán)值所需要占用的空間。
這種量化的更極致的做法就是第四類的技術(shù),叫二制神經(jīng)網(wǎng)絡(luò)。所謂二制神經(jīng)網(wǎng)絡(luò),就是所有的權(quán)值不用浮點(diǎn)數(shù)表達(dá)了,就是一個(gè)二進(jìn)制的數(shù),要么是+1要么是-1,用二進(jìn)制的方式來(lái)表達(dá),這樣原來(lái)一個(gè)32 bit權(quán)值現(xiàn)在只需要一個(gè)bit來(lái)表達(dá),從而大大降低這個(gè)模型的尺寸。
上面這張圖顯示了多種模型壓縮的技術(shù)在不同卷積神經(jīng)網(wǎng)絡(luò)上的結(jié)果。我們可以看到,隨著原始網(wǎng)絡(luò)大小的不同,得到的壓縮比是不一樣的,特別是VGGNet,一個(gè)非常重要的卷積神經(jīng)網(wǎng)絡(luò),能夠把大小從原來(lái)的550M壓縮到11M,并且讓人驚奇的是,壓縮后分類的準(zhǔn)確率沒有下降,反而略微有一點(diǎn)提高,這是非常了不起的。
- 通過設(shè)計(jì)更精巧的算法來(lái)降低模型大小
下面簡(jiǎn)單提一下我們組是如何對(duì)一些序列模型進(jìn)行壓縮,也就是對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)RNN做壓縮,我們提了一種新的循環(huán)神經(jīng)網(wǎng)絡(luò)叫做LightRNN,它不是通過模型壓縮的方式降低模型的大小,而是通過設(shè)計(jì)一種更精巧的算法來(lái)達(dá)到降低模型大小。
自然語(yǔ)言相關(guān)的應(yīng)用中,模型之所以大,是因?yàn)槲覀冃枰衙恳粋€(gè)詞要做詞嵌入(word embedding),把每一個(gè)單詞表達(dá)成向量空間的一個(gè)向量。詞嵌入的基本思想是,語(yǔ)義相似或相近的詞在向量空間里面的向量也比較接近,這樣就可以通過向量空間表達(dá)詞之間的語(yǔ)義信息或者是相似性。因?yàn)橥ǔN覀兊脑~表會(huì)很大,比如說在輸入法里面,可能詞表需要說上百萬(wàn)。如果我們?cè)~表有上百萬(wàn)的詞,每個(gè)詞如果是用一千維的一個(gè)向量來(lái)表達(dá),這個(gè)大小就是差不多是一百萬(wàn)乘以一千再乘以4 Byte(用32位的浮點(diǎn)數(shù)來(lái)表達(dá)),詞嵌入向量的總體大小差不多就有4G左右,所以整個(gè)RNN模型是非常大的。搜索引擎的詞表有上千萬(wàn)的詞,僅僅詞嵌入向量這部分大小就有40G左右,考慮到輸入的詞嵌入和輸出的詞嵌入,整個(gè)詞嵌入的大小有80G左右了,這么大的模型很難加載到GPU上訓(xùn)練模型和使用,更不用說放在移動(dòng)設(shè)備上使用。
我們的算法的基本思想是:不是用一個(gè)向量來(lái)表達(dá)一個(gè)詞,而是用兩個(gè)向量表達(dá)一個(gè)詞,一個(gè)行向量+一個(gè)列向量,不同的詞之間共享行或列向量。我們用一個(gè)二維的表格來(lái)表達(dá)整個(gè)詞表,假設(shè)這個(gè)二維的表格有一千行一千列,這個(gè)表格可以表達(dá)一百萬(wàn)個(gè)詞;這個(gè)表格的每一行有一個(gè)行向量,每一列有一個(gè)列向量,這樣整個(gè)二維表格只需要兩千個(gè)向量。如果一個(gè)詞(January)在第一行第一列的話,它就由行向量X1和列向量Y1來(lái)聯(lián)合表達(dá)。考慮一個(gè)有一百萬(wàn)個(gè)詞的詞表,原來(lái)需要一百萬(wàn)個(gè)嵌入向量,通過這樣一個(gè)二維或者是兩個(gè)component的表格詞嵌入,現(xiàn)在我們只需要一千個(gè)行向量和一千個(gè)列向量來(lái)進(jìn)行表達(dá),這樣大大降低詞嵌入向量模型的大小。
我們?cè)诤芏喙驳臄?shù)據(jù)集上做測(cè)試,結(jié)果表明我們提出的LightRNN算法極大的減小了模型的尺寸,可以把原來(lái)語(yǔ)言模型的大小從4G降到40M左右,當(dāng)這個(gè)模型只有40兆的時(shí)候,很容易使得我們?cè)谝苿?dòng)設(shè)備或者是GPU上使用。我們的方法使得深度模型在各種能耗比較低或者內(nèi)存比較小的設(shè)備上的使用成為了可能。并且我們還發(fā)現(xiàn),通過這樣一種共享的二維詞表的嵌入,我們得到的循環(huán)神經(jīng)網(wǎng)絡(luò)模型的精度并沒有受到很大的影響,實(shí)際上LightRNN的精度反而略微有上升,和前面的卷積神經(jīng)網(wǎng)絡(luò)壓縮的結(jié)果比較類似。
挑戰(zhàn)3:大計(jì)算需要昂貴的物質(zhì)、時(shí)間成本
前沿3:全新的硬件設(shè)計(jì)、算法設(shè)計(jì)、系統(tǒng)設(shè)計(jì)
大計(jì)算說起來(lái)容易,其實(shí)做起來(lái)非常不容易,非常不簡(jiǎn)單。我們微軟亞洲研究院研究員提出深度殘差網(wǎng)絡(luò),這種網(wǎng)絡(luò)如果在ImageNet這樣一個(gè)上百萬(wàn)的數(shù)據(jù)上進(jìn)行訓(xùn)練的話,用四塊現(xiàn)在最先進(jìn)的GPU卡K80學(xué)習(xí)訓(xùn)練時(shí)間大概要三周。最近百度做的神經(jīng)機(jī)器翻譯系統(tǒng),他們用了32塊K40的GPU用了十天做訓(xùn)練,谷歌的機(jī)器翻譯系統(tǒng)用了更多,用了96塊K80的GPU訓(xùn)練了六天。大家可能都知道AlphaGo, 它也需要非常大量的計(jì)算資源。AlphaGo的模型包含一個(gè)策略神經(jīng)網(wǎng)絡(luò),還有一個(gè)值網(wǎng)絡(luò),這兩個(gè)都是卷積神經(jīng)網(wǎng)絡(luò)。它的策略網(wǎng)絡(luò)用了50塊GPU做訓(xùn)練,訓(xùn)練了3個(gè)周,值網(wǎng)絡(luò)也是用了50塊GPU,訓(xùn)練了一周,因此它整個(gè)的訓(xùn)練過程用了50塊CPU四周時(shí)間,差不多一個(gè)月。大家可以想一想,如果訓(xùn)練一個(gè)模型就要等一個(gè)月,并且我們經(jīng)常要調(diào)各種超參數(shù),一組超參數(shù)得到的結(jié)果不好,換另外一組超參數(shù),可能要嘗試很多組超參數(shù),如果我們沒有大量的計(jì)算資源,一等就是一個(gè)月,這從產(chǎn)品的更新?lián)Q代還有技術(shù)創(chuàng)新的角度而言,都不能接受。剛才說了只是AlphaGo訓(xùn)練的復(fù)雜度,其實(shí)它的測(cè)試,比如說比賽的時(shí)候,復(fù)雜度也非常高, AlphaGo的單機(jī)版和人下棋的時(shí)候,每次下棋需要用48塊CPU 8塊GPU,它的分布式版本就用的更多,每次需要用1200塊CPU再加上176塊GPU。大家可以想一想,地球上有幾個(gè)公司能承受這么高昂的代價(jià)來(lái)做深度學(xué)習(xí)。
因此我們認(rèn)為,深度學(xué)習(xí)所面臨的第三個(gè)挑戰(zhàn)是如何設(shè)計(jì)一些更高級(jí)的算法,更快的算法,更有效的算法。手段可能是通過一些全新的硬件設(shè)計(jì)或者是全新的算法設(shè)計(jì),或者是全新的系統(tǒng)設(shè)計(jì),使得這種訓(xùn)練能夠大大的加速。如果我們還是這種訓(xùn)練動(dòng)不動(dòng)就要幾十塊GPU或者幾百塊GPU,要等幾個(gè)星期或者是幾個(gè)月的話,對(duì)工業(yè)界和學(xué)術(shù)界而言都不是好事,我們需要更快速更有效的訓(xùn)練方法。
挑戰(zhàn)4:如何像人一樣從小樣本進(jìn)行有效學(xué)習(xí)?
前沿4:數(shù)據(jù)+知識(shí),深度學(xué)習(xí)與知識(shí)圖譜、邏輯推理、符號(hào)學(xué)習(xí)相結(jié)合
現(xiàn)在的深度學(xué)習(xí)主要是從大數(shù)據(jù)進(jìn)行學(xué)習(xí),就是我給你很多標(biāo)注的數(shù)據(jù),使用深度學(xué)習(xí)算法學(xué)習(xí)得到一些模型。這種學(xué)習(xí)方式和人的智能是非常不一樣的,人往往是從小樣本進(jìn)行學(xué)習(xí)。人對(duì)圖像進(jìn)行分類,如果人想知道一個(gè)圖像是不是蘋果,只需要很少幾個(gè)樣本就可以做到準(zhǔn)確分類。兩三歲小孩,開始認(rèn)識(shí)世界的時(shí)候,他如果想知道什么樣的動(dòng)物是狗,我們給他看幾張狗的圖片,并且告訴他狗有什么特征,和其他動(dòng)物像貓或者羊有什么區(qū)別的話,小孩可以很快很準(zhǔn)確的識(shí)別狗。但是在ImageNet比賽里,像深度殘差神經(jīng)網(wǎng)絡(luò),一般來(lái)說一個(gè)類別大概需要上千張圖片才能進(jìn)行比較充分的訓(xùn)練,得到比較準(zhǔn)確的結(jié)果。還有一個(gè)例子就是汽車駕駛,一般來(lái)說,通過在駕校的培訓(xùn),也就是幾十個(gè)小時(shí)的學(xué)習(xí),幾百公里的練習(xí),大多數(shù)人就可以開車上路了,但是像現(xiàn)在的無(wú)人車可能已經(jīng)行駛了上百萬(wàn)公里,還是達(dá)不到人的全自動(dòng)駕駛的水平。原因在于,人經(jīng)過有限的訓(xùn)練,結(jié)合規(guī)則和知識(shí)能夠應(yīng)付各種復(fù)雜的路況,但是當(dāng)前的AI還沒有邏輯思考、聯(lián)想和推理的能力,必須靠大數(shù)據(jù)來(lái)覆蓋各種可能的路況,但是各種可能的路況幾乎是無(wú)窮的。
前面提到的小孩子認(rèn)識(shí)世界的過程,很多時(shí)候,大人可以把一些經(jīng)驗(yàn)或者是知識(shí)傳授給他們,比如說蘋果是圓形的,有紅色的或者青的蘋果,狗和貓的區(qū)別在什么地方。這種知識(shí)很容易通過語(yǔ)言進(jìn)行傳授,但是對(duì)于一個(gè)AI或者對(duì)于一個(gè)深度學(xué)習(xí)算法而言,如何把這種知識(shí)轉(zhuǎn)化成實(shí)際模型的一部分,怎么把數(shù)據(jù)和知識(shí)結(jié)合起來(lái),提高模型的訓(xùn)練的速度或者是識(shí)別的精度,這是一個(gè)很復(fù)雜的問題。
現(xiàn)在我們組有同事正在做這方面的嘗試和努力,我們希望把深度學(xué)習(xí)、知識(shí)圖譜、邏輯推理、符號(hào)學(xué)習(xí)等等結(jié)合起來(lái),希望能夠進(jìn)一步推動(dòng)人工智能的發(fā)展,使人工智能更接近人的智能。
今年的人工智能國(guó)際頂級(jí)會(huì)議AAAI 2017的最佳論文獎(jiǎng),頒給了一個(gè)利用物理或者是一些領(lǐng)域的專業(yè)知識(shí)來(lái)幫助深度神經(jīng)網(wǎng)絡(luò)做無(wú)標(biāo)注數(shù)據(jù)學(xué)習(xí)的項(xiàng)目。論文里的具體例子是上面這張圖里面一個(gè)人扔枕頭的過程,論文想解決的問題是從視頻里檢測(cè)這個(gè)枕頭,并且跟蹤這個(gè)枕頭的運(yùn)動(dòng)軌跡。如果我們沒有一些領(lǐng)域的知識(shí),就需要大量的人工標(biāo)注的數(shù)據(jù),比如說把枕頭標(biāo)注出來(lái),每幀圖像的哪塊區(qū)域是枕頭,它的軌跡是什么樣子的。實(shí)際上因?yàn)槲覀冎?,枕頭的運(yùn)動(dòng)軌跡應(yīng)該是拋物線,二次型,結(jié)合這種物理知識(shí),我們就不需要標(biāo)注的數(shù)據(jù),能夠把這個(gè)枕頭給檢測(cè)出來(lái),并且把它的軌跡準(zhǔn)確的預(yù)測(cè)出來(lái)。這篇論文之所以獲得了最佳論文獎(jiǎng),也是因?yàn)樗阎R(shí)和數(shù)據(jù)結(jié)合起來(lái),實(shí)現(xiàn)了從無(wú)標(biāo)注數(shù)據(jù)進(jìn)行學(xué)習(xí)的可能。
挑戰(zhàn)5:如何從認(rèn)知性的任務(wù)擴(kuò)展到?jīng)Q策性任務(wù)?
前沿5:博弈機(jī)器學(xué)習(xí)
人的智能包含了很多方面,最基本的階段是認(rèn)知性智能,也就是對(duì)整個(gè)世界的認(rèn)知。我們看到一幅圖能知道里面有什么,我們聽到一句話知道在說文字?,F(xiàn)在對(duì)于圖象識(shí)別、語(yǔ)音識(shí)別,AI已經(jīng)差不多能達(dá)到人類的水平,當(dāng)然可能是在某些特定的約束條件下,能夠達(dá)到人類的水平。但是其實(shí)這種認(rèn)知性的任務(wù),對(duì)人類而言都是非常簡(jiǎn)單的,比如說一個(gè)三五歲的小孩子已經(jīng)能做得很好了,現(xiàn)在AI所能做的這種事情或者能達(dá)到的水平,人其實(shí)也很容易做到,只是AI可能在速度上更快,并且規(guī)模上去之后成本更低,并且24小時(shí)都不需要休息。更有挑戰(zhàn)的問題是,人工智能能不能做一些人類做不了或者是很難做好的事情。
像圖象識(shí)別、語(yǔ)音識(shí)別這類認(rèn)知性的任務(wù),AI之所以做得好,是因?yàn)檫@些任務(wù)是靜態(tài)的,所謂靜態(tài)就是給定輸入,預(yù)測(cè)結(jié)果不會(huì)隨著時(shí)間改變。但是決策性問題,往往和環(huán)境有很復(fù)雜的交互,在某些場(chǎng)景里面,如何做最優(yōu)決策,這些最優(yōu)決策往往是動(dòng)態(tài)的,會(huì)隨著時(shí)間改變。
現(xiàn)在有人嘗試把AI用到金融市場(chǎng),例如如何用AI技術(shù)來(lái)分析股票,預(yù)測(cè)股票漲跌,對(duì)股票交易給出建議,甚至是代替人來(lái)進(jìn)行股票交易,這類問題就是動(dòng)態(tài)決策性問題。同樣一支股票同樣的價(jià)格,在一周前可能是值得買入,但是一周之后可能就要賣出了,同樣一個(gè)事件或者是政治新聞比如說是在總統(tǒng)大選之前發(fā)生還是之后發(fā)生,對(duì)股票市場(chǎng)的影響也完全不一樣。所以決策問題的一個(gè)難點(diǎn)就在于時(shí)變性。
決策性問題的第二個(gè)難點(diǎn)在于各種因素相互影響,牽一發(fā)而動(dòng)全身。一支股票的漲跌會(huì)對(duì)其他股票產(chǎn)生影響,一個(gè)人的投資決策,特別是大的機(jī)構(gòu)的投資決策,可能會(huì)對(duì)整個(gè)市場(chǎng)產(chǎn)生影響,這就和靜態(tài)的認(rèn)知性任務(wù)不一樣的。在靜態(tài)認(rèn)知性任務(wù)我們的預(yù)測(cè)結(jié)果不會(huì)對(duì)問題(例如其他的圖像或者語(yǔ)音)產(chǎn)生任何影響,但是在股票市場(chǎng),任何一個(gè)決定,特別是大的機(jī)構(gòu)的投資策略會(huì)對(duì)整個(gè)市場(chǎng)產(chǎn)生影響,對(duì)別的投資者產(chǎn)生影響,對(duì)將來(lái)會(huì)產(chǎn)生影響。無(wú)人駕駛某種程度上也是比較類似的,一輛無(wú)人車在路上怎么行駛,是由環(huán)境和很多車輛共同決定的,當(dāng)我們通過AI來(lái)控制一輛車的時(shí)候,我們需要關(guān)注周圍的車輛,因?yàn)槲覀円紤]到周圍的車輛對(duì)于當(dāng)前這個(gè)無(wú)人車的影響,以及我們無(wú)人車(如左轉(zhuǎn)右轉(zhuǎn)或者并線)對(duì)周圍車輛的影響。
當(dāng)前深度學(xué)習(xí)已經(jīng)在靜態(tài)任務(wù)里面取得了很大的成功,如何把這種成功延續(xù)和擴(kuò)展到這種復(fù)雜的動(dòng)態(tài)決策問題中,也是當(dāng)前一個(gè)深度學(xué)習(xí)的挑戰(zhàn)之一。我們認(rèn)為,一個(gè)可能的思路是博弈機(jī)器學(xué)習(xí)。在博弈機(jī)器學(xué)習(xí)里,通過觀察環(huán)境和其他個(gè)體的行為,對(duì)每個(gè)個(gè)體構(gòu)建不同的個(gè)性化行為模型,AI就可以三思而后行,選擇一個(gè)最優(yōu)策略,該策略會(huì)自適應(yīng)環(huán)境的變化和其他個(gè)體的行為的改變。
以上是我今天的分享。最后,我們微軟亞洲研究院機(jī)器學(xué)習(xí)組正在招聘,大家如果對(duì)機(jī)器學(xué)習(xí)的任何一個(gè)方向感興趣,歡迎加入我們。
(本文獨(dú)家首發(fā)鈦媒體,根據(jù)微軟亞洲研究院主管研究員秦濤博士在鈦坦白上的分享整理)
………………………………
鈦坦白第32期,AI已來(lái)之機(jī)器學(xué)習(xí)1,今晚7點(diǎn)繼續(xù)!
地點(diǎn):鈦坦白 | 人工智能(微信群)
報(bào)名聽課、交流:
鈦坦白目前有醫(yī)療健康、人工智能、文娛社交、VR/AR、區(qū)塊鏈、支付創(chuàng)新、體育、云計(jì)算、SaaS等九個(gè)專業(yè)群。
1、鈦媒體Pro專業(yè)版用戶,可以點(diǎn)擊鏈接http://www.chcmb.cn/pro,登錄賬號(hào),在線免費(fèi)、任意選擇自己要進(jìn)入的群,按提示操作;
2、非鈦媒體Pro專業(yè)版用戶,可以添加微信號(hào)taitanbai0,在通過好友后,發(fā)99元紅包給小鈦,你將有權(quán)利從九個(gè)群中任選一個(gè)群進(jìn)入,長(zhǎng)期聽課、交流。請(qǐng)告訴小鈦你要進(jìn)入哪一個(gè)群,然后等待小鈦拉你入群~
推薦鈦客、贊助、合作:
請(qǐng)與鈦坦白負(fù)責(zé)人佳音聯(lián)系,郵箱jiayinge@tmtpost.com






快報(bào)
根據(jù)《網(wǎng)絡(luò)安全法》實(shí)名制要求,請(qǐng)綁定手機(jī)號(hào)后發(fā)表評(píng)論