日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

 黃元章3355 2019-04-10

本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :

Understanding Neural Networks. From neuron to RNN, CNN, and Deep Learning

作者 | vibhor nigam

翻譯 | gezp123、Dylan的琴

校對(duì) | 鄧普斯·杰弗 審核 | 醬番梨 整理 | 立魚王

原文鏈接:

https:///understanding-neural-networks-from-neuron-to-rnn-cnn-and-deep-learning-cd88e90e0a90

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

神經(jīng)網(wǎng)絡(luò)是目前最流行的機(jī)器學(xué)習(xí)算法之一。隨著時(shí)間的推移,證明了神經(jīng)網(wǎng)絡(luò)在精度和速度方面,比其他的算法性能更好。并且形成了很多種類,像CNN(卷積神經(jīng)網(wǎng)絡(luò)),RNN,自編碼,深度學(xué)習(xí)等等。神經(jīng)網(wǎng)絡(luò)對(duì)于數(shù)據(jù)科學(xué)和或者機(jī)器學(xué)習(xí)從業(yè)者,就像線性回歸對(duì)于統(tǒng)計(jì)學(xué)家一樣。因此,對(duì)神經(jīng)網(wǎng)絡(luò)是什么有一個(gè)基本的理解是有必要的,比如,它是怎么構(gòu)成的,它能處理問(wèn)題的范圍以及它的局限性是什么。這篇文章嘗試去介紹神經(jīng)網(wǎng)絡(luò),從一個(gè)最基礎(chǔ)的構(gòu)件,即一個(gè)神經(jīng)元,深入到它的各種流行的種類,像CNN,RNN等。

神經(jīng)元是什么?

正如其名字所表明,神經(jīng)網(wǎng)絡(luò)的靈感來(lái)源于人類大腦的神經(jīng)結(jié)構(gòu),像在一個(gè)人類大腦中,最基本的構(gòu)件就叫做神經(jīng)元。它的功能和人的神經(jīng)元很相似,換句話說(shuō),它有一些輸入,然后給一個(gè)輸出。在數(shù)學(xué)上,在機(jī)器學(xué)習(xí)中的神經(jīng)元就是一個(gè)數(shù)學(xué)函數(shù)的占位符,它僅有的工作就是對(duì)輸入使用一個(gè)函數(shù),然后給一個(gè)輸出。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

這種神經(jīng)元中使用的函數(shù),在術(shù)語(yǔ)上通常叫做激活函數(shù)。主要的激活函數(shù)有5種,date,step,sigmoid,tanh和ReLU。這些都將在接下來(lái)進(jìn)行詳細(xì)地描述。

激活函數(shù)

階躍函數(shù)

階躍函數(shù)定義為

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

其中,如果x的值大于等于零,則輸出為1;如果x的值小于零,則輸出為0。我們可以看到階躍函數(shù)在零點(diǎn)是不可微的。目前,神經(jīng)網(wǎng)絡(luò)采用反向傳播法和梯度下降法來(lái)計(jì)算不同層的權(quán)重。由于階躍函數(shù)在零處是不可微的,因此它并不適用于梯度下降法,并且也不能應(yīng)用在更新權(quán)重的任務(wù)上。

為了克服這個(gè)問(wèn)題,我們引入了sigmoid函數(shù)。

Sigmoid函數(shù)

一個(gè)Sigmoid函數(shù)或者logistic函數(shù)的數(shù)學(xué)定義如下:

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

當(dāng)z或自變量趨于負(fù)無(wú)窮大時(shí),函數(shù)的值趨于零;當(dāng)z趨于正無(wú)窮大時(shí),函數(shù)的值趨于1。需要記住的是,該函數(shù)表示因變量行為的近似值,并且是一個(gè)假設(shè)?,F(xiàn)在問(wèn)題來(lái)了,為什么我們要用Sigmoid函數(shù)作為近似函數(shù)之一。這有一些簡(jiǎn)單的原因。

1. 它在可以捕獲數(shù)據(jù)的非線性。雖然是一個(gè)近似的形式,但非線性的概念是模型精確的重要本質(zhì)。

2. sigmoid函數(shù)在整個(gè)過(guò)程中是可微的,因此可以與梯度下降和反向傳播方法一起使用,以計(jì)算不同層的權(quán)重。

