新聞中心

EEPW首頁 > 智能計算 > 業(yè)界動態(tài) > 分析深度學(xué)習(xí)背后的數(shù)學(xué)思想

分析深度學(xué)習(xí)背后的數(shù)學(xué)思想

作者: 時間:2020-09-17 來源:人工智能科技時代 收藏

深度神經(jīng)網(wǎng)絡(luò)(DNN)本質(zhì)上是通過具有多個連接的感知器而形成的,其中感知器是單個神經(jīng)元??梢詫⑷斯ど窠?jīng)網(wǎng)絡(luò)(ANN)視為一個系統(tǒng),其中包含沿加權(quán)路徑饋入的一組輸入。然后處理這些輸入,并產(chǎn)生輸出以執(zhí)行某些任務(wù)。隨著時間的流逝,ANN“學(xué)習(xí)”了,并且開發(fā)了不同的路徑。各種路徑可能具有不同的權(quán)重,并且在模型中,比那些產(chǎn)生較少的理想結(jié)果的路徑,以及被發(fā)現(xiàn)更重要(或產(chǎn)生更理想的結(jié)果)的路徑分配了更高的權(quán)重。

本文引用地址:http://butianyuan.cn/article/202009/418420.htm

在DNN中,如果所有輸入都密集連接到所有輸出,則這些層稱為密集層。此外,DNN可以包含多個隱藏層。隱藏層基本上是神經(jīng)網(wǎng)絡(luò)輸入和輸出之間的點,激活函數(shù)對輸入的信息進行轉(zhuǎn)換。之所以稱其為隱藏層,是因為無法從系統(tǒng)的輸入和輸出中直接觀察到這一點。神經(jīng)網(wǎng)絡(luò)越深,網(wǎng)絡(luò)可以從數(shù)據(jù)中識別的越多,輸出的信息越多。

但是,盡管目標(biāo)是從數(shù)據(jù)中盡可能多地學(xué)習(xí),但是模型可能會遭受過度擬合的困擾。當(dāng)模型從訓(xùn)練數(shù)據(jù)(包括隨機噪聲)中學(xué)習(xí)太多時,就會發(fā)生這種情況。然后,模型可以確定數(shù)據(jù)中非常復(fù)雜的模式,但這會對新數(shù)據(jù)的性能產(chǎn)生負面影響。訓(xùn)練數(shù)據(jù)中拾取的噪聲不適用于新數(shù)據(jù)或看不見的數(shù)據(jù),并且該模型無法概括發(fā)現(xiàn)的模式。非線性模型在模型中也非常重要,盡管該模型將從具有多個隱藏層的內(nèi)容中學(xué)到很多東西,但是將線性形式應(yīng)用于非線性問題將導(dǎo)致性能下降。

現(xiàn)在的問題是,“這些層如何學(xué)習(xí)東西?” 好吧,我們可以在這里將ANN應(yīng)用于實際場景以解決問題并了解如何訓(xùn)練模型以實現(xiàn)其目標(biāo)。案例分析如下:

在當(dāng)前的大流行中,許多學(xué)校已經(jīng)過渡到虛擬學(xué)習(xí),這使一些學(xué)生擔(dān)心他們通過課程的機會?!拔覍⑼ㄟ^本課程”這個問題是任何人工智能系統(tǒng)都應(yīng)該能夠解決的問題。

為簡單起見,讓我們考慮該模型只有3個輸入:學(xué)生參加的講座的數(shù)量,在作業(yè)上花費的時間以及整個講座中互聯(lián)網(wǎng)連接丟失的次數(shù)。該模型的輸出將是二進制分類。學(xué)生要么通過了課程,要么沒有通過,其實就是0和1。現(xiàn)在到了學(xué)期期末,學(xué)生A參加了21堂課,花了90個小時進行作業(yè),并且在整個學(xué)期中有7次失去互聯(lián)網(wǎng)連接。這些輸入信息被輸入到模型中,并且輸出預(yù)測學(xué)生有5%的機會通過課程。一周后,發(fā)布了最終成績,學(xué)生A通過了該課程。那么,模型的預(yù)測出了什么問題?

從技術(shù)上講,沒有任何問題。該模型本來可以按目前開發(fā)的方式工作。問題在于該模型不知道發(fā)生了什么。我們將在路徑上初始化一些權(quán)重,但是該模型當(dāng)前不知道對與錯。因此,權(quán)重不正確。這就是學(xué)習(xí)的主要源頭,其中的想法是模型需要掌握錯誤的時間的規(guī)律,我們通過計算某種形式的“損失”來做到這一點。計算得出的損失取決于當(dāng)前的問題,但是通常會涉及使預(yù)測輸出與實際輸出之間的差異最小化。


