深度學習能夠訓練計算機來執(zhí)行人類的任務,例如:識別語音,辨認圖像或進行預測等。 不同于用定義好的方程處理數(shù)據(jù)的傳統(tǒng)模式,深度學習設置好關于數(shù)據(jù)的基本參數(shù),并訓練計算機自己進行學習。
為了使應用程序能夠理解用戶的輸入并同樣以人類的形式做出反饋,研究人員對作為認知計算的基石之一的深度學習進行了大量的研究。到如今,深度學習技術已經(jīng)極大的增強了計算機分類、辨識、發(fā)現(xiàn)與描述的能力,或者說增強了其理解的能力。 很多應用已經(jīng)被用在處理非數(shù)字化的數(shù)據(jù),例如:圖像分類、語音識別、物品檢測和內(nèi)容描述。像 Siri 和 Cortana 的系統(tǒng)也要歸功于基于深度機器學習的認知計算。
深度學習取得的進步得力于一些技術的發(fā)展。算法的改善提高了深度學習方法的性能,機器學習準確性的提高創(chuàng)造了巨大的商業(yè)價值。完美適用于文本翻譯和圖像分類應用的新型神經(jīng)網(wǎng)絡也已經(jīng)得到實現(xiàn)。
盡管神經(jīng)網(wǎng)絡已經(jīng)存在近50年的時間,但是直到上世紀90年代末,由于可用于訓練的數(shù)據(jù)不足,一直無法得到精確的結(jié)論。革命性的轉(zhuǎn)機出現(xiàn)在最近10年:
與此同時,人機界面也得到了很大的進化。鼠標與鍵盤正在被手勢、動作、觸摸和自然語言所代替,認知計算迎來了新的發(fā)展契機。
深度學習算法的迭代性質(zhì)導致它們的復雜性會隨著層數(shù)加深而增加,網(wǎng)絡也需要龐大的數(shù)據(jù)量來進行訓練。自然,深度學習問題需要有龐大的計算能力進行支持。 傳統(tǒng)的建模方法是很好理解的,它們的預測方法和業(yè)務規(guī)則也很容易說明。而深度學習卻更像是一個黑箱方法。你可以通過用新數(shù)據(jù)訓練它們來證明它們運行正常。但是由于它們非線性的本質(zhì),為什么會得到一個特定的結(jié)果卻很難進行解釋。這種特性可能會對深度學習技術的實際應用造成一些阻力,在高度管制的工業(yè)生產(chǎn)中更是如此。
另一方面,基于學習方法的動態(tài)特性,它們能夠持續(xù)進行改進并適應基礎信息模式的變化,這種能力能夠在分析時引入更少的確定性,進行更動態(tài)行為的模擬。這一特性可以用在進行更個性化的用戶分析中。
趁計算能力發(fā)展的契機,長久以來部署的神經(jīng)網(wǎng)絡應用的準確性與性能也得到了很大的提高。有更好的算法和計算能力支持,它們的深度也能夠繼續(xù)增加。
外界看來,深度學習也許仍處于計算機科學家和數(shù)據(jù)專家們正在對其能力進行測試的研究階段,實際上,深度學習已經(jīng)有一些實際的商業(yè)應用,隨著研究的進行,更多的應用也將實現(xiàn)。目前主要的應用有:
深度學習將告訴電腦如何解決問題的傳統(tǒng)分析模式轉(zhuǎn)變?yōu)?strong>訓練電腦自己解決問題。
傳統(tǒng)模型建立的過程是使用手頭的數(shù)據(jù)來設計特征并導出新的變量,然后選擇一個分析模型,最后估計它的參數(shù)。因為結(jié)果的完整性和正確性基于模型的質(zhì)量和特征,這樣的預測系統(tǒng)并不容易推廣到其他問題上。例如:如果你想要開發(fā)一個具有特征工程的欺詐模型,從一組變量開始,使用數(shù)據(jù)轉(zhuǎn)換從這些變量中導出模型。你可能最終會得到模型依賴的30000個變量,接著就需要找出這些變量中哪些是有意義的,哪些沒有,等等。如果增加更多的數(shù)據(jù)你又要將這些重新來過。而應用深度學習的新方法是使用適當?shù)膶哟位卣魈鎿Q模型的公式和規(guī)范,并根據(jù)層中的規(guī)律識別出數(shù)據(jù)的隱藏特征。
深度學習的范式轉(zhuǎn)變是從特征工程到特征表示的轉(zhuǎn)變。使用深度學習可以開發(fā)出概括性強,適應性好,能使用新數(shù)據(jù)持續(xù)進行完善的系統(tǒng)。比建立在確定性業(yè)務規(guī)則上的預測系統(tǒng)更具動態(tài)性。我們不再是去適應一個模型,而是去訓練一個模型。
下面為大家介紹一個深度學習模型—卷積神經(jīng)網(wǎng)絡
卷積神經(jīng)網(wǎng)絡是模擬動物腦部視覺皮層而建立起來的,其特點是單個神經(jīng)元只響應某個特定區(qū)域的刺激。它的主要結(jié)構(gòu)包括卷積層,池化層,激活層,全連接層等。
1)卷積層 如圖所示,卷積層中一個神經(jīng)元能夠關聯(lián)輸入層的一小塊被稱為接收場的區(qū)域,想象一下在卷積層用一個手電照向輸入層,并在輸入層上進行滑動,它所照亮的區(qū)域就是接收場。這把手電同樣是由一組數(shù)據(jù)構(gòu)成,被稱作卷積核。 利用一個卷積核對輸入層的信息進行過濾,將對應位置的像素值相乘再累加就可以得到一個卷積結(jié)果,將卷積核依次劃過輸入層的所有數(shù)據(jù)后,就完成了一次對原始數(shù)據(jù)的加工。用公式可以描述為: 2)權值共享 假設使用一幅1000*1000大小的圖像作為網(wǎng)絡的輸入,此時輸入層上有1000000個像素,如果網(wǎng)絡的下一層也同樣有1000000個神經(jīng)元,采用全連接的方式時,每個神經(jīng)元均與輸入層的所有像素通過權值連接,此時網(wǎng)絡中參數(shù)的數(shù)量是10^12,可以想到完成這些需要相當龐大的計算量。 想想上面提過的感受野,如果我們讓每個神經(jīng)元只與輸入層的10*10個像素連接,此時參數(shù)的數(shù)量減少到了100*1000000。現(xiàn)在,讓我們的腦洞再大一點,如果所有的神經(jīng)元都是用同一組權值會怎么樣?當1000000個神經(jīng)元共用一組權值的時候,參數(shù)的數(shù)量變成了100個!當然,使用一個卷積核只能提取到原數(shù)據(jù)一部分的特征,要提取更多的特征,我們把卷積核的數(shù)量提高到100個,此時參數(shù)的數(shù)量是100*100=10000個。可以看到參數(shù)已經(jīng)較之前大大減少了!
3)池化層
池化層將輸入數(shù)據(jù)劃分為許多小的子區(qū)域,只提取每個子區(qū)域最大值的方法就稱為最大值池化。池化層的意義在于提取出數(shù)據(jù)中的“顯著特征”而忽略“細節(jié)特征”,以減少網(wǎng)絡中的參數(shù)和計算量,并且能夠控制過擬合。如圖所示即是最大值池化。 4)激活層 它的作用是使卷積計算結(jié)果中小于0的值等于0,其他的值保持不變。在不影響卷積層的接收場的同時增加了決策函數(shù)和整個網(wǎng)絡的非線性屬性。相較于其他激活函數(shù) Tanh:Sigmoid:
5)全連接層
全連接層一般放在網(wǎng)絡的最后,對前一層得到的高階特征進行分類。 本文作者:雷原嘉(點融黑幫),現(xiàn)就職于點融網(wǎng)工程部 Fincore TechOps 團隊,暴雪腦殘粉一枚。
|
|