日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习中的深度前馈网络简介

發(fā)布時間:2023/12/14 pytorch 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习中的深度前馈网络简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?幾乎所有的深度學習算法都可以被描述為一個相當簡單的配方:特定的數(shù)據(jù)集、代價函數(shù)、優(yōu)化過程和模型

????????在大多數(shù)情況下,優(yōu)化算法可以定義為求解代價函數(shù)梯度為零的正規(guī)方程。我們可以替換獨立于其它組件的大多數(shù)組件,因此我們能得到很多不同的算法。

??????? 通常代價函數(shù)至少含有一項使學習過程進行統(tǒng)計估計的成分。最常見的代價函數(shù)是負對數(shù)似然、最小化代價函數(shù)導致的最大似然估計。代價函數(shù)也可能含有附加項,如正則化項

??????? 組合模型、代價和優(yōu)化算法來構(gòu)建學習算法的配方同時適用于監(jiān)督學習和無監(jiān)督學習。

??????? 在某些情況下,由于計算原因,我們不能實際計算代價函數(shù)。在這種情況下,只要我們有近似其梯度的方法,那么我們?nèi)匀豢梢允褂玫鷶?shù)值優(yōu)化近似最小化目標。

??????? 盡管有時候不顯然,但大多數(shù)學習算法都用到了上述配方。如果一個機器學習算法看上去特別獨特或是手動設計的,那么通常需要使用特殊的優(yōu)化方法進行求解。有些模型,如決策樹或k-均值,需要特殊的優(yōu)化,因為它們的代價函數(shù)有平坦的區(qū)域,使其不適合通過基于梯度的優(yōu)化去最小化。

?

????????深度前饋網(wǎng)絡(deep feedforward network),也叫做前饋神經(jīng)網(wǎng)絡(feedforward neurnal network)或者多層感知機(multilayer perceptron, MLP),是典型的深度學習模型。前饋網(wǎng)絡的目標是近似某個函數(shù)f*。例如,對于分類器,y=f*(x)將輸入x映射到一個類別y。前饋網(wǎng)絡定義了一個映射y=f(x;θ),并且學習參數(shù)θ的值,使它能夠得到最佳的函數(shù)近似。在前饋神經(jīng)網(wǎng)絡內(nèi)部,參數(shù)從輸入層向輸出層單向傳播,有異于遞歸神經(jīng)網(wǎng)絡,它的內(nèi)部不會構(gòu)成有向環(huán)

????????這種模型被稱為前向(feedforward)的,是因為信息流過x的函數(shù),流經(jīng)用于定義f的中間計算過程,最終到達輸出y。在模型的輸出和模型本身之間沒有反饋(feedback)連接。當前饋神經(jīng)網(wǎng)絡被擴展成包含反饋連接時,它們被稱為循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network)。

????????前饋神經(jīng)網(wǎng)絡被稱作網(wǎng)絡(network)是因為它們通常用許多不同函數(shù)復合在一起來表示。該模型與一個有向無環(huán)圖相關聯(lián),而圖描述了函數(shù)是如何復合在一起的。例如,我們有三個函數(shù)f(1),f(2)和f(3)連接在一個鏈上以形成f(x)=f(3)(f(2)(f(1)(x)))。這些鏈式結(jié)構(gòu)是神經(jīng)網(wǎng)絡中最常用的結(jié)構(gòu)。在這種情況下,f(1)被稱為網(wǎng)絡的第一層(first layer),f(2)被稱為第二層(second layer),依此類推。鏈的全長稱為模型的深度(depth)。正是因為這個術語才出現(xiàn)了”深度學習”這個名字。前饋網(wǎng)絡的最后一層被稱為輸出層(output layer)。在神經(jīng)網(wǎng)絡訓練的過程中,我們讓f(x)去匹配f*(x)的值。訓練數(shù)據(jù)為我們提供了在不同訓練點上取值的、含有噪聲的f*(x)的近似實例。每個樣本x都伴隨著一個標簽y≈f*(x)。訓練樣本直接指明了輸出層在每一點x上必須做什么,它必須產(chǎn)生一個接近y的值。但是訓練數(shù)據(jù)并沒有指明其它層應該怎么做。學習算法必須決定如何使用這些層來產(chǎn)生想要的輸出,但是訓練數(shù)據(jù)并沒有說每個單獨的層應該做什么。相反,學習算法必須決定如何使用這些層來最好地實現(xiàn)f*的近似。因為訓練數(shù)據(jù)并沒有給出這些層中的每一層所需的輸出,所以這些層被稱為隱藏層(hidden layer)。