3. 假設(shè)一個(gè)因變量服從一個(gè)sigmoid函數(shù)的固有假設(shè)的高斯分布的自變量,這是一個(gè)一般分布,我們可以獲得許多隨機(jī)發(fā)生的事件,這是一個(gè)好的的一般分布開(kāi)始。

然而,sigmoid函數(shù)也面臨著梯度消失的問(wèn)題。從圖中可以看出,一個(gè)sigmoid函數(shù)將其輸入壓縮到一個(gè)非常小的輸出范圍[0,1],并具有非常陡峭的漸變。因此,輸入空間中仍然有很大的區(qū)域,即使是很大的變化也會(huì)在輸出中產(chǎn)生很小的變化。這被稱為梯度消失問(wèn)題。這個(gè)問(wèn)題隨著層數(shù)的增加而增加,從而使神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)停留在一定的水平上。

Tanh函數(shù)

Tanh(z)函數(shù)是sigmoid函數(shù)的縮放版本,它的輸出范圍變成了[-1,1],而不是[0,1].

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

在某些地方使用Tanh函數(shù)代替sigmoid函數(shù)的原因,通常是因?yàn)楫?dāng)數(shù)據(jù)分布在0周圍時(shí),其導(dǎo)數(shù)值更高。一個(gè)更高的梯度對(duì)于更好的學(xué)習(xí)速率更有幫助。下圖展示了兩個(gè)函數(shù)Tanh和sigmoid的梯度值圖像。

對(duì)于Tanh函數(shù),當(dāng)輸入在[-1,1]之間時(shí),得到導(dǎo)數(shù)值在[0.42,1]之間。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

另一方面,對(duì)于sigmoid函數(shù),當(dāng)輸入在[-1,1]之間時(shí),得到導(dǎo)數(shù)值在[0.20,0.25]之間。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

正如我們從上圖看到的,Tanh函數(shù)比Sigmoid函數(shù)具有更大范圍的導(dǎo)數(shù),因此具有一個(gè)更好的學(xué)習(xí)速率。然而在Tanh函數(shù)中,依然會(huì)出現(xiàn)梯度消失的問(wèn)題。

ReLU函數(shù)

在深度學(xué)習(xí)模型中,修正線性單元(ReLU)是最常用的激活函數(shù)。當(dāng)函數(shù)輸入負(fù)數(shù)時(shí),函數(shù)輸出0,對(duì)于任意正數(shù)x,函數(shù)輸出本身。因此它可以寫成f(x)=max(0,x)

其圖像看起來(lái)如下:

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

Leaky ReLU是一個(gè)其中最出名的一種變形,對(duì)于正數(shù)輸入,其輸出和ReLU一樣,但是對(duì)于所有負(fù)數(shù)輸出,不再是0,而是具有一個(gè)常數(shù)斜率(小于1).

  • 這個(gè)斜率是在構(gòu)建模型時(shí),需要使用者設(shè)置的參數(shù)。它通常被叫做alpha,例如,使用者設(shè)置alpha=0.3.這個(gè)激活函數(shù)則表示為f(x)=max(0.3x,x)。這具有一個(gè)理論優(yōu)點(diǎn),通過(guò)x在所有值處都能有一個(gè)影響,使得在x中包含的信息被充分利用。

激活函數(shù)還有有其他可以替代的選擇,但是對(duì)于從業(yè)者和研究人員,發(fā)現(xiàn)一般情況通過(guò)改變使用其他激活函數(shù)代替ReLU,并不能帶來(lái)足夠的收益。在平常實(shí)踐中,ReLU比Sigmoid或者tanh函數(shù)表現(xiàn)的更好。

神經(jīng)網(wǎng)絡(luò)

到目前為止,我們已經(jīng)介紹完了神經(jīng)元和激活函數(shù),它們一起是構(gòu)建任意神經(jīng)網(wǎng)絡(luò)的基本構(gòu)件。現(xiàn)在,我們更深入的了解什么是神經(jīng)網(wǎng)絡(luò),以及它們不同的種類。我強(qiáng)烈的建議你,如果對(duì)于神經(jīng)元和激活函數(shù)有任何的疑惑,回過(guò)頭去復(fù)習(xí)一下它們。

在理解一個(gè)神經(jīng)網(wǎng)絡(luò)之前,有必要去理解神經(jīng)網(wǎng)絡(luò)中的Layer(層),一層Layer是一組有輸入輸出的神經(jīng)元。每一個(gè)神經(jīng)元的輸入通過(guò)其所屬的激活函數(shù)處理,例如,這是一個(gè)小型神經(jīng)網(wǎng)絡(luò)。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

