前饋神經網絡入門:為什麼它很重要?

2021-01-10 讀芯術

深度前饋網絡(又稱「多層感知器」)是大多數深度學習模型的基礎。

卷積神經網絡(CNN)和循環神經網絡(RNN)這樣的網絡只是前饋網絡的一些特殊情況。這些網絡主要用於監控機器學習任務,在這些任務中,我們已經知道目標功能,即我們希望網絡實現的結果,並且這些網絡對於實踐機器學習非常重要,構成了許多商業應用的基礎。這些網絡的出現極大地影響了如計算機視覺(computer vision)和自然語言理解(NLP)等領域。

前饋網絡的主要目標是近似一些函數f*。例如,回歸函數y = f *(x)將輸入x映射到值y。前饋網絡定義了y = f (x; θ)映射,並學習參數θ的值,使結果更加接近最佳函數。

這些網絡之所以被稱為前饋,是因為信息是向前流動的,因為x用於計算隱藏層中的某些中間函數,而隱藏層又用於計算y。在這種情況下,如果我們將最後一個隱藏層的反饋添加到第一個隱藏層,它將表示一個循環神經網絡。

這些網絡由許多不同的函數組成。每個模型都與描述函數的組合方式的非循環圖相關聯。例如,我們可能有三個函數f(1)、f(2)和f(3)連接在一個鏈中,形成f(x)=f(3)(f(2)(f(1)(x))。其中f(1)是第一層,f(2)是第二層,f(3)是輸出層。

輸入層和輸出層之間的層稱為隱藏層,因為訓練數據沒有顯示這些層所需的輸出。網絡可以包含任意數量的隱藏層和任意數量的隱藏單元。一個單元基本上類似於一個神經元,它從前一層的單元中獲取輸入並計算自己的激活值。

現在問題來了,為什麼當我們有線性機器學習模型時,還需要前饋網絡?這是因為線性模型僅限於線性函數,而神經網絡不是。當我們的數據不是線性可分離的線性模型時,面臨著近似的問題,而神經網絡則相當容易。隱藏層用於增加非線性並改變數據的表示,以便更好地泛化函數。

對於任何前饋神經網絡的設計,有一些事情需要你決定,大多數網絡需要一些成分,其中一些成分和設計機器學習算法是相同的。

優化器

優化器或優化算法用於將代價函數最小化,在每個訓練周期或每輪後更新權重和偏置值,直到代價函數達到全局最優。

優化算法有兩種:

一階優化算法

這些算法使用與參數相關的梯度值最小化或最大化代價函數。一階導數告訴我們函數是在某一點上遞減還是遞增,簡而言之,它給出了與曲面切線。

二階優化算法

這些算法使用二階導數來最小化代價函數,也稱為Hessian。由於二階導數的計算成本很高,所以不常使用二階導數。二階導數告訴我們一階導數是遞增的還是遞減的,這表示了函數的曲率。二階導數為我們提供了一個與誤差曲面曲率相接觸的二次曲面。

網絡的結構

網絡體系結構是指網絡的結構,即隱藏層的數目和每層的隱藏單元數。根據通用逼近定理,具有一個線性輸出層和至少一個具有任意「壓縮」激活函數的隱藏層的前饋網絡,只要網絡具有足夠的隱層,就可以用任何期望的非零誤差,將任意一個有限維空間中的Borel可測函數近似為另一個有限維空間中的Borel可測函數。這個定理簡單地說明,無論我們試圖學習什麼函數,總會有一個多層感知機(MLP)能夠表示這個函數。

我們現在知道總會有一個MLP能夠解決我們的問題,但是沒有特定的方法來確定MLP的體系結構。沒有人可以說,如果我們使用具有m個隱藏單元、n層的結構,我們就能夠解決給定的問題,找到這個不用猜測和試驗方法的配置仍然是一個熱門的研究領域,目前只能通過猜測和試驗方法來完成。

找到正確的體系結構是困難的,因為我們可能需要嘗試許多不同的配置,但是即使我們有了正確的MLP體系結構,它仍然可能無法表示目標函數。這是由兩個原因造成的:一是優化算法可能無法找到與所需函數對應的參數的正確值;二是訓練算法可能由於過擬合而選擇錯誤的函數。

代價函數

任何訓練點的代價函數都顯示了我們的模型得出的近似值與我們試圖達到的實際目標值之間的差異,並且始終是單值的,因為代價函數的工作是評估整個網絡是如何的。與機器學習算法一樣,前饋網絡也使用基於梯度的學習方法進行訓練,在這種學習方法中,使用隨機梯度下降等算法來使代價函數達到最小化。

整個訓練過程在很大程度上取決於我們的代價函數的選擇,其選擇或多或少與其他參數模型相同。

在我們的參數模型定義了p(y| x;)分布的情況下,我們只使用訓練數據和模型預測之間的交叉熵作為代價函數。我們也可以用另一種方法來預測y在x上的一些統計,而不是預測y上的完全概率分布。

對於反向傳播算法的代價函數,它必須滿足兩個屬性:

代價函數必須能夠表達為平均值。

代價函數不能依賴於輸出層旁邊網絡的任何激活值。

代價函數的形式主要是C(W, B, Sr, Er),其中W是神經網絡的權重,B是網絡的偏置,Sr是單個訓練樣本的輸入,Er是該訓練樣本的期望輸出。

一些可能的代價函數是:

二次代價

該函數也被稱為均方誤差、最大似然率和差平方和。

交叉熵代價

這個函數也被稱為伯努利負對數似然和二元交叉熵。

指數成本

海林格距離

該函數也稱為「統計距離」。

輸出單元

輸出單元是存在於輸出層中的那些單元,它們的任務是給我們期望輸出或預測,從而完成神經網絡必須執行的任務。輸出單元的選擇與代價函數的選擇緊密相關。任何可以在神經網絡中用作隱藏單元的單元也可以用作輸出單元。

輸出單元的選擇如下:

線性單位

最簡單的輸出單元是用於高斯輸出分布的線性輸出單元,這些單元基於對輸出層不提供非線性的仿射變換。給定h特徵,一層線性輸出產生一個矢量:

線性單元函數

對於線性層,對數似然最大化等同於均方誤差最小化,最大似然使高斯分布的協方差近似更容易。

這些線性單元的優點是不飽和,即它們的梯度總是保持不變,從不接近於零,在那裡這些單元對基於梯度的優化算法沒有困難。

Sigmoid單位

Sigmoid單元函數

為了解決二元分類問題,我們結合了最大似然的Sigmoid輸出單元。一個Sigmoid輸出單元有兩個組成部分,一個是使用線性層計算z=w*h+b,然後使用激活函數將z轉換為概率。當使用其他損失函數時,例如均方誤差,損失可以隨時飽和,也就是說,梯度會收縮得太小而不利於學習。因此,最好使用最大似然。

Softmax單元

Softmax單位用於多輸出分布,它用於具有n個可能值的離散變量上的概率分布,這也可以看作是表示二元變量上概率分布的Sigmoid函數的推廣。Softmax函數定義如下:

Softmax單元函數

像Sigmoid函數一樣,Softmax函數也可以飽和,也就是說梯度會收縮得太小而不利於學習。在Softmax的情況下,由於它有多個輸出單元,因此這些單元只能在輸入值之間的差異變得極端時飽和。

由於總概率始終為1且不可超過,因此這些單位由「贏家通吃」(winner take all)原則控制,若其中一輸出值接近1,其他輸出單位的輸出值肯定將接近0。

隱藏單元

選擇隱藏單元的類型也是一個熱門的研究領域,沒有一個特定的單元能夠保證它在每個問題上都會優於其他所有的單元,但是我們仍然有一些單元是開始時默認的選擇,例如,通常使用的是校正線性單元或通常稱為Relu,這是由於直觀的原因而不是經驗。實際上,通常不可能提前預測哪一個最有效。選擇一個隱藏的單元需要反覆嘗試,憑直覺選擇一種隱藏的單元可能工作得很好,然後進行測試。

隱藏單位的可能選擇是:

整流線性單元

這些函數使用由g(z)定義的激活函數

Relus很容易優化,因為它們類似於線性單元,它們之間的唯一區別是一半域的輸出o。Relus之所以如此出名,是因為每當單元處於活動狀態時,它們總是有一個恆定的大梯度。梯度方向比激活函數引入二階效應對學習更有用。

ReLU有一個缺點,那就是不能通過基於梯度的方法來學習,因為它們的激活是零。

Relu有許多推廣,這些概括是:

Absolute value rectification

Leaky ReLU

Parametric ReLU

Maxout units

其中,Maxout單位應用元素級函數g(z),Maxout單位將z分為k組。然後,每個最大輸出單元輸出其中一個組的最大元素。Maxout單元被認為是ReLU的最佳推廣,因為它們具有冗餘性,這是由於每個單元由多個過濾器驅動,這些過濾器幫助它們抵禦災難性遺忘,在這種遺忘中,神經網絡忘記了如何執行它們訓練過的任務。

Logistic sigmoid和雙曲正切

Logistic sigmoid由以下公式給出:

雙曲正切由以下公式給出:

這些單位密切相關,如:

在ReLU之前,這些是神經網絡最著名的選擇,但現在它們的使用被忽略了,因為當z為正時,它們的飽和值為一個高值;當z為負時,它們的飽和為一個低值;只有當z接近0時,它們才對輸入極為敏感。Sigmoid單元的廣泛飽和使得基於梯度的學習非常困難。

相關焦點

  • 神經網絡原來這麼簡單,機器學習入門貼送給你|乾貨
    這裡有一個入門貼適合你。什麼神經網絡、隨機森林、計算機視覺通通一網打盡。這個Facebook軟體工程師做了一個入門貼。專為基礎為零的初學者打造。有基礎的同學,也可以來看看加深一下理解。我們就以神經網絡為例先來一睹為快吧!神經網絡概論作者說,神經網絡並不複雜!
  • 人工神經網絡研究的發展歷程及重要特性
    由於感知器的概念簡單,因而在開始介紹時人們對它寄予很大希望。然而,不久之後,明斯基和帕伯特( Papert)從數學上證明了感知器不能實現複雜的邏輯功能。( Kohonen)對神經網絡研究作出重要貢獻。在20世紀80年代中葉,作為一種前饋神經網絡的學習算法,帕克(Parker)和魯梅爾哈特等人重新發現了反向傳播算法。近十多年來,神經網絡已在從家用電器到工業對象的廣泛領域找到它的用武之地,主要應用涉及模式識別、圖像處理、自動控制、機器人、信號處理、管理、商業、醫療和軍事等領域。
  • 神經網絡原來這麼簡單,機器學習入門貼送給你 | 乾貨
    這裡有一個入門貼適合你。什麼神經網絡、隨機森林、計算機視覺通通一網打盡。這個Facebook軟體工程師做了一個入門貼。專為基礎為零的初學者打造。有基礎的同學,也可以來看看加深一下理解。神經網絡概論作者說,神經網絡並不複雜!「神經網絡」一詞很流行,人們通常認為它很難,但其實要簡單得多。是不是這樣呢?先看再說。神經網絡的理解主要分為三個部分,神經元、神經網絡的構建、訓練神經網絡。神經元——神經網絡的基本單元
  • 人工神經網絡及其應用
    神經網絡的數學理論本質是非線性的數學理論,因此,現代非線性科學方面的進展必將推動神經網絡的研究,同時,神經網絡理論也會對非線性科學提出新課題。神經網絡研究的對象是神經系統,這是高度進化的複雜系統,也是系統科學中一個重要的具體的領域。神經網絡的研究不僅重視系統的動態特性,而且強調事件和信息在系統內部的表達和產生。
  • 聊聊11種主要的神經網絡結構
    標準網絡1.感知器感知器是所有神經網絡中最基礎的,是更複雜的神經網絡的基本構建塊。 它僅連接輸入單元和輸出單元。前饋網絡前饋網絡是感知器的集合,其中存在三種基本類型的層-輸入層,隱藏層和輸出層。 在每次連接期間,來自上一層的信號乘以權重,加到偏置上,並通過激活函數。 前饋網絡使用反向傳播來迭代更新參數,直到達到理想的性能為止。
  • [獨家]25張圖讓你讀懂神經網絡架構
    自編碼器(Autoencoders, AE)與前饋神經網絡(FFNN)有點相似。與其說它是一個完全不同的網絡結構,不如說它是前饋神經網絡的不同應用。它是反向卷積神經網絡。想像一下,將一個單詞」貓「輸入神經網絡,並通過比較網絡輸出和真實貓的圖片之間的差異來訓練網絡模型,最終產生一個看上去像貓的圖片。反卷積神經網絡可以像常規的卷積神經網絡一樣結合前饋神經網絡使用,但是這可能涉及到新的名字縮寫。它們可能是深度反卷積神經網絡,但是你可能傾向於:當你在反卷積神經網絡前面或者後面加上前饋神經網絡,它們可能是新的網絡結構而應該取新的名字。
  • 簡單圖神經網絡(GNN)的基礎知識
    在社交網絡分析等一些應用中,圖神經網絡已經得到了廣泛的應用。新加坡科技研究局(A*STAR)的研究者 Rishabh Anand 近日通過圖解的方式介紹了圖與圖神經網絡的基本概念,或許能幫助初學者更直觀地理解圖神經網絡的內涵和價值。
  • 深入探討:殘差網絡解決了什麼,為什麼有效?
    動機: 深度神經網絡的「兩朵烏雲」神經網絡具有非常強的表達能力,並且免去了繁重的特徵工程,在BP算法提出以及算力逐漸提升的背景下,逐漸受到了研究人員和開發者的青睞。在展開文章前,首先以_前饋神經網絡_為例,定義一下神經網絡。
  • 初識人工神經網絡
    由電晶體構成的處理器連接和控制各種各樣的計算機外圍輸入輸出設備,使得計算機具有強大交互能力,在我們生活中扮演著越來越重要的角色。雖然大腦是由大量互聯的神經元細胞構成,計算機的中央處理器也是由大量的電晶體構建而成,但是大腦神經元和計算機電晶體在連接方式,以及大腦和計算機的運行方式是完全不同的。
  • 靈魂拷問:殘差網絡解決了什麼,為什麼有效?
    在展開文章前,首先以前饋神經網絡為例,定義一下神經網絡。一個前饋神經網絡,由若干層神經元組成,為了方便討論,我們以非線性單元(若干層神經元組成的函數單元)為單位討論神經網絡,即神經網絡由除了過擬合問題以外,更深的神經網絡會遇到如下兩個難題,我姑且按照物理史的比喻將其稱為深度神經網絡的「兩朵烏雲」:1.1 梯度彌散/爆炸現代神經網絡一般是通過基於梯度的BP算法來優化,對前饋神經網絡而言,一般需要前向傳播輸入信號,然後反向傳播誤差並使用梯度方法更新參數。第
  • 神經網絡及其背後的數學——簡化概念,人人都可以理解
    輸入層:輸入層是直接與網絡外部原始數據交互的第一層。這樣一個層的主要興趣是規範化外部數據格式,以便它可以被安裝到下一層和整個網絡。不管給定給網絡的數據的性質如何,輸入層都會對該數據進行轉換,以生成一組特定的數字,即張量,它表示每個特定的輸入。網絡只處理數字。
  • 怎樣辨別生物和人工神經網絡中的遞歸?
    遞歸是神經網絡中的一個重要術語,在機器學習和神經科學領域有著不同的含義。然而,隨著用於實際應用的人工神經網絡(ANNs)越來越複雜,且在某些方面更像生物神經網絡(BNNs),這種差異正在逐漸縮小(但總體上仍存在巨大差異)。
  • 神經網絡有哪些主要分類規則並如何分類?
    神經網絡模型的分類 人工神經網絡的模型很多,可以按照不同的方法進行分類。其中,常見的兩種分類方法是,按照網絡連接的拓樸結構分類和按照網絡內部的信息流向分類。
  • 神經網絡預測編碼器的設計及應用
    1 BP網絡結構及其算法 反向傳播算法又稱誤差後向傳播算法(Error Back Propagation Algorithm),它是用來訓練多層前饋網絡的一種學習算法。是一種有監督的學習算法。通常稱用誤差反向傳播算法訓練的網絡叫BP網絡。
  • 萬字長文|如何直觀解釋卷積神經網絡的工作原理?
    為了理解卷積神經網絡對這些不變性特點的貢獻,我們將用不具備這些不變性特點的前饋神經網絡來進行比較。 圖片識別—前饋神經網絡 方便起見,我們用depth只有1的灰度圖來舉例。 想要完成的任務是:在寬長為4x4的圖片中識別是否有下圖所示的「橫折」。圖中,黃色圓點表示值為0的像素,深色圓點表示值為1的像素。
  • 推薦| 九本不容錯過的深度學習和神經網絡書籍
    廣泛介紹了前饋網絡(包括多層和徑向基網絡)和循環網絡的訓練方法是本書的一大特點。3. 用於模式識別的神經網絡(計量經濟學高級教程)(Neural Networks for Pattern Recognition Advanced Texts in Econometrics)價格:58 美元本書首次從統計模式識別角度全面介紹了前饋神經網絡。
  • 《超智能體》作者講述深層神經網絡設計理念(附PPT+視頻) | 雷鋒網...
    由於人工智慧的火熱,越來越多的人擔心自己的工作會被所取代,因而想要入門深度學習,卻發現它很「黑箱」,這次就是分享一些我個人心得,關於深層神經網絡的設計理念。智能:何謂學習智能能夠做到的事情太多太多,實在是難以用一句話給出一個讓人信服的定義。所以讓我們從另一個角度來切入:為什麼生命需要智能,智能的作用是什麼?
  • 沒事,這裡有27種神經網絡的圖解
    前饋神經網絡(FF)前饋神經網絡(FF),這也是一個很古老的方法——這種方法起源於50年代。簡而言之,這些只是具有不同激活函數和應用方向的前饋網絡。 DFF深度前饋神經網絡DFF深度前饋神經網絡在90年代初期開啟了深度學習的潘多拉盒子。這些依然是前饋神經網絡,但有不止一個隱含層。那麼,它到底有什麼特殊性?
  • 神經網絡模型預測值 論文_bp神經網絡預測模型建模步驟 - CSDN
    在下圖的基本神經元結構後面,你會看到詳細的講解:基本的人工神經網絡神經元(basic neural network cell)相當簡單,這種簡單的類型可以在常規的前饋人工神經網絡架構裡面找到。這種神經元與其它神經元之間的連接具有權重,也就是說,它可以和前一層神經網絡層中的所有神經元有連接。
  • 一文看懂NLP神經網絡發展歷史中最重要的8個裡程碑!
    AI 前線導讀:這篇文章中作者嘗試將 15 年的自然語言處理技術發展史濃縮為 8 個高度相關的裡程碑事件,不過它有些偏向於選擇與當前比較流行的神經網絡技術相關的方向。我們需要關注的是,本文中介紹的許多神經網絡模型都建立在同時代的非神經網絡技術之上。在文章的最後,作者強調了這些有影響力的技術成果,它們為以後的 NLP 方法發展奠定了基礎。