????????最后,這些網(wǎng)絡被稱為神經(jīng)網(wǎng)絡是因為它們或多或少地受到神經(jīng)科學的啟發(fā)。網(wǎng)絡中的每個隱藏層通常都是向量值的。這些隱藏層的維數(shù)決定了模型的寬度(width)。向量的每個元素都可以被視為起到類似一個神經(jīng)元的作用。除了將層想象成向量到向量的單個函數(shù),我們也可以把層想象成由許多并行操作的單元(unit)組成,每個單元表示一個向量到標量的函數(shù)。每個單元在某種意義上類似一個神經(jīng)元,它接收的輸入來源于許多其它的單元,并計算它自己的激活值。使用多層向量值表示的想法來源于神經(jīng)科學。用于計算這些表示的函數(shù)f(i)(x)的選擇,也或多或少地受到神經(jīng)科學觀測的指引,這些觀測是關于生物神經(jīng)元計算功能的。然而,現(xiàn)代的神經(jīng)網(wǎng)絡研究受到更多的是來自許多數(shù)學和工程學科的指引,并且神經(jīng)網(wǎng)絡的目標并不是完美地給大腦建模。我們最好將前饋神經(jīng)網(wǎng)絡想成是為了實現(xiàn)統(tǒng)計泛化而設計出的函數(shù)近似機,它偶爾從我們了解的大腦中提取靈感,但并不是大腦功能的模型。

????????基于梯度的學習:梯度下降算法的收斂點取決于參數(shù)的初始值。線性模型和神經(jīng)網(wǎng)絡的最大區(qū)別,在于神經(jīng)網(wǎng)絡的非線性導致大多數(shù)我們感興趣的代價函數(shù)都變得非凸。這意味著神經(jīng)網(wǎng)絡的訓練通常使用迭代的、基于梯度的優(yōu)化,僅僅使得代價函數(shù)達到一個非常小的值;而不是像用于訓練線性回歸模型的線性方程求解器,或者用于訓練邏輯回歸或SVM的凸優(yōu)化算法那樣保證全局收斂。凸優(yōu)化從任何一種初始參數(shù)出發(fā)都會收斂(理論上如此,在實踐中也很魯棒但可能會遇到數(shù)值問題)。用于非凸損失函數(shù)的隨機梯度下降沒有這種收斂性保證,并且對參數(shù)的初始值很敏感。對于前饋神經(jīng)網(wǎng)絡,將所有的權(quán)重值初始化為小隨機數(shù)是很重要的。偏置可以初始化為零或者小的正值

????????我們當然也可以用梯度下降來訓練諸如線性回歸和支持向量機之類的模型,并且事實上當訓練集相當大時這是很常用的。從這點來看,訓練神經(jīng)網(wǎng)絡和訓練其它任何模型沒有太大區(qū)別。

????????和其它的機器學習模型一樣,為了使用基于梯度的學習方法我們必須選擇一個代價函數(shù),并且我們必須選擇如何表示模型的輸出

????????代價函數(shù):深度神經(jīng)網(wǎng)絡設計中的一個重要方面是代價函數(shù)的選擇。用于訓練神經(jīng)網(wǎng)絡的完整的代價函數(shù),通常在我們這里描述的基本代價函數(shù)的基礎上結(jié)合一個正則項