在上述情況下,只有一名學(xué)生和一個錯誤點可以減少到最小。但是,通常不是這種情況?,F(xiàn)在,如果考慮將多個學(xué)生和多個差異最小化,那,總損失通常將計算為所有預(yù)測和實際觀察值之間的差異的平均值。

回想一下,正在計算的損失取決于當(dāng)前的問題。因此,由于我們當(dāng)前的問題是二元分類(0和1分類),因此適當(dāng)?shù)膿p失計算將是交叉熵損失,該功能背后的想法是,它比較學(xué)生是否將通過課程的預(yù)測分布與實際分布,并嘗試最小化這些分布之間的差異。

取而代之的是,我們不再希望預(yù)測學(xué)生是否會通過該課程,而是希望預(yù)測他們將在該課程中獲得的分數(shù)。因此,交叉熵損失將不再是一種合適的方法。相反,均方誤差損失將更合適。此方法適用于回歸問題,其思想是將嘗試最小化實際值和預(yù)測值之間的平方差。

現(xiàn)在我們了解了一些損失函數(shù)(這里有損失函數(shù)的介紹基礎(chǔ):數(shù)學(xué)分析基礎(chǔ)與Tensorflow2.0回歸模型 文章末尾可下載PDF書籍),我們可以進行損失優(yōu)化和模型訓(xùn)練。擁有良好DNN的關(guān)鍵因素是擁有適當(dāng)?shù)臋?quán)重。損耗優(yōu)化應(yīng)嘗試找到一組權(quán)重W,以最小化計算出的損耗。如果只有一個重量分量,則可以在二維圖上繪制重量和損耗,然后選擇使損耗最小的重量。但是,大多數(shù)DNN具有多個權(quán)重分量,并且可視化n維圖非常困難。

取而代之的是,針對所有權(quán)重計算損失函數(shù)的導(dǎo)數(shù),以確定最大上升的方向?,F(xiàn)在,模型可以理解向上和向下的方向,然后向下移動,直到達到局部最小值的收斂點。完成這一體面操作后,將返回一組最佳權(quán)重,這就是DNN應(yīng)該使用的權(quán)重(假設(shè)模型開發(fā)良好的話)。

計算此導(dǎo)數(shù)的過程稱為反向傳播,它本質(zhì)上是來自微積分的鏈式法則。考慮上面顯示的神經(jīng)網(wǎng)絡(luò),第一組權(quán)重的微小變化如何影響最終損失?這就是導(dǎo)數(shù)或梯度試圖解釋的內(nèi)容。但是,第一組權(quán)重被饋送到隱藏層,然后隱藏層又具有另一組權(quán)重,從而導(dǎo)致預(yù)測的輸出和損失。因此,還應(yīng)考慮權(quán)重變化對隱藏層的影響?,F(xiàn)在,這些是網(wǎng)絡(luò)中僅有的兩個部分。但是,如果要考慮的權(quán)重更多,則可以通過應(yīng)用從輸出到輸入的鏈式規(guī)則來繼續(xù)此過程。

訓(xùn)練DNN時要考慮的另一個重要因素是學(xué)習(xí)率(可以看做是數(shù)學(xué)中的收斂因子)。當(dāng)模型行進以找到最佳的權(quán)重集時,它需要以某種因素來更新其權(quán)重。盡管這似乎微不足道,但是確定模型移動的因素非常非常必要。如果因子太小,則該模型可以運行一段指數(shù)級的長時間,也可以陷入非全局最小值的某個位置。如果因數(shù)太大,則模型可能會完全錯過目標(biāo)點,然后發(fā)散。

盡管固定比率可能是理想的,但自適應(yīng)學(xué)習(xí)比率會減少前面提到的問題的機會。也就是說,該系數(shù)將根據(jù)當(dāng)前梯度,當(dāng)前權(quán)重的大小或其他可能影響模型下一步來尋找最佳權(quán)重的地方而變化。


可以看出,DNN是基于微積分和一些統(tǒng)計數(shù)據(jù)構(gòu)建的。評估這些深度技術(shù)過程背后的數(shù)學(xué)思想是有用的,因為它可以幫助人們了解模型中真正發(fā)生的事情,并且可以導(dǎo)致整體上開發(fā)出更好的模型。



關(guān)鍵詞: 深度學(xué)習(xí)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