自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

走心整理——十個常用深度學(xué)習(xí)算法

人工智能 深度學(xué)習(xí) 算法
本文作者整理了人工智能工程師 10 個用于解決機(jī)器學(xué)習(xí)問題的強(qiáng)大的深度學(xué)習(xí)方法,快來看看對你有幫助嗎?

  過去十年里,人們對機(jī)器學(xué)習(xí)的興趣經(jīng)歷了爆炸式的整長。我們幾乎每天都可以在計算機(jī)程序、行業(yè)會議和媒體上看到機(jī)器學(xué)習(xí)的身影。很多關(guān)于機(jī)器學(xué)習(xí)的討論都混淆了“機(jī)器學(xué)習(xí)能做什么”和“人類希望機(jī)器學(xué)習(xí)能做什么”。從根本上講,機(jī)器學(xué)習(xí)是運用算法從原始數(shù)據(jù)中提取信息,并用某種類型的模型進(jìn)行表示,然后使用該模型對一些尚未用模型表示的其他數(shù)據(jù)來進(jìn)行推斷。

神經(jīng)網(wǎng)絡(luò)就是機(jī)器學(xué)習(xí)各類模型中的其中一類,并且已經(jīng)存在了至少50年。神經(jīng)網(wǎng)絡(luò)的基本單位是節(jié)點,它的想法大致來源于哺乳動物大腦中的生物神經(jīng)元。生物大腦中的神經(jīng)元節(jié)點之間的鏈接是隨著時間推移不斷演化的,而神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元節(jié)點鏈接也借鑒了這一點,會不斷演化(通過“訓(xùn)練”的方式)。

神經(jīng)網(wǎng)絡(luò)中很多重要框架的建立和改進(jìn)都完成于二十世紀(jì)八十年代中期和九十年代初期。然而,要想獲得較好結(jié)果需要大量的時間和數(shù)據(jù),由于當(dāng)時計算機(jī)的能力有限,神經(jīng)網(wǎng)絡(luò)的發(fā)展受到了一定的阻礙,人們的關(guān)注度也隨之下降。二十一世紀(jì)初期,計算機(jī)的運算能力呈指數(shù)級增長,業(yè)界也見證了計算機(jī)技術(shù)發(fā)展的“寒武紀(jì)爆炸”——這在之前都是無法想象的。深度學(xué)習(xí)以一個競爭者的姿態(tài)出現(xiàn),在計算能力爆炸式增長的十年里脫穎而出,并且贏得了許多重要的機(jī)器學(xué)習(xí)競賽。其熱度在2017年仍然不減。如今,在機(jī)器學(xué)習(xí)的出現(xiàn)的地方我們都能看到深度學(xué)習(xí)的身影。

這是我自己做的一個小例子,詞向量的 t-SNE 投影,通過相似性進(jìn)行聚類。

走心整理——十個常用深度學(xué)習(xí)算法

 

最近,我開始閱讀關(guān)于深度學(xué)習(xí)的學(xué)術(shù)論文。根據(jù)我的個人研究,以下文章對這個領(lǐng)域的發(fā)展產(chǎn)生了巨大的影響:

  • 1998年NYU的文章《基于梯度學(xué)習(xí)的文檔識別》(Gradient-Based Learning Applied to Document Recognition) 介紹了卷積神經(jīng)網(wǎng)絡(luò)在機(jī)器學(xué)習(xí)中的應(yīng)用。
  • Toronto 2009年的文章《深度波茲曼機(jī)器》(Deep Boltzmann Machines) 針對波茲曼機(jī)提出了一種新的學(xué)習(xí)算法,其中包含許多隱藏層。
  • Stanford 和 Google 2012年聯(lián)合發(fā)表的文章《使用大規(guī)模非監(jiān)督學(xué)習(xí)構(gòu)建高層特征》(Building High-Level Features Using Large-Scale Unsupervised Learning) 解決了僅利用未標(biāo)記的數(shù)據(jù)構(gòu)建高級、特定類的特征檢測器的問題。
  • Berkeley 2013年的文章《用于一般視覺識別的深層卷積激活特征》(DeCAF——A Deep Convolutional Activation Feature for Generic Visual Recognition) 發(fā)布了名為 DeCAF 的算法,這是深度卷積激活特征的一個開源實現(xiàn),使用相關(guān)的網(wǎng)絡(luò)參數(shù),視覺研究人員能夠利用一系列視覺概念學(xué)習(xí)范例進(jìn)行深入實驗。
  • DeepMind 2016年的文章《用深度強(qiáng)化學(xué)習(xí)玩Atari》(Playing Atari with Deep Reinforcement Learning) 提出了第一個可以成功地通過強(qiáng)化學(xué)習(xí)從高維感官輸入中直接學(xué)習(xí)控制策略的深度學(xué)習(xí)模型。