????????大多數(shù)現(xiàn)代的神經(jīng)網(wǎng)絡使用最大似然來訓練。這意味著代價函數(shù)就是負的對數(shù)似然,它與訓練數(shù)據(jù)和模型分布間的交叉熵等價。代價函數(shù)的具體形式隨著模型而改變

????????在信息論中,交叉熵是表示兩個概率分布p,q,其中p表示真實分布,q表示非真實分布,在相同的一組事件中,其中用非真實分布q來表示某個事件發(fā)生所需要的平均比特數(shù)。交叉熵可在神經(jīng)網(wǎng)絡(機器學習)中作為損失函數(shù),p表示真實標記的分布,q則為訓練后的模型的預測標記分布,交叉熵損失函數(shù)可以衡量p與q的相似性。

????????使用最大似然來導出代價函數(shù)的方法的一個優(yōu)勢是,它減輕了為每個模型設計代價函數(shù)的負擔。明確一個模型p(y|x)則自動地確定了一個代價函數(shù)logp(y|x)。代價函數(shù)的梯度必須足夠的大和具有足夠的預測性,來為學習算法提供一個好的指引。

????????用于實現(xiàn)最大似然估計的交叉熵代價函數(shù)有一個不同尋常的特性,那就是當它被應用于實踐中經(jīng)常遇到的模型時,它通常沒有最小值。對于離散型輸出變量,大多數(shù)模型以一種特殊的形式來參數(shù)化,即它們不能表示概率零和一,但是可以無限接近。邏輯回歸是其中一個例子。

????????均方誤差和平均絕對誤差在使用基于梯度的優(yōu)化方法時往往成效不佳。一些飽和的輸出單元當結(jié)合這些代價函數(shù)時會產(chǎn)生非常小的梯度。這就是為什么交叉熵代價函數(shù)比均方誤差或者平均絕對誤差更受歡迎的原因之一。

????????輸出單元:代價函數(shù)的選擇與輸出單元的選擇緊密相關。大多數(shù)時候,我們簡單地使用數(shù)據(jù)分布和模型分布間的交叉熵。選擇如何表示輸出決定了交叉熵函數(shù)的形式。任何可用作輸出的神經(jīng)網(wǎng)絡單元,也可以被用作隱藏單元。

用于高斯輸出分布的線性單元:一種簡單的輸出單元是基于仿射變換的輸出單元,仿射變換不具有非線性。這些單元往往被直接稱為線性單元。因為線性模型不會飽和,所以它們易于采用基于梯度的優(yōu)化算法,甚至可以使用其它多種優(yōu)化算法。

????????隱藏單元大多數(shù)的隱藏單元可以描述為接受輸入向量x,計算仿射變換z=wTx+b,然后使用一個逐元素的非線性函數(shù)g(z)。大多數(shù)隱藏單元的區(qū)別僅僅在于激活函數(shù)g(z)的形式

????????整流線性單元(Rectified Linear Unit, ReLU)是隱藏單元極好的默認選擇。許多其它類型的隱藏單元也是可用的。整流線性單元使用激活函數(shù)g(z)=max{0,z}。在z=0處不可微。不可微的隱藏單元通常只在少數(shù)點上不可微。整流線性單元易于優(yōu)化,因為它們和線性單元非常類似。線性單元和整流線性單元的唯一區(qū)別在于整流線性單元在其一半的定義域上輸出為零。這使得只要整流線性單元處于激活狀態(tài),它的導數(shù)都能保持較大。它的梯度不僅大而且一致。整流操作的二階導數(shù)幾乎處處為0,并且在整流線性單元處于激活狀態(tài)時,它的一階導數(shù)處處為1。這意味著相比于引入二階效應的激活函數(shù)來說,它的梯度方向?qū)τ趯W習來說更加有用。

????????有很多整流線性單元的擴展存在。整流線性單元的一個缺陷是它們不能通過基于梯度的方法學習那些使它們激活為零的樣本。整流線性單元的各種擴展保證了它們能在各個位置都接收到梯度。ReLU的擴展:Leaky Rectified Linear Unit(Leaky ReLU)、Parameteric Rectified Linear Unit(PReLU)、Randomized Leaky ReLU(RReLU)、Noisy ReLU、Maxout。

