深度學(xué)習(xí)是計(jì)算機(jī)領(lǐng)域中目前非常火的話題,不僅在學(xué)術(shù)界有很多論文,在業(yè)界也有很多實(shí)際運(yùn)用。本篇博客主要介紹了三種基本的深度學(xué)習(xí)的架構(gòu),并對(duì)深度學(xué)習(xí)的原理作了簡(jiǎn)單的描述。本篇文章翻譯自Medium上一篇入門(mén)介紹。
機(jī)器學(xué)習(xí)技術(shù)在當(dāng)代社會(huì)已經(jīng)發(fā)揮了很大的作用:從網(wǎng)絡(luò)搜索到社交網(wǎng)絡(luò)中的內(nèi)容過(guò)濾到電子商務(wù)網(wǎng)站的個(gè)性化推薦,它正在快速的出現(xiàn)在用戶的消費(fèi)品中,如攝像機(jī)和智能手機(jī)。機(jī)器學(xué)習(xí)系統(tǒng)可以用來(lái)識(shí)別圖像中的物體,將語(yǔ)音轉(zhuǎn)變成文字,匹配用戶感興趣的新聞、消息和產(chǎn)品等,也可以選擇相關(guān)的搜索結(jié)果。這些應(yīng)用越來(lái)越多的使用一種叫做“深度學(xué)習(xí)(Deep Learning)”的技術(shù)。
深度學(xué)習(xí)(Deep Learning)(也稱為深度結(jié)構(gòu)學(xué)習(xí)【Deep Structured Learning】、層次學(xué)習(xí)【Hierarchical Learning】或者是深度機(jī)器學(xué)習(xí)【Deep Machine Learning】)是一類(lèi)算法集合,是機(jī)器學(xué)習(xí)的一個(gè)分支。它嘗試為數(shù)據(jù)的高層次摘要進(jìn)行建模。以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō),假設(shè)你有兩組神經(jīng)元,一個(gè)是接受輸入的信號(hào),一個(gè)是發(fā)送輸出的信號(hào)。當(dāng)輸入層接收到輸入信號(hào)的時(shí)候,它將輸入層做一個(gè)簡(jiǎn)單的修改并傳遞給下一層。在一個(gè)深度網(wǎng)絡(luò)中,輸入層與輸出層之間可以有很多的層(這些層并不是由神經(jīng)元組成的,但是它可以以神經(jīng)元的方式理解),允許算法使用多個(gè)處理層,并可以對(duì)這些層的結(jié)果進(jìn)行線性和非線性的轉(zhuǎn)換。
譯者補(bǔ)充:深度學(xué)習(xí)的思想與人工神經(jīng)網(wǎng)絡(luò)思想是一致的??偟膩?lái)說(shuō),神經(jīng)網(wǎng)絡(luò)是一種機(jī)器學(xué)習(xí)架構(gòu),所有的個(gè)體單元以權(quán)重的方式連接在一起,且這些權(quán)重是通過(guò)網(wǎng)絡(luò)來(lái)訓(xùn)練的,那么它就可以稱之為神經(jīng)網(wǎng)絡(luò)算法。人工神經(jīng)網(wǎng)絡(luò)算法的思想來(lái)源于模仿人類(lèi)大腦思考的方式。人類(lèi)大腦是通過(guò)神經(jīng)系統(tǒng)得到輸入信號(hào)再作出相應(yīng)反映的,而接受外部刺激的方式是用神經(jīng)元接受神經(jīng)末梢轉(zhuǎn)換的電信號(hào)。那么,我們希望通過(guò)人造神經(jīng)元的方式模擬大腦的思考,這就產(chǎn)生了人工神經(jīng)網(wǎng)絡(luò)了。人工神經(jīng)元組成了人工神經(jīng)網(wǎng)絡(luò)的計(jì)算單元,而人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)描述了這些神經(jīng)元的連接方式。我們可以采用層的方式組織神經(jīng)元,層與層之間可以互相連接。以前受制于很多因素,我們無(wú)法添加很多層,而現(xiàn)在隨著算法的更新、數(shù)據(jù)量的增加以及GPU的發(fā)展,我們可以用很多的層來(lái)開(kāi)發(fā)神經(jīng)網(wǎng)絡(luò),這就產(chǎn)生了深度神經(jīng)網(wǎng)絡(luò)。而深度學(xué)習(xí)其實(shí)就是深度神經(jīng)網(wǎng)絡(luò)的一個(gè)代名詞。關(guān)于人工神經(jīng)網(wǎng)絡(luò)算法可以參考人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)算法簡(jiǎn)介。
近些年來(lái),深度學(xué)習(xí)通過(guò)在某些任務(wù)中極佳的表現(xiàn)正在改革機(jī)器學(xué)習(xí)。深度學(xué)習(xí)方法在會(huì)話識(shí)別、圖像識(shí)別、對(duì)象偵測(cè)以及如藥物發(fā)現(xiàn)和基因組學(xué)等領(lǐng)域表現(xiàn)出了驚人的準(zhǔn)確性。但是,“深度學(xué)習(xí)”這個(gè)詞語(yǔ)很古老,它在1986年由Dechter在機(jī)器學(xué)習(xí)領(lǐng)域提出,然后在2000年有Aizenberg等人引入到人工神經(jīng)網(wǎng)絡(luò)中。而現(xiàn)在,由于Alex Krizhevsky在2012年使用卷積網(wǎng)絡(luò)結(jié)構(gòu)贏得了ImageNet比賽之后受到大家的矚目。
生成式深度架構(gòu)(Generative deep architectures),主要是用來(lái)描述具有高階相關(guān)性的可觀測(cè)數(shù)據(jù)或者是可見(jiàn)的對(duì)象的特征,主要用于模式分析或者是總和的目的,或者是描述這些數(shù)據(jù)與他們的類(lèi)別之間的聯(lián)合分布。(其實(shí)就是類(lèi)似與生成模型)
判別式深度架構(gòu)(Discriminative deep architectures),主要用于提供模式分類(lèi)的判別能力,經(jīng)常用來(lái)描述在可見(jiàn)數(shù)據(jù)條件下物體的后驗(yàn)類(lèi)別的概率。(類(lèi)似于判別模型)
混合深度架構(gòu)(Hybrid deep architectures),目標(biāo)是分類(lèi),但是和生成結(jié)構(gòu)混合在一起了。比如以正在或者優(yōu)化的方式引入生成模型的結(jié)果,或者使用判別標(biāo)注來(lái)學(xué)習(xí)生成模型的參數(shù)。
盡管上述深度學(xué)習(xí)架構(gòu)的分類(lèi)比較復(fù)雜,其實(shí)實(shí)際中對(duì)應(yīng)的模型的例子就是深度前饋網(wǎng)絡(luò),卷積網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)(Deep feed-forward networks, Convolution networks and Recurrent Networks)。
深度前饋網(wǎng)絡(luò)也叫做前饋神經(jīng)網(wǎng)絡(luò),或者是多層感知機(jī)(MultilayerPerceptrons,MLPs),是深度學(xué)習(xí)模型中的精粹。
前饋網(wǎng)絡(luò)的目標(biāo)是近似某些函數(shù)。例如,對(duì)于一個(gè)分類(lèi)器,y=f(x)來(lái)說(shuō),它將一個(gè)輸入值x變成對(duì)應(yīng)的類(lèi)別y。前饋網(wǎng)絡(luò)就是定義一個(gè)映射y=f(x;θ),并學(xué)習(xí)出參數(shù)θ使得產(chǎn)生最好的函數(shù)近似。
簡(jiǎn)而言之,神經(jīng)網(wǎng)絡(luò)可以定義成輸入層,隱含層和輸出層。其中,輸入層接受數(shù)據(jù),隱含層處理數(shù)據(jù),輸出層則輸出最終結(jié)果。這個(gè)信息流就是接受x,通過(guò)處理函數(shù)f,在達(dá)到輸出y。這個(gè)模型并沒(méi)有任何的反饋連接,因此被稱為前饋網(wǎng)絡(luò)。
在機(jī)器學(xué)習(xí)中,卷積神經(jīng)網(wǎng)絡(luò)(簡(jiǎn)稱CNN或者ConvNet)是一種前饋神經(jīng)網(wǎng)絡(luò),它的神經(jīng)元的連接是啟發(fā)于動(dòng)物視覺(jué)皮層。單個(gè)皮質(zhì)神經(jīng)元可以對(duì)某個(gè)有限空間區(qū)域的刺激作出反應(yīng)。這個(gè)有限空間可以稱為接受域。不同的神經(jīng)元的接受域可以重疊,從組成了所有的可見(jiàn)區(qū)域。那么,一個(gè)神經(jīng)元對(duì)某個(gè)接受域內(nèi)的刺激作出反應(yīng),在數(shù)學(xué)上可以使用卷積操作來(lái)近似。也就是說(shuō),卷積神經(jīng)網(wǎng)絡(luò)是受到生物處理的啟發(fā),設(shè)計(jì)使用最少的預(yù)處理的多層感知機(jī)的變體。
LeNet是早期推動(dòng)深度學(xué)習(xí)發(fā)展的卷積神經(jīng)網(wǎng)絡(luò)之一。這是Yann LeCun從1988年以來(lái)進(jìn)行的許多詞的成功迭代后得到的開(kāi)創(chuàng)性工作,稱之為L(zhǎng)eNet5。在當(dāng)時(shí),LeNet架構(gòu)主要用來(lái)進(jìn)行字符識(shí)別的工作,如讀取郵編,數(shù)字等。如下圖所示,卷積神經(jīng)網(wǎng)絡(luò)主要包含四塊:
卷積層(Convolutional Layer)
激活函數(shù)(Activation Function)
池化層(Pooling Layer)
全連接層(Fully Connected Layer)
卷積層是基于單詞“卷積(Convolution)”而來(lái),這是一種數(shù)學(xué)上的操作,它是對(duì)兩個(gè)變量f\*g進(jìn)行操作產(chǎn)生第三個(gè)變量。它和互相關(guān)(cross-correlation)很像。卷積層的輸入是一個(gè)m×m×r圖像,其中m是圖像的高度和寬度,r是通道的數(shù)量,例如,一個(gè)RGB圖像的通道是3,即r=3。卷積層有k個(gè)濾波器【filters】(或者稱之為核【kernel】),其大小是n×n×q,這里的n是比圖像維度小的一個(gè)數(shù)值,q既可以等于通道數(shù)量,也可以小于通道數(shù)量,具體根據(jù)不同的濾波器來(lái)定。
為了實(shí)現(xiàn)復(fù)雜的映射函數(shù),我們需要使用激活函數(shù)。它可以帶來(lái)非線性的結(jié)果,而非線性可以使得我們很好的擬合各種函數(shù)。同時(shí),激活函數(shù)對(duì)于壓縮來(lái)自神經(jīng)元的無(wú)界線性加權(quán)和也是重要的。
激活函數(shù)很重要,它可以避免我們把大的數(shù)值在高層次處理中進(jìn)行累加。激活函數(shù)有很多,常用的有sigmoid,tanh和ReLU。
池化是一個(gè)基于樣本的離散化過(guò)程。其目的上降低輸入表示的采樣(這里的輸入可以是圖像,隱層的輸出等),減少它們的維度,并允許我們假設(shè)特征已經(jīng)被包含在了子區(qū)域中。
這部分的作用是通過(guò)提供一種抽象的形式表示來(lái)幫助過(guò)擬合表示。同樣的,它也通過(guò)減少了參數(shù)的數(shù)量降低了計(jì)算的復(fù)雜度并為內(nèi)部的表示提供一個(gè)基本的不變性的轉(zhuǎn)換。
目前最常用的池化技術(shù)有Max-Pooling、Min-Pooling和Average-Pooling。
“全連接”的意思是指先前的層里面的所有的神經(jīng)元都與后一個(gè)層里面的所有的神經(jīng)元相連。全連接層是一種傳統(tǒng)的多層感知機(jī),在輸出層,它使用softmax激活函數(shù)或者其他激活函數(shù)。
在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,我們假設(shè)所有的輸入之間相互獨(dú)立。但是對(duì)于很多任務(wù)來(lái)說(shuō),這并不是一個(gè)好的主意。如果你想知道一個(gè)句子中下一個(gè)單詞是什么,你最好知道之前的單詞是什么。RNN之所以叫RNN就是它對(duì)一個(gè)序列中所有的元素都執(zhí)行相同的任務(wù),所有的輸出都依賴于先前的計(jì)算。另一種思考RNN的方式是它會(huì)記住所有之前的計(jì)算的信息。
一個(gè)RNN里面有很多循環(huán),它可以攜帶從輸入中帶來(lái)的信息。如下圖所示,x_t是一種輸入,A是RNN里面的一部分,h_t是輸出。本質(zhì)上,您可以從句子中輸入文字,甚至還可以從字符串中輸入x_t格式的字符,通過(guò)RNN可以提供一個(gè)h_t。 RNN的一些類(lèi)型是LSTM,雙向RNN,GRU等。
深度學(xué)習(xí)有很多應(yīng)用,很多特別的問(wèn)題也可以通過(guò)深度學(xué)習(xí)解決。一些深度學(xué)習(xí)的應(yīng)用舉例如下:
深度學(xué)習(xí)可以用來(lái)根據(jù)對(duì)象及其情景來(lái)為圖片上色,而且結(jié)果很像人類(lèi)的著色結(jié)果。這中解決方案使用了很大的卷積神經(jīng)網(wǎng)絡(luò)和有監(jiān)督的層來(lái)重新創(chuàng)造顏色。
深度學(xué)習(xí)可以對(duì)未經(jīng)處理的語(yǔ)言序列進(jìn)行翻譯,它使得算法可以學(xué)習(xí)單詞之間的依賴關(guān)系,并將其映射到一種新的語(yǔ)言中。大規(guī)模的LSTM的RNN網(wǎng)絡(luò)可以用來(lái)做這種處理。
這種任務(wù)需要將圖像分成之前我們所知道的某一種類(lèi)別中。目前這類(lèi)任務(wù)最好的結(jié)果是使用超大規(guī)模的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)的。突破性的進(jìn)展是Alex Krizhevsky等人在ImageNet比賽中使用的AlexNet模型。
這種任務(wù)是先給定一些手寫(xiě)的文字,然后嘗試生成新的類(lèi)似的手寫(xiě)的結(jié)果。首先是人用筆在紙上手寫(xiě)一些文字,然后根據(jù)寫(xiě)字的筆跡作為語(yǔ)料來(lái)訓(xùn)練模型,并最終學(xué)習(xí)產(chǎn)生新的內(nèi)容。
這項(xiàng)任務(wù)是根據(jù)電腦屏幕的圖像,來(lái)決定如何玩游戲。這種很難的任務(wù)是深度強(qiáng)化模型的研究領(lǐng)域,主要的突破是DeepMind團(tuán)隊(duì)的成果。
一種基于sequence to sequence的模型來(lái)創(chuàng)造一個(gè)聊天機(jī)器人,用以回答某些問(wèn)題。它是根據(jù)大量的實(shí)際的會(huì)話數(shù)據(jù)集產(chǎn)生的。想了解詳情,可以參考:https://medium.com/shridhar743/generative-model-chatbots-e422ab08461e
從本篇博客來(lái)看,由于模仿了人類(lèi)大腦,深度學(xué)習(xí)可以運(yùn)用在很多領(lǐng)域中。目前有很多領(lǐng)域都在研究使用深度學(xué)習(xí)解決問(wèn)題。盡管目前信任是個(gè)問(wèn)題,但是它終將被解決。
End
如果有人質(zhì)疑大數(shù)據(jù)?不妨把這兩個(gè)視頻轉(zhuǎn)給他
視頻:大數(shù)據(jù)到底是什么 都說(shuō)干大數(shù)據(jù)掙錢(qián) 1分鐘告訴你都在干什么
人人都需要知道 關(guān)于大數(shù)據(jù)最常見(jiàn)的10個(gè)問(wèn)題
從底層到應(yīng)用,那些數(shù)據(jù)人的必備技能
排名前50的開(kāi)源Web爬蟲(chóng)用于數(shù)據(jù)挖掘
33款可用來(lái)抓數(shù)據(jù)的開(kāi)源爬蟲(chóng)軟件工具
在中國(guó)我們?nèi)绾问占瘮?shù)據(jù)?全球數(shù)據(jù)收集大教程
PPT:數(shù)據(jù)可視化,到底該用什么軟件來(lái)展示數(shù)據(jù)?
干貨|電信運(yùn)營(yíng)商數(shù)據(jù)價(jià)值跨行業(yè)運(yùn)營(yíng)的現(xiàn)狀與思考
大數(shù)據(jù)分析的集中化之路 建設(shè)銀行大數(shù)據(jù)應(yīng)用實(shí)踐PPT
【實(shí)戰(zhàn)PPT】看工商銀行如何利用大數(shù)據(jù)洞察客戶心聲?
六步,讓你用Excel做出強(qiáng)大漂亮的數(shù)據(jù)地圖
數(shù)據(jù)商業(yè)的崛起 解密中國(guó)大數(shù)據(jù)第一股——國(guó)雙
雙11剁手幕后的阿里“黑科技” OceanBase/金融云架構(gòu)/ODPS/dataV
金融行業(yè)大數(shù)據(jù)用戶畫(huà)像實(shí)踐
“講述大數(shù)據(jù)在金融、電信、工業(yè)、商業(yè)、電子商務(wù)、網(wǎng)絡(luò)游戲、移動(dòng)互聯(lián)網(wǎng)等多個(gè)領(lǐng)域的應(yīng)用,以中立、客觀、專業(yè)、可信賴的態(tài)度,多層次、多維度地影響著最廣泛的大數(shù)據(jù)人群
36大數(shù)據(jù)
聯(lián)系客服