我整理了人工智能工程師 10 個用于解決機(jī)器學(xué)習(xí)問題的強(qiáng)大的深度學(xué)習(xí)方法。但是,我們首先需要定義什么是深度學(xué)習(xí)。

如何定義深度學(xué)習(xí)是很多人面臨的一個挑戰(zhàn),因為它的形式在過去的十年中已經(jīng)慢慢地發(fā)生了改變。下圖直觀地展示了人工智能,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)之間的關(guān)系。

走心整理——十個常用深度學(xué)習(xí)算法

 

人工智能領(lǐng)域廣泛,存在時間較長。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域的一個子集,而機(jī)器學(xué)習(xí)是人工智能領(lǐng)域的一個子集。一般將深度學(xué)習(xí)網(wǎng)絡(luò)與“典型”前饋多層網(wǎng)絡(luò)從如下方面進(jìn)行區(qū)分:

  • 深度學(xué)習(xí)網(wǎng)絡(luò)具有比前饋網(wǎng)絡(luò)更多的神經(jīng)元
  • 深度學(xué)習(xí)網(wǎng)絡(luò)連接層之間的方式更復(fù)雜
  • 深度學(xué)習(xí)網(wǎng)絡(luò)需要有像“寒武紀(jì)大爆發(fā)”式的計算能力進(jìn)行訓(xùn)練
  • 深度學(xué)習(xí)網(wǎng)絡(luò)能夠自動提取特征

上文提到的“更多的神經(jīng)元”是指近年來神經(jīng)元的數(shù)量不斷增加,就可以用更復(fù)雜的模型來表示。層也從多層網(wǎng)絡(luò)中每一層完全連接,發(fā)展到卷積神經(jīng)網(wǎng)絡(luò)中神經(jīng)元片段的局部連接,以及與遞歸神經(jīng)網(wǎng)絡(luò)中的同一神經(jīng)元的循環(huán)連接(與前一層的連接除外)。

因此,深度學(xué)習(xí)可以被定義為以下四個基本網(wǎng)絡(luò)框架中具有大量參數(shù)和層數(shù)的神經(jīng)網(wǎng)絡(luò):

  • 無監(jiān)督預(yù)訓(xùn)練網(wǎng)絡(luò)
  • 卷積神經(jīng)網(wǎng)絡(luò)
  • 循環(huán)神經(jīng)網(wǎng)絡(luò)
  • 遞歸神經(jīng)網(wǎng)絡(luò)

在這篇文章中,我主要討論三個框架:

  • 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)基本上就是用共享權(quán)重在空間中進(jìn)行擴(kuò)展的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)主要是通過內(nèi)部卷積來識別圖片,內(nèi)部卷積可以看到圖像上識別對象的邊緣。
  • 循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network)基本上就是在時間上進(jìn)行擴(kuò)展的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò),它提取進(jìn)入下一時間步的邊沿,而不是在同一時間進(jìn)入下一層。循環(huán)神經(jīng)網(wǎng)絡(luò)主要是為了識別序列,例如語音信號或者文本。其內(nèi)部的循環(huán)意味著網(wǎng)絡(luò)中存在短期記憶。
  • 遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network)更類似于分層網(wǎng)絡(luò),其中輸入序列沒有真正的時間面,但是必須以樹狀方式分層處理。以下10種方法均可應(yīng)用于這些框架。