????????線性整流函數(shù)(Rectified Linear Unit, ReLU),又稱修正線性單元, 是一種人工神經(jīng)網(wǎng)絡中常用的激活函數(shù)(activationfunction),通常指代以斜坡函數(shù)及其變種為代表的非線性函數(shù)。線性整流被認為有一定的生物學原理,并且由于在實踐中通常有著比其他常用激活函數(shù)(譬如邏輯函數(shù))更好的效果,而被如今的深度神經(jīng)網(wǎng)絡廣泛使用于諸如圖像識別等計算機視覺人工智能領域。

????????通常意義下,線性整流函數(shù)指代數(shù)學中的斜坡函數(shù),即f(x)=max(0,x),而在神經(jīng)網(wǎng)絡中,線性整流作為神經(jīng)元的激活函數(shù),定義了該神經(jīng)元在線性變換wTx+b之后的非線性輸出結(jié)果。換言之,對于進入神經(jīng)元的來自上一層神經(jīng)網(wǎng)絡的輸入向量x,使用線性整流激活函數(shù)的神經(jīng)元會輸出max(0, wTx+b)至下一層神經(jīng)元或作為整個神經(jīng)網(wǎng)絡的輸出(取決現(xiàn)神經(jīng)元在網(wǎng)絡結(jié)構(gòu)中所處位置)。

????????使用ReLU的優(yōu)勢:相比于傳統(tǒng)的神經(jīng)網(wǎng)絡激活函數(shù),諸如邏輯函數(shù)(Logistic sigmoid)和tanh等雙曲函數(shù),線性整流函數(shù)有著以下幾方面的優(yōu)勢:

????????(1)、仿生物學原理:相關大腦方面的研究表明生物神經(jīng)元的信息編碼通常是比較分散及稀疏的。通常情況下,大腦中在同一時間大概只有1%-4%的神經(jīng)元處于活躍狀態(tài)。使用線性修正以及正則化(regularization)可以對機器神經(jīng)網(wǎng)絡中神經(jīng)元的活躍度(即輸出為正值)進行調(diào)試;相比之下,邏輯函數(shù)在輸入為0時達到1/2,即已經(jīng)是半飽和的穩(wěn)定狀態(tài),不夠符合實際生物學對模擬神經(jīng)網(wǎng)絡的期望。不過需要指出的是,一般情況下,在一個使用修正線性單元(即線性整流)的神經(jīng)網(wǎng)絡中大概有50%的神經(jīng)元處于激活態(tài)。

????????(2)、更加有效率的梯度下降以及反向傳播:避免了梯度爆炸和梯度消失問題。

????????(3)、簡化計算過程:沒有了其他復雜激活函數(shù)中諸如指數(shù)函數(shù)的影響;同時活躍度的分散性使得神經(jīng)網(wǎng)絡整體計算成本下降。

??????? 整流線性單元和它們的這些擴展都是基于一個原則,那就是如果它們的行為更接近線性,那么模型更容易優(yōu)化。使用線性行為更容易優(yōu)化的一般性原則同樣也適用于除深度線性網(wǎng)絡以外的情景。

??????? 隱藏單元的設計仍然是一個活躍的研究領域,許多有用的隱藏單元類型仍有待發(fā)現(xiàn)。

????????架構(gòu)設計架構(gòu)(architecture)是指網(wǎng)絡的整體架構(gòu):它應該具有多少單元,以及這些單元應該如何連接

??????? 大多數(shù)神經(jīng)網(wǎng)絡被組織成稱為層的單元組。大多數(shù)神經(jīng)網(wǎng)絡架構(gòu)將這些層布置成鏈式結(jié)構(gòu),其中每一層都是前一層的函數(shù)。在這種結(jié)構(gòu)中,第一層由下式給出:h(1)=g(1)(W(1)Tx+b(1));第二層由h(2)=g(2)(W(2)Th(1)+b(2));給出,依次類推

