2016年3月7日,Google首席科學(xué)家、MapReduce和BigTable等系統(tǒng)的創(chuàng)建者Jeff Dean應(yīng)邀在韓國大學(xué)就大規(guī)模深入學(xué)習(xí)這一主題發(fā)表演講,部分內(nèi)容來自高可伸縮性文本和作者的YouTube收聽。就在Alpha Go和李世石賽跑之前,觀眾問他關(guān)于他的預(yù)測。他只是說,一臺已經(jīng)訓(xùn)練了五個月的機器和一個頂尖的玩家之間的差距是很難說的;有人問他喜歡的編程語言(C++愛恨交織在一起,像谷歌的簡單性,Sawzall是真愛),以及谷歌的第一天是如何度過的。早餐好,到處逛逛,聊天,找到各個領(lǐng)域的專家來克服困難。這篇文章從WeChat在硅谷的公開演講董先生開始。
Google系統(tǒng)架構(gòu)組的學(xué)者Jeff Dean在用大規(guī)模深入學(xué)習(xí)構(gòu)建智能計算系統(tǒng)的講座上發(fā)表了演講,以及Google整合全球信息的使命,以便每個人都能夠訪問并從中受益。收集、清理、存儲、索引、報告和檢索數(shù)據(jù),當(dāng)Google完成這項任務(wù)時,它承擔(dān)了下一個挑戰(zhàn)。
當(dāng)你看到這張照片時,你馬上就知道孩子和泰迪熊在睡覺。當(dāng)我看到下一個街景時,我立刻意識到紀(jì)念品店有打折。事實上,直到最近,計算機才能從照片中提取信息。
如果你想從圖像中解釋物理世界,計算機需要選擇感興趣的點,閱讀文本,并且真正理解。
像下面要銷售的文本汽車零件一樣,傳統(tǒng)的Google通過關(guān)鍵詞匹配給出結(jié)果,但更好的匹配是第二個。這是一個深入了解需求的過程,不能停留在字面上,要做好搜索和語言理解的產(chǎn)品。
谷歌的深度神經(jīng)網(wǎng)絡(luò)歷史
與其他公司不同,Google在2011年啟動了Brain項目,當(dāng)時它希望使用神經(jīng)網(wǎng)絡(luò)來改進技術(shù),但是它不像大學(xué)里的象牙塔,而是結(jié)合了Android、Gmail和圖片來改進產(chǎn)品以解決實際問題。其他公司將研究與員工工作結(jié)合起來。
神經(jīng)網(wǎng)絡(luò)的研究由來已久。它們產(chǎn)生于20世紀(jì)60年代,流行于20世紀(jì)80年代和90年代初,但是它們再也沒有流行起來。谷歌和強大的基礎(chǔ)設(shè)施,谷歌創(chuàng)造了一個極好的溫床,人工智能與大量數(shù)據(jù)集。
深度學(xué)習(xí)從少量的產(chǎn)品組開始,一段時間后,響應(yīng)足夠好以解決之前不能完成的問題,更多的團隊開始采用。使用深度學(xué)習(xí)的產(chǎn)品包括:Android、Apps、DrugDisco.、Gmail、圖片理解、地圖、自然語言、圖片、機器人、語音翻譯等。
深層學(xué)習(xí)可以應(yīng)用到很多領(lǐng)域,因為通用的模塊有:語音、文本、搜索詞、圖片、視頻、標(biāo)簽、實體、短語、音頻特征。去吧。
這個模型之所以很好,是因為它注入了大量的原始數(shù)據(jù)。您不需要教工程師很多特征點,但是該模型的強大之處在于通過查看一些示例自動識別數(shù)據(jù)中的有用信息。
神經(jīng)網(wǎng)絡(luò)是從數(shù)據(jù)中提取的復(fù)雜函數(shù)。從一個空間輸出到另一個空間。這里的函數(shù)不是正方形,而是一個真正復(fù)雜的函數(shù)。當(dāng)你給出一些原始像素,比如貓,輸出就是對象的類別。
深度學(xué)習(xí)是指神經(jīng)網(wǎng)絡(luò)的層數(shù),系統(tǒng)的優(yōu)良性質(zhì)是一組簡單的數(shù)學(xué)函數(shù),可以訓(xùn)練,深層神經(jīng)網(wǎng)絡(luò)適用于多種機器學(xué)習(xí)方式。
例如,輸入貓的圖片,輸出是人工標(biāo)記的貓的圖片,這是監(jiān)督學(xué)習(xí)。你給系統(tǒng)許多監(jiān)督樣本,讓它學(xué)習(xí)近似函數(shù),正如從監(jiān)督樣本中觀察到的。
也有無監(jiān)督學(xué)習(xí)。給定一張圖片,你不知道里面是什么,系統(tǒng)可以學(xué)習(xí)尋找出現(xiàn)在許多圖片中的圖案。所以即使你不知道圖片,它也可以識別出所有圖片中都有一只貓。
深層網(wǎng)絡(luò)模型類似于大腦行為的原理,但它沒有具體地模擬神經(jīng)元如何工作。它是一個簡單而抽象的神經(jīng)元版本。
神經(jīng)元有一組輸入。真實神經(jīng)元會有不同強度的輸入。在人工智能網(wǎng)絡(luò)中,我們試圖學(xué)習(xí)這些邊緣的權(quán)重,以加強不同輸入之間的連接。真實神經(jīng)元通過輸入和inte的組合來確定是否產(chǎn)生脈沖。大學(xué)。
人工神經(jīng)元不產(chǎn)生脈沖,但它們產(chǎn)生一個數(shù)值,神經(jīng)元的功能是通過非線性函數(shù)來計算權(quán)重之和。
典型的非線性函數(shù)是整數(shù)線性元素(max(0,x))。20世紀(jì)90年代,許多非線性函數(shù)是光滑的sigmoid()函數(shù)或tanh()函數(shù),但對于神經(jīng)元,其值更接近于0,這對優(yōu)化系統(tǒng)更有利。例如,如果神經(jīng)元有3個輸入X1、X1、X3,則權(quán)重分別為-0.21、0.3、0.7。
為了決定圖片是貓還是狗,這張圖片需要經(jīng)過很多層。這些神經(jīng)元根據(jù)輸入產(chǎn)生下一步。
最低級的神經(jīng)元觀察像素中的小像素。較高級的神經(jīng)元將看到較低級的神經(jīng)元的輸出,并決定是否產(chǎn)生。
這個模型也是錯誤的,例如,這是一只貓,但事實上它是一只狗。作出錯誤決策的信號然后被返回到系統(tǒng)進行調(diào)整,以便剩余的模型在下一次看到圖片時更有可能輸出狗。這是神經(jīng)網(wǎng)絡(luò)的目標(biāo)。通過小步調(diào)整邊緣的權(quán)重,可以更方便地得到正確答案。可以聚集所有樣本,降低錯誤率。
反向傳播:積分的鏈?zhǔn)椒▌t決定了高級神經(jīng)網(wǎng)絡(luò)的使用,如果選擇是貓而不是狗,您必須找到方法來調(diào)整高級的權(quán)重,使其更適合于狗。
根據(jù)箭頭的方向和重量,它更像是一只狗。不要因為表面復(fù)雜而采取太大的步驟,微調(diào)一個小步驟使其更有可能下次給出狗的結(jié)果。通過多次迭代和查看示例,結(jié)果更有可能為b這個鏈?zhǔn)揭?guī)則用來理解底層參數(shù)的變化是如何影響輸出的。簡言之,網(wǎng)絡(luò)變化循環(huán)被反饋到輸入端,使得整個模型更適合選擇狗。
重量微調(diào)
真正的神經(jīng)網(wǎng)絡(luò)通過1億個參數(shù)的水平來調(diào)整輸出網(wǎng)絡(luò)。Google現(xiàn)在有能力快速建立和訓(xùn)練這些海量數(shù)據(jù)模型以解決實際問題并部署生產(chǎn)模型(手機、傳感器、云,等等)。等等)在各種各樣的平臺上。
也就是說,神經(jīng)網(wǎng)絡(luò)可以應(yīng)用于許多不同的問題。
用戶行為:許多應(yīng)用程序產(chǎn)生數(shù)據(jù)。例如,搜索引擎查詢,用戶在電子郵件中標(biāo)記垃圾。這些可以學(xué)習(xí)和構(gòu)建智能系統(tǒng)。
如果更多的數(shù)據(jù)被吸收,模型越大,結(jié)果就越好。
如果輸入更多的數(shù)據(jù),但不要使模型變大,那么模型的能力會受到某些數(shù)據(jù)集中明顯特征的限制。通過增加模型的大小,不僅要記住顯而易見的特征,還要記住一些可能看起來很小的微妙特征。
隨著模型越來越大,數(shù)據(jù)越來越多,對計算的需求也越來越大。谷歌在如何增加計算量和訓(xùn)練更大的模型上花費了大量的精力。
第一組部署深層神經(jīng)網(wǎng)絡(luò)。他們實現(xiàn)的新模型是基于神經(jīng)網(wǎng)絡(luò)而不是隱馬爾可夫模型。問題是從150毫秒的語音中預(yù)測10毫秒中的語音。例如,BA或KA的語音。你得到一個預(yù)測序列。然后使用語言模型來理解用戶所說的內(nèi)容。
最初的版本降低了30%的識別錯誤率,后來我們研究了一些復(fù)雜的模型來增強網(wǎng)絡(luò),進一步降低錯誤率。
ImageNet是6年前發(fā)布的,有100萬張圖片,是計算機視覺領(lǐng)域最大的圖片。圖片有1000個不同的類別,每個類別有1000張圖片。有數(shù)千種不同的豹子、摩托車等等。問題不是所有的標(biāo)簽都是對的。
在使用神經(jīng)網(wǎng)絡(luò)之前,最好的錯誤記錄是26%,谷歌的錯誤率在2014年下降到6.66%,贏得冠軍,然后在2015年下降到3.46%。注意到Andrej的錯誤率為5.1%(他仍然花了24小時訓(xùn)練)。
3)圖像類別識別
計算機在花卉識別方面是非常強大的,這是識別細微差別的一個很好的模型。
一般效果,如菜肴識別。
當(dāng)計算機出錯時,看一下錯誤的敏感性,比如左邊的鼻涕是蛇,右邊的是鬼。
Google圖片團隊了解了圖像中像素的威力,開發(fā)了一個功能,允許您搜索沒有標(biāo)簽的圖像。例如,您可以查找雕像、繪圖、水,并且不需要預(yù)先注釋。
如何識別街道場景中的文本。首先,我們需要找到文本部分。該模型能有效地預(yù)測像素中的熱點區(qū)域,這些像素包含文本,訓(xùn)練數(shù)據(jù)為包含文字分割的多邊形。
因為訓(xùn)練數(shù)據(jù)包括不同的字符集,所以在多語言環(huán)境中不成問題。還要考慮大小字體、距離和不同的顏色。訓(xùn)練模型相對簡單,即卷積神經(jīng)網(wǎng)絡(luò)試圖預(yù)測每個像素是否包含文本。
RankBrain成立于2015年,在搜索排名中排名第三(前100名),其困難在于搜索排名需要理解模型,以及為什么需要做出決定。為什么當(dāng)系統(tǒng)出錯時會發(fā)生這種情況
調(diào)試工具已經(jīng)準(zhǔn)備好,并且需要足夠的理解來嵌入模型以避免主觀性。一般來說,不希望手動調(diào)整參數(shù)。您需要嘗試?yán)斫饽P椭械念A(yù)測,理解訓(xùn)練數(shù)據(jù)是否相關(guān),是否與公共關(guān)系無關(guān)問題,以及您是否需要將訓(xùn)練數(shù)據(jù)應(yīng)用于其他事物。通過搜索查詢的分布,您可以每天得到更改,并且事件隨時發(fā)生。如果希望查看該分布是否穩(wěn)定,比如語音識別,那么一般人不會更改e音色。當(dāng)查詢和文檔的內(nèi)容頻繁變化時,您必須確保模型是新的。我們需要構(gòu)建通用工具來理解神經(jīng)網(wǎng)絡(luò)內(nèi)部正在發(fā)生什么并解釋是什么導(dǎo)致了這種預(yù)測。
許多問題可以映射到一個序列到另一個序列。例如,語言翻譯,從英語到法語,就是把英語序列詞翻譯成法語序列詞。
神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)復(fù)雜函數(shù)中特別有用。該模型學(xué)習(xí)從英語到法語的句子,句子以單詞為單位,以結(jié)尾為信號,訓(xùn)練模型在滿足結(jié)尾符號時開始生成另一種語言的對應(yīng)句子,模型功能是使用語言中的語句對作為訓(xùn)練數(shù)據(jù)。
在每個步驟中都顯示了詞典中單詞生成的概率分布。推理是通過一些搜索完成的,如果最大化每個單詞的概率,則不會尋找最可能的句子。搜索直到找到最可能的句子。
該系統(tǒng)在公共翻譯系統(tǒng)中表現(xiàn)良好。大多數(shù)其他翻譯系統(tǒng)要求手動編碼或機器學(xué)習(xí)模型僅以很小的一部分使用,而不是像這樣的整個端到端學(xué)習(xí)系統(tǒng)。
這些字段是可以被分組為序列類的方法。
智能恢復(fù)是順序類的另一個例子。如何快速回復(fù)電子郵件,厭倦打字。
Gmail群組已經(jīng)開發(fā)了一個預(yù)測郵件響應(yīng)的系統(tǒng)。第一步是訓(xùn)練小模型來預(yù)測如果消息是某個類如何做出短響應(yīng)。如果是一個更大、更計算的模型,則嘗試使用messa來預(yù)測序列的響應(yīng)語言。例如,對于一個節(jié)日邀請,三個最有可能的答案是依靠我們。我們?nèi)ァΣ黄穑覀儾荒芡妗?/p>
將先前開發(fā)的圖像模型與序列類模型相結(jié)合。圖像模型作為輸入。這不是讀英語句子,而是看圖片的像素。
接下來是生成字幕的訓(xùn)練。訓(xùn)練集有5個不同的人寫的字幕。總共有100萬張圖片,70萬句子。結(jié)果如下
這兩個模型是很好的譯文:1)一個小孩緊緊地抓著毛絨玩具。2)一個嬰兒在泰迪熊旁邊睡著了。
以上是一些有趣和錯誤的陳述。你為什么錯了
翻譯小組編寫了一個應(yīng)用程序,使用計算機視覺識別鏡頭中的漢字,將它們翻譯成文本,最后用圖片本身覆蓋翻譯后的文本。
直接在電話上運行一些重要的方式。智能化將被轉(zhuǎn)移到設(shè)備端,這樣遠程云的大腦就不會依賴于它。
Google非常關(guān)注研究效率。它需要快速訓(xùn)練模型,了解好壞,然后考慮下一步。模型應(yīng)該花費幾分鐘或幾個小時而不是幾天或幾周。這樣每個人都可以更有效地進行研究。
機器學(xué)習(xí)的發(fā)展會越來越好。杰夫說機器學(xué)習(xí)社區(qū)發(fā)展很快。人們發(fā)表了一篇論文,一周內(nèi)許多團隊會跟進、下載、閱讀、理解和實現(xiàn)他們自己的擴展。這與以前的計算完全不同。日志投稿,等六個月才知道是否收到,然后等三個月才發(fā)表期末報告。把時間從一年縮短到一周真可惜。
神經(jīng)網(wǎng)絡(luò)具有許多固有的并行性,并且所有不同的神經(jīng)元與其他神經(jīng)元保持獨立,尤其是局部地,僅接受一小部分下層神經(jīng)元作為輸入。
數(shù)據(jù)并行化
優(yōu)化的模型參數(shù)集不應(yīng)該位于一臺機器上或中央服務(wù)器上,而是應(yīng)該具有多個模型副本,以便協(xié)作區(qū)域優(yōu)化參數(shù)。
在訓(xùn)練過程中讀取數(shù)據(jù)的隨機部分。每個副本獲取模型中的當(dāng)前參數(shù)集,在當(dāng)前梯度下讀取少量數(shù)據(jù),找到所需的參數(shù)調(diào)整,并將其發(fā)送到中心參數(shù)服務(wù)器。該參數(shù)服務(wù)器調(diào)整參數(shù)。這個過程是重復(fù)的,而且這種重復(fù)也會發(fā)生在許多拷貝中。一些拷貝在500臺不同的機器上使用500個拷貝來快速優(yōu)化參數(shù)和處理大量的數(shù)據(jù)。
一種方式是異步的,每種方式都有自己的循環(huán),獲取參數(shù),計算梯度,發(fā)送它們,沒有任何控制和同步,但是壞處是當(dāng)梯度返回到參數(shù)時,可以在計算之后刪除它。另一個是同步,控制器控制所有副本。
在過去的幾年中,我們建立了兩代用于訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò)的計算機系統(tǒng),并將它們用于解決傳統(tǒng)上計算機難以解決的許多問題。
第一代系統(tǒng)DistBeliet在可伸縮性方面表現(xiàn)良好,但是用于研究的靈活性比預(yù)期的要低。
這也是第二代系統(tǒng)發(fā)展的動力,它采用了TysFROW來表示高級機器學(xué)習(xí)計算,它是C++語言的核心,冗余度較低。R語言不是問題。
計算可以通過數(shù)據(jù)流圖來理解。
張量(Zhang Liang)表示N維數(shù)組。一維是向量,二維是矩陣;圖像可以表示高維數(shù)據(jù)流,例如,圖像可以用三維張量(行、列、顏色)表示。
張量從圖像的一端流向另一端,稱為張量流。邊緣表示張亮(數(shù)據(jù)),節(jié)點表示算術(shù)運算。
這是一個使用狀態(tài)計算的示意圖。
這是分布式計算的示意圖。
它可以在各種平臺上自動運行模型:一個由電話上的數(shù)百個GPU卡組成的分布式系統(tǒng),在一臺機器(CPU或GPU)上。
總結(jié)
如果你不想通過深度學(xué)習(xí)網(wǎng)絡(luò)解決你的數(shù)據(jù)問題,你必須快速考慮它。
當(dāng)Jeff Dean第一次采訪Google時,他被問到P=NP能推斷出什么結(jié)論,Jeff回答:P=0或N=1。在采訪者笑完之前,Jeff檢查了Google的公鑰,并將私鑰寫在黑板上。