1、反向傳播

反向傳播是一種計算函數(shù)偏導(dǎo)數(shù)(或梯度)的簡單方法,它的形式是函數(shù)組合(如神經(jīng)網(wǎng)絡(luò))。在使用基于梯度的方法求解最優(yōu)化問題(梯度下降只是其中之一)時,需要在每次迭代中計算函數(shù)梯度。

走心整理——十個常用深度學(xué)習(xí)算法

 

對于一個神經(jīng)網(wǎng)絡(luò),其目標(biāo)函數(shù)是組合形式。那么應(yīng)該如何計算梯度呢?有2種常規(guī)方法:

  • (1)微分解析法。函數(shù)形式已知的情況下,只需要用鏈?zhǔn)椒▌t(基礎(chǔ)微積分)計算導(dǎo)數(shù)。
  • (2)有限差分法近似微分。這種方法運算量很大,因為函數(shù)評估的數(shù)量級是 O(N),其中 N 是參數(shù)的個數(shù)。與微分解析法相比,這種方法運算量更大,但是在調(diào)試時,通常會使用有限差分驗證反向傳播的效果。

2、隨機(jī)梯度下降

梯度下降的一個直觀理解就是想象一條源自山頂?shù)暮恿?。這條河流會沿著山勢的方向流向山麓的最低點,而這也正是梯度下降法的目標(biāo)。

我們所期望的最理想的情況就是河流在到達(dá)最終目的地(最低點)之前不會停下。在機(jī)器學(xué)習(xí)中,這等價于我們已經(jīng)找到了從初始點(山頂)開始行走的全局最小值(或最優(yōu)值)。然而,可能由于地形原因,河流的路徑中會出現(xiàn)很多坑洼,而這會使得河流停滯不前。在機(jī)器學(xué)習(xí)術(shù)語中,這種坑洼稱為局部最優(yōu)解,而這不是我們想要的結(jié)果。有很多方法可以解決局部最優(yōu)問題。

走心整理——十個常用深度學(xué)習(xí)算法

 

因此,由于地形(即函數(shù)性質(zhì))的限制,梯度下降算法很容易卡在局部最小值。但是,如果能夠找到一個特殊的山地形狀(比如碗狀,術(shù)語稱作凸函數(shù)),那么算法總是能夠找到最優(yōu)點。在進(jìn)行最優(yōu)化時,遇到這些特殊的地形(凸函數(shù))自然是最好的。另外,山頂初始位置(即函數(shù)的初始值)不同,最終到達(dá)山底的路徑也完全不同。同樣,不同的流速(即梯度下降算法的學(xué)習(xí)速率或步長)也會導(dǎo)致到達(dá)目的地的方式有差異。是否會陷入或避開一個坑洼(局部最小值),都會受到這兩個因素的影響。

3、學(xué)習(xí)率衰減

調(diào)整隨機(jī)梯度下降優(yōu)化算法的學(xué)習(xí)速率可以提升性能并減少訓(xùn)練時間。這被稱作學(xué)習(xí)率退火或自適應(yīng)學(xué)習(xí)率。訓(xùn)練中最簡單也最常用的學(xué)習(xí)率自適應(yīng)方法就是逐漸降低學(xué)習(xí)率。在訓(xùn)練初期使用較大的學(xué)習(xí)率,可以對學(xué)習(xí)率進(jìn)行大幅調(diào)整;在訓(xùn)練后期,降低學(xué)習(xí)率,以一個較小的速率更新權(quán)重。這種方法在早期可以快速學(xué)習(xí)獲得較好的權(quán)重,并在后期對權(quán)重進(jìn)行微調(diào)。