??????? 在這些鏈式架構(gòu)中,主要的架構(gòu)考慮是選擇網(wǎng)絡的深度和每一層的寬度。即使只有一個隱藏層的網(wǎng)絡也足夠適應訓練集。更深層的網(wǎng)絡通常能夠?qū)γ恳粚邮褂酶俚膯卧獢?shù)和更少的參數(shù),并且經(jīng)常容易泛化到測試集,但是通常也更難以優(yōu)化。對于一個具體的任務,理想的網(wǎng)絡架構(gòu)必須通過實驗,觀測在驗證集上的誤差來找到。

??????? 線性模型,通過矩陣乘法將特征映射到輸出,顧名思義,僅能表示線性函數(shù)。它具有易于訓練的優(yōu)點,因為當使用線性模型時,許多損失函數(shù)會導出凸優(yōu)化問題。不幸的是,我們經(jīng)常希望我們的系統(tǒng)學習非線性函數(shù)。

??????? 具有隱藏層的前饋網(wǎng)絡提供了一種萬能近似框架。具體來說,萬能近似定理(universal approximation theorem)表明,一個前饋神經(jīng)網(wǎng)絡如果具有線性輸出層和至少一層具有任何一種”擠壓”性質(zhì)的激活函數(shù)(例如logistic sigmoid激活函數(shù))的隱藏層,只要給予網(wǎng)絡足夠數(shù)量的隱藏單元,它可以以任意的精度來近似任何從一個有限維空間到另一個有限維空間的Borel可測函數(shù)。定義在Rn的有界閉集上的任意連續(xù)函數(shù)是Borel可測的,因此可以用神經(jīng)網(wǎng)絡來近似。神經(jīng)網(wǎng)絡也可以近似從任何有限維離散空間映射到另一個的任意函數(shù)。雖然原始定理最初以具有特殊激活函數(shù)的單元的形式來描述,這個激活函數(shù)當變量取絕對值非常大的正值和負值時都會飽和,萬能近似定理也已經(jīng)被證明對于更廣泛類別的激活函數(shù)也是適用的,其中就包括現(xiàn)在常用的整流線性單元。

??????? 萬能近似定理意味著無論我們試圖學習什么函數(shù),我們知道一個大的MLP一定能夠表示這個函數(shù)。然而,我們不能保證訓練算法能夠?qū)W得這個函數(shù)。即使MLP能夠表示該函數(shù),學習也可能因兩個不同的原因而失敗。首先,用于訓練的優(yōu)化算法可能找不到用于期望函數(shù)的參數(shù)值。其次,訓練算法可能由于過擬合而選擇了錯誤的函數(shù)。前饋網(wǎng)絡提供了表示函數(shù)的萬能系統(tǒng),在這種意義上,給定一個函數(shù),存在一個前饋網(wǎng)絡能夠近似該函數(shù)。不存在萬能的過程既能夠驗證訓練集上的特殊樣本,又能夠選擇一個函數(shù)來擴展到訓練集上沒有的點。萬能近似定理說明了,存在一個足夠大的網(wǎng)絡能夠達到我們所希望的任意精度,但是這個網(wǎng)絡并沒有說這個網(wǎng)絡有多大。具有單層的前饋網(wǎng)絡足以表示任何函數(shù),但是網(wǎng)絡層可能大得不可實現(xiàn),并且可能無法正確地學習和泛化。在很多情況下,使用更深的模型能夠減少表示期望函數(shù)所需的單元的數(shù)量,并且可以減少泛化誤差。根據(jù)經(jīng)驗,更深的模型似乎確實在廣泛的任務中泛化得更好。