網(wǎng)絡(luò)的最左邊的layer叫做輸入層,最右邊的layer叫做輸出層(在這個(gè)例子中,只有一個(gè)節(jié)點(diǎn))。中間的layer叫做隱藏層,因?yàn)槠渲挡荒茉谟?xùn)練集中觀察到。我們也可以說(shuō),我們的神經(jīng)網(wǎng)絡(luò)例子,具有3個(gè)輸入單元(不包括偏置單元),3個(gè)隱藏單元,1個(gè)輸出單元。

任何神經(jīng)網(wǎng)絡(luò)都至少包含1個(gè)輸入層和1個(gè)輸出層。隱藏層的數(shù)量在不同的網(wǎng)絡(luò)中不同,取決于待解決問(wèn)題的復(fù)雜度。

另一個(gè)需要做筆記的重點(diǎn)是每一個(gè)隱藏層可以有一個(gè)不同的激活函數(shù),例如,在同一個(gè)神經(jīng)網(wǎng)絡(luò)中,隱藏層layer1可能使用sigmoid函數(shù),隱藏層layer2可能使用ReLU,后續(xù)的隱藏層layer3使用Tanh。激活函數(shù)的選擇取決于待解決的問(wèn)題以及使用的數(shù)據(jù)的類型。

現(xiàn)在對(duì)于一個(gè)可以做精確預(yù)測(cè)的神經(jīng)網(wǎng)絡(luò),在其中每一層的每一個(gè)神經(jīng)元都學(xué)習(xí)到了確定的權(quán)值。學(xué)習(xí)權(quán)值的算法叫做反向傳播,其中的細(xì)節(jié)超過(guò)了本文的范圍。

具有超過(guò)一個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)通常被叫做深度神經(jīng)網(wǎng)絡(luò)。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)

卷積神經(jīng)網(wǎng)絡(luò)(CNN)是神經(jīng)網(wǎng)絡(luò)的一種,在計(jì)算機(jī)視覺(jué)領(lǐng)域應(yīng)用非常廣泛。它的名字來(lái)源于組成其隱藏層的種類。CNN的隱藏層通常包含卷積層,池化層,全連接層,以及歸一化層。這些層的名字簡(jiǎn)潔的表明了,使用了卷積和池化函數(shù)等作為激活函數(shù),而不是使用之前定義的普通激活函數(shù)。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

想要詳細(xì)的了解CNN,需要先理解什么是卷積和池化。這些概念都來(lái)源于計(jì)算機(jī)視覺(jué)領(lǐng)域,定義如下:

  • 卷積:卷積作用在兩個(gè)信號(hào)(1維)或者兩張圖片(2維)上:你可以認(rèn)為其中一個(gè)作為'輸入'信號(hào)(或圖片),另一個(gè)作為一個(gè)'濾波器'(也叫作kernel,核),然后生成第三個(gè)信號(hào)作為輸出。

  • 用非專業(yè)的表述,就是在輸入信號(hào)上使用一個(gè)濾波器。本質(zhì)上,使用一個(gè)kernel(核)乘以輸入信號(hào),得到調(diào)整后的輸出信號(hào)。數(shù)學(xué)上,兩個(gè)函數(shù)f和g的卷積定義如下:

這就是輸出函數(shù)和kernel(核)函數(shù)的點(diǎn)乘運(yùn)算。

在圖像處理案例中,可視化一個(gè)卷積核在整個(gè)圖片上滑動(dòng)是非常簡(jiǎn)單的,每個(gè)像素的值都是在這個(gè)過(guò)程中改變的。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

池化(pooling):池化是一個(gè)基于采樣的離散化處理。它的目標(biāo)是對(duì)輸入(圖片,隱藏層,輸出矩陣等)進(jìn)行下采樣,來(lái)減小輸入的維度,并且包含局部區(qū)域的特征。

  • 有兩個(gè)主要的池化種類,max和min pooling。正如其名字表明的,max pooling是在選擇區(qū)域選擇中最大值,min pooling是在選擇區(qū)域中選擇最小值。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