走心整理——十個常用深度學(xué)習(xí)算法

 

兩個流行而簡單的學(xué)習(xí)率衰減方法如下:

  • 線性地逐步降低學(xué)習(xí)率
  • 在特定時點大幅降低學(xué)習(xí)率

4、Dropout

擁有大量參數(shù)的深度神經(jīng)網(wǎng)絡(luò)是非常強(qiáng)大的機(jī)器學(xué)習(xí)系統(tǒng)。然而,在這樣的網(wǎng)絡(luò)中,過擬合是一個很嚴(yán)重的問題。而且大型網(wǎng)絡(luò)的運行速度很慢,這就使得在測試階段通過結(jié)合多個不同的大型神經(jīng)網(wǎng)絡(luò)的預(yù)測來解決過擬合問題是很困難的。Dropout 方法可以解決這個問題。

走心整理——十個常用深度學(xué)習(xí)算法

 

其主要思想是,在訓(xùn)練過程中隨機(jī)地從神經(jīng)網(wǎng)絡(luò)中刪除單元(以及相應(yīng)的連接),這樣可以防止單元間的過度適應(yīng)。訓(xùn)練過程中,在指數(shù)級不同“稀疏度”的網(wǎng)絡(luò)中剔除樣本。在測試階段,很容易通過使用具有較小權(quán)重的單解開網(wǎng)絡(luò)(single untwined network),將這些稀疏網(wǎng)絡(luò)的預(yù)測結(jié)果求平均來進(jìn)行近似。這能有效地避免過擬合,并且相對于其他正則化方法能得到更大的性能提升。Dropout 技術(shù)已經(jīng)被證明在計算機(jī)視覺、語音識別、文本分類和計算生物學(xué)等領(lǐng)域的有監(jiān)督學(xué)習(xí)任務(wù)中能提升神經(jīng)網(wǎng)絡(luò)的性能,并在多個基準(zhǔn)數(shù)據(jù)集中達(dá)到最優(yōu)秀的效果。

5、最大池

最大池是一種基于樣本的離散化方法。目標(biāo)是對輸入表征(圖像、隱藏層輸出矩陣等)進(jìn)行下采樣,降低維度并且允許對子區(qū)域中的特征進(jìn)行假設(shè)。

走心整理——十個常用深度學(xué)習(xí)算法

 

通過提供表征的抽象形式,這種方法可以在某種程度上解決過擬合問題。同樣,它也通過減少學(xué)習(xí)參數(shù)的數(shù)目以及提供基本的內(nèi)部表征轉(zhuǎn)換不變性來減少計算量。最大池是通過將最大過濾器應(yīng)用于通常不重疊的初始表征子區(qū)域來完成的。

6、批量標(biāo)準(zhǔn)化

當(dāng)然,包括深度網(wǎng)絡(luò)在內(nèi)的神經(jīng)網(wǎng)絡(luò)需要仔細(xì)調(diào)整權(quán)重初始值和學(xué)習(xí)參數(shù)。批量標(biāo)準(zhǔn)化能夠使這個過程更加簡單。

權(quán)重問題:

  • 無論怎么設(shè)置權(quán)重初始值,比如隨機(jī)或按經(jīng)驗選擇,初始權(quán)重和學(xué)習(xí)后的權(quán)重差別都很大。考慮一小批權(quán)重,在最初時,對于所需的特征激活可能會有很多異常值。
  • 深度神經(jīng)網(wǎng)絡(luò)本身就具有病態(tài)性,即初始層的微小變化就會導(dǎo)致后一層的巨大變化。

在反向傳播過程中,這些現(xiàn)象會導(dǎo)致梯度的偏移,這就意味著在學(xué)習(xí)權(quán)重以產(chǎn)生所需要的輸出之前,梯度必須補(bǔ)償異常值。而這將導(dǎo)致需要額外的時間才能收斂。