????????反向傳播:當我們使用前饋神經(jīng)網(wǎng)絡接收輸入x并產(chǎn)生輸出y’時,信息通過網(wǎng)絡向前流動。輸入x提供初始信息,然后傳播到每一層的隱藏單元,最終產(chǎn)生輸出y’。這稱之為前向傳播(forward propagation)。在訓練過程中,前向傳播可以持續(xù)向前直到它產(chǎn)生一個標量代價函數(shù)J(θ)。反向傳播(back propagation)算法,經(jīng)常簡稱為backprop,允許來自代價函數(shù)的信息通過網(wǎng)絡向后流動,以便計算梯度。實際上,反向傳播僅指用于計算梯度的方法,例如隨機梯度下降,使用該梯度來進行學習。反向傳播原則上它可以計算任何函數(shù)的導數(shù)(對于一些函數(shù),正確的響應是報告函數(shù)的導數(shù)是未定義的)。

????????微積分中的鏈式法則:用于計算復合函數(shù)的導數(shù)。反向傳播是一種計算鏈式法則的算法,使用高效的特定運算順序。

????????設x是實數(shù),f和g是從實數(shù)映射到實數(shù)的函數(shù)。假設y=g(x)并且z=f(g(x))=f(y).那么鏈式法則是說:

????????我們可以將這種標量情況進行擴展。假設x∈Rm,y∈Rn,g是從Rm到Rn的映射,f是從Rn到R的映射。如果y=g(x)并且z=f(y),那么:

????????使用向量記法,可以等價地寫成:

????????這里dy/dx是g的n*m的Jacobian矩陣。從這里看到,變量x的梯度可以通過Jacobian矩陣dy/dx和梯度▽yz相乘來得到。反向傳播算法由圖中每一個這樣的Jacobian梯度的乘積操作所組成。通常我們將反向傳播算法應用于任意維度的張量,而不僅僅用于向量。從概念上講,這與使用向量的反向傳播完全相同。唯一的區(qū)別是如何將數(shù)字排列成網(wǎng)格以形成張量。我們可以想象,在我們運行反向傳播之前,將每個張量變平為一個向量,計算一個向量值梯度,然后將該梯度重新構(gòu)造成一個張量。從這種重新排列的觀點上看,反向傳播仍然只是將Jacobian乘以梯度。

????????為了表示值z關于張量X的梯度,我們記為▽Xz,就像X是向量一樣。X的索引現(xiàn)在有多個坐標,例如,一個3維的張量由三個坐標索引。我們可以通過使用單個變量i來表示完整的索引元組,從而完全抽象出來。對所有可能的元組i,(▽Xz)i給出dz/dXi.這與向量中索引的方式完全一致,(▽xz)i給出dz/dxi。使用這種記法,我們可以寫出適用于張量的鏈式法則。如果Y=g(X)并且z=f(Y),那么:

????????遞歸地使用鏈式法則來實現(xiàn)反向傳播:使用鏈式法則,我們可以直接寫出某個標量關于計算圖中任何產(chǎn)生該標量的節(jié)點的梯度的代數(shù)表達式。然而,實際在計算機中計算該表達式時會引入一些額外的考慮。具體來說,許多子表達式可能在梯度的整個表達式中重復若干次。任何計算梯度的程序都需要選擇是存儲這些子表達式還是重新計算它們幾次。在某些情況下,計算兩次相同的子表達式純粹是浪費。在復雜圖中,可能存在指數(shù)多的這種計算上的浪費,使得簡單的鏈式法則不可實現(xiàn)。在其它情況下,計算兩次相同的子表達式可能是以較高的運行時間為代價來減少內(nèi)存開銷的有效手段。

????????張量通常可以具有任意維度,并且包含標量、向量和矩陣。

????????反向傳播算法的軟件實現(xiàn)通常提供操作和其bprop方法,所以深度學習軟件庫的用戶能夠?qū)κ褂弥T如矩陣乘法、指數(shù)運算、對數(shù)運算等等常用操作構(gòu)建的圖進行反向傳播。反向傳播不是計算梯度的唯一方式或最佳方式,但它是一個非常實用的方法。

????????前饋網(wǎng)絡可以被視為一種高效的非線性函數(shù)近似器,它以使用梯度下降來最小化函數(shù)近似誤差為基礎。

