在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 人工智能/ 訓(xùn)練神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)
深度學(xué)習(xí)
深度學(xué)習(xí)簡介
深度神經(jīng)網(wǎng)絡(luò)
深度學(xué)習(xí)的應(yīng)用
計算圖
訓(xùn)練神經(jīng)網(wǎng)絡(luò)
基本原理
機(jī)器學(xué)習(xí)基礎(chǔ)
深度學(xué)習(xí)庫和框架
深度學(xué)習(xí)開發(fā)環(huán)境

訓(xùn)練神經(jīng)網(wǎng)絡(luò)

現(xiàn)在我們將學(xué)習(xí)如何訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)。還將學(xué)習(xí)Python深度學(xué)習(xí)中的反向傳播算法和反向傳遞。

我們必須找到神經(jīng)網(wǎng)絡(luò)權(quán)重的最優(yōu)值來獲得所需的輸出。要訓(xùn)練神經(jīng)網(wǎng)絡(luò),我們使用迭代梯度下降法,最初從權(quán)重的隨機(jī)初始化開始。 在隨機(jī)初始化之后,我們利用前向傳播過程對數(shù)據(jù)的一些子集進(jìn)行預(yù)測,計算相應(yīng)的成本函數(shù)C,并且將每個權(quán)重w更新與dC/dw成比例的量,即成本函數(shù)w.r.t的導(dǎo)數(shù)。 重量。 比例常數(shù)被稱為學(xué)習(xí)率。

使用反向傳播算法可以有效計算梯度。對于向后傳播或向后傳播的關(guān)鍵觀察,由于分化鏈的規(guī)則,神經(jīng)網(wǎng)絡(luò)中每個神經(jīng)元的梯度可以利用神經(jīng)元的梯度來計算,它具有向外的邊緣。因此,我們向后計算梯度,即首先計算輸出層的梯度,然后計算最頂層的隱藏層,其次是前面的隱藏層,等等,結(jié)束于輸入層。

反向傳播算法主要使用計算圖的思想來實(shí)現(xiàn),其中每個神經(jīng)元被擴(kuò)展到計算圖中的許多節(jié)點(diǎn),并執(zhí)行簡單的數(shù)學(xué)運(yùn)算,如加法,乘法。計算圖在邊上沒有任何權(quán)重;所有的權(quán)重被分配給節(jié)點(diǎn),所以權(quán)重成為它們自己的節(jié)點(diǎn)。然后向后傳播算法在計算圖上運(yùn)行。當(dāng)計算完成,只有權(quán)重節(jié)點(diǎn)的梯度才需要更新。其余的漸變可以被丟棄。

梯度下降優(yōu)化技術(shù)

一種常用的優(yōu)化功能根據(jù)它們造成的誤差來調(diào)整權(quán)重,稱為“梯度下降”。

坡度是坡度的另一個名稱,斜坡在xy圖上表示兩個變量如何相互關(guān)聯(lián):坡度上升,距離隨時間變化的變化等。在這種情況下,坡度為 網(wǎng)絡(luò)誤差與單一重量之間的比率; 即錯誤如何隨著重量的變化而變化。

更準(zhǔn)確地說,我們想要找出哪個重量產(chǎn)生的誤差最小。 我們希望找到正確表示輸入數(shù)據(jù)中包含的信號的權(quán)重,并將它們轉(zhuǎn)換為正確的分類。

隨著神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),它會緩慢調(diào)整許多權(quán)重,以便它們可以正確地將信號映射到意義。 網(wǎng)絡(luò)誤差與這些權(quán)重中的每一個之間的比率是導(dǎo)數(shù)dE/dw,其計算權(quán)重中的輕微變化引起誤差的輕微變化的程度。

每個權(quán)重只是涉及許多變換的深層網(wǎng)絡(luò)中的一個因素; 權(quán)重的信號經(jīng)過幾層的激活和求和,所以我們使用微積分的鏈?zhǔn)揭?guī)則通過網(wǎng)絡(luò)激活和輸出進(jìn)行工作。這導(dǎo)致我們討論權(quán)重,以及它與整體誤差的關(guān)系。

給定兩個變量,錯誤和權(quán)重,由第三個變量激活,通過權(quán)重傳遞。 我們可以通過首先計算激活變化如何影響誤差變化以及體重變化如何影響激活變化來計算體重變化如何影響誤差變化。

深度學(xué)習(xí)的基本思想就是:根據(jù)產(chǎn)生的錯誤調(diào)整模型的權(quán)重,直到不能再減少錯誤為止。

如果梯度值小,則深網(wǎng)絡(luò)緩慢,如果值很高,則深度網(wǎng)絡(luò)快。 培訓(xùn)中的任何不準(zhǔn)確都會導(dǎo)致不準(zhǔn)確的結(jié)果。 將網(wǎng)絡(luò)從輸出端訓(xùn)練回輸入端的過程稱為反向傳播或反向支撐。 我們知道前向傳播從輸入開始并繼續(xù)前進(jìn)。 后退道具反向/相反計算從右到左的漸變。

每次我們計算一個梯度時,都會使用之前所有的梯度。

讓我們從輸出層的節(jié)點(diǎn)開始。 邊緣使用該節(jié)點(diǎn)處的漸變。 當(dāng)我們回到隱藏層時,它變得更加復(fù)雜。 01之間的兩個數(shù)字的乘積給一個較小的數(shù)字。 漸變值越來越小,因此后支柱需要花費(fèi)大量時間進(jìn)行訓(xùn)練并且精確度受到影響。