走心整理——十個常用深度學(xué)習(xí)算法

 

批量標(biāo)準(zhǔn)化將這些梯度從異常值調(diào)整為正常值,并在小批量范圍內(nèi)(通過標(biāo)準(zhǔn)化)使其向共同的目標(biāo)收斂。

學(xué)習(xí)率問題:

  • 通常來說,學(xué)習(xí)率都比較小,這樣只有一小部分的梯度用來校正權(quán)重,因為異常激活的梯度不應(yīng)該影響已經(jīng)學(xué)習(xí)好的權(quán)重。
  • 通過批量標(biāo)準(zhǔn)化,這些異常激活的可能性會被降低,就可以使用更大的學(xué)習(xí)率加速學(xué)習(xí)過程。電動叉車輪胎

7、長短期記憶

長短期記憶網(wǎng)絡(luò)(LSTM)和其他遞歸神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元有以下三個不同點:

  • 它可以決定何時讓輸入進(jìn)入神經(jīng)元
  • 它可以決定何時記住上一個時間步中計算的內(nèi)容
  • 它可以決定何時讓輸出傳遞到下一個時間戳 LSTM的強(qiáng)大之處在于它可以只基于當(dāng)前的輸入就決定上述所有。請看下方的圖表:

走心整理——十個常用深度學(xué)習(xí)算法

 

當(dāng)前時間戳的輸入信號 x(t) 決定了上述三點。

  • 輸入門(input gate)決定了第一點,
  • 遺忘門(forget gate)決定了第二點,
  • 輸出門(output gate)決定了第三點。 只依賴輸入就可以完成這三項決定。這是受到大腦工作機(jī)制的啟發(fā),大腦可以基于輸入來處理突然的上下文語境切換。

8、Skip-gram

詞嵌入模型的目的是針對每個詞學(xué)習(xí)一個高維密集表征,其中嵌入向量之間的相似性顯示了相應(yīng)詞語之間語義或句法的相似性。Skip-gram 是一種學(xué)習(xí)詞嵌入算法的模型。 skip-gram 模型(包括很多其它詞嵌入模型)背后的主要思想是:如果兩個詞匯項有相似的上下文,則它們是相似的。

走心整理——十個常用深度學(xué)習(xí)算法

 

換句話說,假設(shè)有一個句子,比如“cats are mammals”,如果用“dogs”替換“cats”,該句子仍然是有意義的。因此在這個例子中,“dogs”和“cats”有相似的上下文(即“are mammals”)。

基于以上假設(shè),我們可以考慮一個上下文窗口(包含 K 個連續(xù)項)。然后跳過其中一個詞,試著學(xué)習(xí)一個可以得到除了跳過的這個詞以外所有詞項,并且可以預(yù)測跳過的詞的神經(jīng)網(wǎng)絡(luò)。因此,如果兩個詞在一個大語料庫中多次具有相似的上下文,那么這些詞的嵌入向量將會是相似的。

9、連續(xù)詞袋模型

在自然語言處理中,我們希望將文檔中的每一個單詞表示為一個數(shù)值向量,使得出現(xiàn)在相似上下文中的單詞具有相似或相近的向量表示。在連續(xù)詞袋模型中,我們的目標(biāo)是利用一個特定單詞的上下文,預(yù)測該詞。

走心整理——十個常用深度學(xué)習(xí)算法

 

首先在一個大的語料庫中抽取大量的句子,每看到一個單詞,同時抽取它的上下文。然后我們將上下文單詞輸入到一個神經(jīng)網(wǎng)絡(luò),并預(yù)測在這個上下文中心的單詞。