????????反向傳播(Backpropagation,縮寫為BP)是”誤差反向傳播”的簡稱,是一種與最優(yōu)化方法(如梯度下降法)結(jié)合使用的,用來訓練人工神經(jīng)網(wǎng)絡的常見方法。該方法對網(wǎng)絡中所有權(quán)重計算損失函數(shù)的梯度。這個梯度會反饋給最優(yōu)化方法,用來更新權(quán)值以最小化損失函數(shù)。反向傳播要求有對每個輸入值想得到的已知輸出,來計算損失函數(shù)梯度。因此,它通常被認為是一種監(jiān)督式學習方法,雖然它也用在一些無監(jiān)督網(wǎng)絡(如自動編碼器)中。反向傳播要求人工神經(jīng)元(或”節(jié)點”)的激活函數(shù)可微。

????????任何監(jiān)督學習算法的目標是找到一個能把一組輸入最好的映射到其正確的輸出的函數(shù)。例如一個簡單的分類任務,其中輸入是動物的圖像,正確的輸出將是動物的名稱。一些輸入和輸出模式可以很容易地通過單層神經(jīng)網(wǎng)絡(如感知器)學習。但是這些單層的感知機不能學習一些比較簡單的模式,例如那些非線性可分的模式。例如,人可以通過識別動物的圖像的某些特征進行分類,例如肢的數(shù)目,皮膚的紋理(無論是毛皮,羽毛,鱗片等),該動物的體型,以及種種其他特征。但是,單層神經(jīng)網(wǎng)絡必須僅僅使用圖像中的像素的強度來學習一個輸出一個標簽函數(shù)。因為它被限制為僅具有一個層,所以沒有辦法從輸入中學習到任何抽象特征。多層的網(wǎng)絡克服了這一限制,因為它可以創(chuàng)建內(nèi)部表示,并在每一層學習不同的特征。第一層可能負責從圖像的單個像素的輸入學習線條的走向。第二層可能就會結(jié)合第一層所學并學習識別簡單形狀(如圓形)。每升高一層就學習越來越多的抽象特征,如上文提到的用來圖像分類。每一層都是從它下方的層中找到模式,就是這種能力創(chuàng)建了獨立于為多層網(wǎng)絡提供能量的外界輸入的內(nèi)部表達形式。 反向傳播算法的發(fā)展的目標和動機是找到一種訓練的多層神經(jīng)網(wǎng)絡的方法,于是它可以學習合適的內(nèi)部表達來讓它學習任意的輸入到輸出的映射

????????反向傳播算法(BP算法)主要由兩個階段:激勵傳播與權(quán)重更新。

????????第1階段:激勵傳播:

????????每次迭代中的傳播環(huán)節(jié)包含兩步:(前向傳播階段)將訓練輸入送入網(wǎng)絡以獲得激勵響應;(反向傳播階段)將激勵響應同訓練輸入對應的目標輸出求差,從而獲得隱層和輸出層的響應誤差。

????????第2階段:權(quán)重更新:

????????對于每個突觸上的權(quán)重,按照以下步驟進行更新:將輸入激勵和響應誤差相乘,從而獲得權(quán)重的梯度;將這個梯度乘上一個比例并取反后加到權(quán)重上。

????????這個比例(百分比)將會影響到訓練過程的速度和效果,因此稱為”訓練因子”。梯度的方向指明了誤差擴大的方向,因此在更新權(quán)重的時候需要對其取反,從而減小權(quán)重引起的誤差。

????????第1和第2階段可以反復循環(huán)迭代,直到網(wǎng)絡的對輸入的響應達到滿意的預定的目標范圍為止。

????? ? 以上內(nèi)容主要摘自:?《深度學習中文版》?、?維基百科

????? ? GitHub:? https://github.com/fengbingchun/NN_Test?

--------------------- 本文來自 fengbingchun 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/fengbingchun/article/details/79881847?utm_source=copy

總結(jié)

以上是生活随笔為你收集整理的深度学习中的深度前馈网络简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。