因此,正如我們所看到的,卷積神經(jīng)網(wǎng)絡(luò)CNN是一個(gè)基本的深度神經(jīng)網(wǎng)絡(luò),它包含多個(gè)隱藏層,除之前介紹的非線性激活函數(shù)之外,這些層還使用了卷積和池化函數(shù)。

更多詳情可以在以下網(wǎng)站找到:

http://colah./posts/2014-07-Conv-Nets-Modular/

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN,正如其名,是一個(gè)非常重要的神經(jīng)網(wǎng)絡(luò)種類,在自然語(yǔ)言處理領(lǐng)域應(yīng)用非常廣泛。在一個(gè)普通的神經(jīng)網(wǎng)絡(luò)中,一個(gè)輸入通過(guò)很多層的處理后,得到一個(gè)輸出,假設(shè)了兩個(gè)連續(xù)的輸入是互相獨(dú)立不相關(guān)的。

然而這個(gè)假設(shè)在許多生活中的情節(jié)并不成立。例如,如果一個(gè)人相應(yīng)預(yù)測(cè)一個(gè)給定時(shí)間的股票的價(jià)格,或者相應(yīng)預(yù)測(cè)一個(gè)句子中的下一個(gè)單詞,考慮與之前觀測(cè)信息的依賴是有必要的。

RNNs被叫做循環(huán),因?yàn)樗鼈儗?duì)于一個(gè)序列中的每一個(gè)元素執(zhí)行相同的任務(wù),它們的輸出依賴于之前的計(jì)算。另一個(gè)理解RNN的角度是,認(rèn)為它們有'記憶',能夠捕捉到到目前為止的計(jì)算信息。理論上,RNN能夠充分利用任意長(zhǎng)序列中的信息,但是實(shí)踐上,它們被限制在可以回顧僅僅一些步驟。

結(jié)構(gòu)展示,一個(gè)RNN如下圖所示。它可以想象成一個(gè)多層神經(jīng)網(wǎng)絡(luò),每一層代表每一個(gè)確定時(shí)刻t的觀測(cè)。

理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)

RNN在自然語(yǔ)言處理上展現(xiàn)了非常巨大的成功,尤其是它們的變種LSTM,它可以比RNN回顧得更多的。如果你對(duì)LSTM感興趣,我建議你參考一下文章:

http://colah./posts/2015-08-Understanding-LSTMs/

在這篇文章中,我嘗試去全面的介紹神經(jīng)網(wǎng)絡(luò),從最基本的結(jié)構(gòu),一個(gè)神經(jīng)元,到最有效的神經(jīng)網(wǎng)絡(luò)類型。這篇文章的目標(biāo)是使更多的的讀者了解神經(jīng)網(wǎng)絡(luò)如何從0開(kāi)始構(gòu)建,它被應(yīng)用在哪一些領(lǐng)域,以及它的一些最成功的種類有哪些。

我明白有還有很多其他流行的神經(jīng)網(wǎng)絡(luò)種類,將打算在下一篇文章中涉及,如果你想要早一點(diǎn)覆蓋到某些主題,請(qǐng)向我建議。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

參考:

  • http://ufldl./wiki/index.php/Neural_Networks

  • https://stats./questions/101560/tanh-activation-function-vs-sigmoid-activation-function

  • https://www./dansbecker/rectified-linear-units-relu-in-deep-learning

  • http://ufldl./tutorial/supervised/MultiLayerNeuralNetworks/

  • https://www.cs./courses/cs1114/2013sp/sections/S06_convolution.pdf

  • http:///computer_vision/basics/convolution/image_convolution_1.html

  • http://www./2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/

想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?

點(diǎn)擊理解神經(jīng)網(wǎng)絡(luò):從神經(jīng)元到RNN、CNN、深度學(xué)習(xí)】即可訪問(wèn):

https://ai./page/TextTranslation/1580

AI入門、大數(shù)據(jù)、機(jī)器學(xué)習(xí)免費(fèi)教程

35本世界頂級(jí)原本教程限時(shí)開(kāi)放,這類書單由知名數(shù)據(jù)科學(xué)網(wǎng)站 KDnuggets 的副主編,同時(shí)也是資深的數(shù)據(jù)科學(xué)家、深度學(xué)習(xí)技術(shù)愛(ài)好者的Matthew Mayo推薦,他在機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)領(lǐng)域具有豐富的科研和從業(yè)經(jīng)驗(yàn)。

點(diǎn)擊鏈接即可獲取:https://ai./page/resourceDetail/417

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多