深度學(xué)習(xí)算法面臨的挑戰(zhàn)

淺層神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)都有一定的挑戰(zhàn),如過度擬合和計算時間。 DNN受到過度擬合的影響,因?yàn)槭褂昧烁郊拥某橄髮樱@使得他們可以在訓(xùn)練數(shù)據(jù)中建立罕見的依賴關(guān)系。

在訓(xùn)練過程中應(yīng)用正?;椒?,例如輟學(xué),早期停止,數(shù)據(jù)增強(qiáng),轉(zhuǎn)移學(xué)習(xí),以打擊過度擬合。在訓(xùn)練期間,剔除正規(guī)化從隱藏層中隨機(jī)省略單元,這有助于避免罕見的依賴性。 DNN考慮了幾個訓(xùn)練參數(shù),例如大小,即層數(shù)和每層單元的數(shù)量,學(xué)習(xí)速率和初始權(quán)重。由于時間和計算資源的高成本,尋找最佳參數(shù)并不總是實(shí)用的。批處理等幾個黑客可以加速計算。 GPU的巨大處理能力顯著地幫助了訓(xùn)練過程,因?yàn)樗璧木仃嚭拖蛄坑嬎阍贕PU上得到了很好的執(zhí)行。

丟失(Dropout)

丟失(Dropout)是神經(jīng)網(wǎng)絡(luò)流行的正規(guī)化技術(shù)。 深度神經(jīng)網(wǎng)絡(luò)特別容易過度擬合。

現(xiàn)在讓我們看看丟失是什么以及它是如何工作的。

用深度學(xué)習(xí)的先驅(qū)Geoffrey Hinton的話來說,“如果你有一個深層的神經(jīng)網(wǎng)絡(luò),而且不是過度擬合,那么你應(yīng)該使用一個更大的神經(jīng)網(wǎng)絡(luò)并使用丟失”。

丟失是一種技術(shù),在梯度下降的每次迭代中,我們丟棄一組隨機(jī)選擇的節(jié)點(diǎn)。 這意味著我們會隨機(jī)忽略一些節(jié)點(diǎn),就好像它們不存在一樣。

每個神經(jīng)元以概率q保持并以概率1-q隨機(jī)丟棄。 對于神經(jīng)網(wǎng)絡(luò)中的每個層,值q可能不同。 隱藏層的值為0.5,輸入層的值為0,適用于各種任務(wù)。

在評估和預(yù)測期間,不使用丟失。 每個神經(jīng)元的輸出都乘以q,以便到下一層的輸入具有相同的期望值。

丟失(Dropout)背后的想法如下 - 在一個沒有丟失(Dropout)正規(guī)化的神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元在彼此之間形成互相依賴,導(dǎo)致過度擬合。

實(shí)施訣竅
通過將隨機(jī)選擇的神經(jīng)元的輸出保持為0,在TensorFlow和Pytorch等庫中實(shí)現(xiàn)丟失。也就是說,雖然神經(jīng)元存在,但其輸出被覆蓋為0。

早期停止

我們使用稱為梯度下降的迭代算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)。

早期停止的想法很直觀。 當(dāng)錯誤開始增加時,我們停止訓(xùn)練。 在這里,錯誤的意思是在驗(yàn)證數(shù)據(jù)上測量的錯誤,這是用于調(diào)整超參數(shù)的訓(xùn)練數(shù)據(jù)的一部分。 在這種情況下,超參數(shù)就是停止標(biāo)準(zhǔn)。

數(shù)據(jù)增強(qiáng)

我們增加數(shù)據(jù)量的過程,或者通過使用現(xiàn)有數(shù)據(jù)并對其應(yīng)用一些變換來增加數(shù)據(jù)量。 所使用的確切轉(zhuǎn)換取決于我們打算實(shí)現(xiàn)的任務(wù)。 此外,幫助神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)換依賴于其架構(gòu)。

例如,在諸如對象分類等許多計算機(jī)視覺任務(wù)中,有效的數(shù)據(jù)增強(qiáng)技術(shù)正在添加新的數(shù)據(jù)點(diǎn),這些數(shù)據(jù)點(diǎn)是裁剪或原始數(shù)據(jù)的轉(zhuǎn)換版本。

當(dāng)計算機(jī)接受圖像作為輸入時,它將采用一組像素值,比如說整個圖像左移15像素。 我們在不同的方向上應(yīng)用了許多不同的移位,導(dǎo)致數(shù)據(jù)集增大了原始數(shù)據(jù)集大小的數(shù)倍。

轉(zhuǎn)移學(xué)習(xí)

采用預(yù)先訓(xùn)練的模型并用我們自己的數(shù)據(jù)集“模擬”模型的過程稱為轉(zhuǎn)移學(xué)習(xí)。 有幾種方法可以做到這一點(diǎn)。下面介紹幾種方法 -

  • 在大型數(shù)據(jù)集上訓(xùn)練預(yù)先訓(xùn)練的模型。 然后,刪除網(wǎng)絡(luò)的最后一層,并用隨機(jī)權(quán)重的新層替換它。
  • 然后,凍結(jié)所有其他層的權(quán)重并正常訓(xùn)練網(wǎng)絡(luò)。 這里凍結(jié)圖層不會改變梯度下降或優(yōu)化期間的權(quán)重。

這背后的概念是,預(yù)先訓(xùn)練的模型將作為一個特征提取器,只有最后一層將在當(dāng)前任務(wù)上進(jìn)行訓(xùn)練。