當(dāng)我們有成千上萬個這樣的上下文詞匯和中心詞時,我們就得到了一個神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集的實例。然后訓(xùn)練這個神經(jīng)網(wǎng)絡(luò),在經(jīng)過編碼的隱藏層的最終輸出中,我們得到了特定單詞的嵌入式表達(dá)。當(dāng)我們對大量的句子進(jìn)行訓(xùn)練時也能發(fā)現(xiàn),類似上下文中的單詞都可以得到相似的向量。

10、遷移學(xué)習(xí)

我們來考慮一下卷積神經(jīng)網(wǎng)絡(luò)是如何處理圖像的。假設(shè)有一張圖像,對其應(yīng)用卷積,并得到像素的組合作為輸出。假設(shè)這些輸出是邊緣,再次應(yīng)用卷積,那么現(xiàn)在的輸出將是邊緣或線的組合。然后再次應(yīng)用卷積,此時的輸出將是線的組合,以此類推??梢园阉胂蟪墒窃诿恳粚訉ふ乙粋€特定的模式。神經(jīng)網(wǎng)絡(luò)的最后一層通常會變得非常特別。

如果基于 ImageNet 進(jìn)行訓(xùn)練,那么神經(jīng)網(wǎng)絡(luò)的最后一層或許就是在尋找兒童、狗或者飛機(jī)之類的完整圖像。再往后倒退幾層,可能會看到神經(jīng)網(wǎng)絡(luò)在尋找眼睛、耳朵、嘴巴或者輪子等組成部分。

走心整理——十個常用深度學(xué)習(xí)算法

 

深度卷積神經(jīng)網(wǎng)絡(luò)中的每一層逐步建立起越來越高層次的特征表征,最后幾層通常是專門針對輸入數(shù)據(jù)。另一方面,前面的層則更為通用,主要用來在一大類圖片中有找到許多簡單的模式。

遷移學(xué)習(xí)就是在一個數(shù)據(jù)集上訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時,去掉最后一層,在不同的數(shù)據(jù)集上重新訓(xùn)練模型的最后一層。直觀來講,就是重新訓(xùn)練模型以識別不同的高級特征。因此,訓(xùn)練時間會減少很多,所以在沒有足夠的數(shù)據(jù)或者需要太多的資源時,遷移學(xué)習(xí)是一個很有用的工具。

總結(jié):

深度學(xué)習(xí)是非常注重技術(shù)實踐,所謂的百看不如一練。當(dāng)然我這里講的還是非常膚淺,如果能夠引起小伙伴們對深度學(xué)習(xí)的興趣,我就覺得很開心了。 

責(zé)任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2021-08-09 08:00:00

深度學(xué)習(xí)人工智能機(jī)器學(xué)習(xí)

2023-06-13 06:51:09

Spark機(jī)器學(xué)習(xí)回歸

2024-11-11 08:00:00

PyTorch深度學(xué)習(xí)

2022-10-28 15:19:28

機(jī)器學(xué)習(xí)距離度量數(shù)據(jù)集

2024-06-26 13:11:40

2016-08-03 16:27:47

GitLinux開源

2024-08-26 14:57:36

2024-01-03 16:37:26

Jupyter工具開源

2009-07-03 17:09:01

學(xué)習(xí)Tapestry

2023-11-22 19:24:36

2024-06-21 10:46:44

2023-12-07 08:02:48

document前端JavaScript

2024-01-24 13:14:00

Python內(nèi)置函數(shù)工具

2022-08-26 09:38:39

Pandas數(shù)據(jù)查詢

2023-12-25 10:53:54

機(jī)器學(xué)習(xí)模型性能

2022-04-17 23:09:07

深度學(xué)習(xí)人工智能芯片

2023-03-02 00:04:59

機(jī)器學(xué)習(xí)系統(tǒng)架構(gòu)

2024-11-11 07:00:00

Python圖像識別

2023-10-30 18:00:00

Docker命令開源平臺

2009-09-03 10:08:27

JavaScript自
點贊
收藏

51CTO技術(shù)棧公眾號