一文了解神經網絡工作原理

2021-02-21 小白學視覺

點擊上方「小白學視覺」,選擇加"星標"或「置頂

重磅乾貨,第一時間送達

資料來源:getwallpapers.com

深度學習是機器學習中重要分支之一。它的目的是教會計算機做那些對於人類來說相當自然的事情。深度學習也是無人駕駛汽車背後的一項關鍵性技術,可以幫無人車識別停車標誌、區分行人與路燈柱。它是手機、平板、電視和免提揚聲器等設備實現語音控制的關鍵。深度學習近期以其前所未有的成果獲得了廣泛關注。

在深度學習中,計算機模型直接從圖像、文本或聲音中學習直接如何執行分類任務。深度學習模型可以達到最高的準確度,有時甚至超過了人類的水平。我們通常使用大量標記的數據和包含許多層的神經網絡體系結構來訓練模型。

資源

深度學習的模型可應用到各種複雜任務中:

1. 人工神經網絡(ANN)進行回歸和分類

2. 用於計算機視覺的卷積神經網絡(CNN)

3. 遞歸神經網絡(RNN)用於時間序列分析

4. 自組織地圖以進行特徵提取

5. 推薦系統的深玻爾茲曼機

6. 推薦系統的自動編碼器

在本文中,我們將儘可能的介紹人工神經網絡(ANN)的所有相關內容。

「人工神經網絡(ANN)是一種信息處理範例,它受到生物神經系統(大腦)信息處理方式的啟發。由大量高度互連的處理元件(神經元)組成,這些元件協同工作以解決特定問題。」

主要內容:

1. 神經元

2. 激活功能

3. 激活功能的類型

4. 神經網絡如何工作

5. 神經網絡如何學習(反向傳播)

6. 梯度下降

7. 隨機梯度下降

8. 隨機梯度下降訓練神經網絡

神經元

神經元(也稱為神經細胞)是大腦和神經系統的基本單元,通過樹突接收來自外部世界的刺激信息,對該信息進行處理後,通過軸突輸出給其他細胞。

生物神經元

細胞體(Soma):神經元細胞的主要部分,包含細胞核,進行必要的生化反應。

樹突:神經元周圍類似頭髮的管狀結構。主要負責接受輸入信號。

軸突:這是一種細長的管狀結構,類似於傳輸線。

突觸:神經元以複雜的空間排列相互連接。軸突末端再次分支,是一種高度複雜、高度專一的結構,我們稱之為突觸。兩個神經元之間的聯繫就發生在這些突觸處。

樹突接收其他神經元信息輸入。細胞體處理這些傳入信息,得到相應的輸出結果,該結果通過軸突和突觸發送到其他神經元。

電信號流過神經元。

下圖代表了受生物神經元啟發的ANN一般模型。它也被稱為感知器。

單層神經網絡一般稱為感知器,給定輸入它將計算得到輸出。

感知器

在上圖中,x0, x1, x2, x3...x(n)代表該網絡的輸入(獨立變量),每一個輸入在經過所謂的樹突時都要乘以相應的權重。該權重表示為w0, w1, w2, w3….w(n),它顯示特定節點的強度。b是偏差值。偏差值可以向上或向下移動激活函數。

最簡單的情況,將這些乘積相加並輸入傳遞函數(激活函數)得到結果,然後將該結果作為輸出發送。

激活函數

激活函數對於ANN學習和理解真正複雜的東西很重要。它們的主要目的是將ANN中節點的輸入信號轉換為輸出信號,此輸出信號將作為下一層的輸入。

激活函數通過計算加權總和偏差值來決定是否激活該神經元。目的是引入非線性。

如果我們不應用激活函數,那麼輸出信號將僅僅是線性函數(一階多項式)。線性函數很容易求解,功耗也相對較小,但是它們的複雜性受到一定的限制。因此沒有激活函數,我們的模型就無法進行學習,也無法對複雜的數據進行建模,例如圖像,視頻,音頻,語音等。

為什麼我們需要非線性函數?

非線性函數是一種具有曲率的函數。現在我們需要神經網絡能夠進行學習,能夠表示將輸入映射到輸出的任意複雜函數。因此神經網絡也被認為是 「通用函數逼近器」。

激活函數的類型:

1. 閾值激活函數—(二進位階躍函數)

二進位階躍函數是基於閾值的激活函數。如果輸入值高於某個閾值,則神經元被激活並將完全相同的信號發送到下一層;低於某個閾值則不被激活。

二進位函數

此函數的問題是創建一個二進位分類器(1或0),但是如果我們要連接多個這樣的神經元以引入更多類,如Class1、Class2、Class3等。在這種情況下,所有神經元都將給出1 ,我們將無法進行判斷。

2. Sigmoid激活函數-(邏輯函數)

Sigmoid函數是一種數學函數,具有特徵性的「 S」形曲線或S型曲線,範圍在0到1之間,因此它用於需要預測概率為輸出。

Sigmoid曲線

Sigmoid函數是可微的,這意味著我們可以求解任意2個點的曲線斜率。Sigmoid激活函數的缺點是,如果提供較大的負輸入,則可能導致神經網絡在訓練時卡住。

3. 雙曲正切函數—(tanh)

類似於Sigmoid,但性能更好。它本質上是非線性的,因此我們可以對各層進行疊加。該函數的範圍是(-1,1)。

雙曲正切函數

此功能的主要優點是,負輸入映射為負輸出,而只有零值輸入會被映射為接近零輸出。因此,在訓練過程中卡頓的可能性較小。

4. 整流線性單元-(ReLu)

ReLu是CNN和ANN中最常用的激活函數,範圍從零到無窮大。[0,∞]

ReLu

如果x為正,則給出輸出為「 x」;如果x為負,否則輸出為0。ReLu看起來是線性函數的問題,但本質上是非線性的,並且ReLu的組合也是非線性的。實際上,它是一個很好的近似器,可以通過組合Relu來近似大部分函數。

它一般應用於神經網絡的隱藏層。對於輸出層而言,分類問題通常使用softmax函數,回歸問題使用線性函數。

這裡存在的一個問題是,某些梯度在訓練過程中可能會消失。這會導致權重更新,任何數據點都無法激活該神經元。ReLu基本導致了神經元的死亡。

為了解決這一問題,引入了Leaky ReLu。Leaky ReLu引入了一個小斜率來保證不出現上述問題。Leaky ReLu範圍從-∞到+∞。

ReLu  vs  Leaky ReLu

Leaky增加了ReLu函數的輸出範圍。通常,a = 0.01。當a不為0.01時,則稱為隨機ReLu。

神經網絡如何工作?

讓我們以房地產價格為例,首先,我們將不同的因素匯總到一行數據中: Area, Bedrooms, Distance to city and Age.

輸入值通過加權的突觸直接到達輸出層。四個輸入值均會被分析並輸入到激活函數中,產生輸出結果。

這很簡單,但是通過在輸入和輸出層之間添加一個隱藏層可以擴大神經網絡的功能並提高其準確性。

具有隱藏層的神經網絡(僅顯示非0值)

現在在上圖中,所有4個變量都通過突觸連接到神經元。但是,並非所有的突觸都被加權。權值包括0值和非0值。在這裡,非零值表示重要性,0值表示輸入被丟棄。

讓我們以第一個神經元的Area和Distance to City為非零的示例為例,這意味著它們對第一個神經元重要。另外兩個變量,Bedrooms而Age權值為0,因此不通過第一神經元。

您可能想知道為什麼第一個神經元只考慮四個變量中的兩個。距離城市越遠房子變得越便宜,這在房地產市場上很普遍。因此,這個神經元所做的事情可能是尋找離市區較近的房屋。

神經元很多,每個神經元用這些變量的不同組合進行相似的計算。一旦滿足標準,神經元就會使用激活函數進行計算。

下一個神經元加權的突觸可能是Distance to the city和Bedrooms。因此神經元以非常靈活的方式工作,全面的搜索以查找特定的事物。

神經網絡如何學習?

讓我們先來做一個類比。神經網絡的學習與我們正常的學習方式密切相關,我們首先完成一定的工作,並得到教練的糾正,下一次以更好的方式來完成這個工作。類似地,神經網絡需要培訓者,來描述該網絡對輸入做出的反應。用實際值和預測值之間的差異,計算一個誤差值(也稱為成本函數),並將其發送回系統。

成本函數:實際值與輸出值之間平方差的一半。

對於網絡的每一層,都會分析成本函數,並用其調整下一個輸入的閾值和權重。我們的目標是使成本函數最小化。成本函數越低,實際值就越接近於預測值。這樣隨著網絡的不斷學習,每次運行的誤差都減小。

我們通過整個神經網絡反饋結果數據。將輸入變量連接到神經元的加權突觸是我們唯一可以控制的事情,因此只要實際值和預測值之間存在差異,我們就需要調整權重。一旦稍微調整它們並再次運行神經網絡,便會產生一個新的成本函數,我們希望它可以比上一個小。重複此過程,直到將成本函數降低到儘可能小的水平為止。

上述過程稱為反向傳播,並通過網絡連續進行,直到將誤差值保持在最小值為止。

反向傳播

調整權重的方法有兩種:
1.蠻力方法
2.批梯度下降

蠻力法

適合單層前饋網絡。在這裡,我們需要考慮許多可能的權重。在這種方法中,我們想要捨棄除U形曲線底部權值以外的所有其他權重。最佳權值可以使用簡單的消除技術找到。如果我們只需要優化一個權重,那麼這種方法很有效。但如果是具有許多權重的複雜神經網絡,該方法將因維數太高而無法實現。

分批梯度下降

它是一階迭代優化算法,在訓練具有不同權重模型的過程中找到最小成本值(損失)。

梯度下降

在「梯度下降」過程中,我們不會一次都查看每個權重並剔除錯誤的權重,而是查看函數斜率。

如果斜率→負值,則表示您沿著曲線下降。
如果斜率→正,則不執行任何操作

這樣,可以消除大量不正確的權重。

隨機梯度下降(SGD)

如上圖所示,當我們具有凸曲線時,漸變下降效果很好。但是,如果我們沒有凸曲線,則漸變下降將失敗。

「 隨機 」 一詞是指與隨機概率相關的系統或過程。因此,在隨機梯度下降中,隨機選擇一些樣本,而不是每次迭代的整個數據集。

隨機梯度下降

在SGD中,我們一次獲取一行數據,通過神經網絡運行該數據,然後調整權重。對於第二行,我們運行它,然後比較Cost函數,然後再次調整權重。

SGD幫助我們避免了局部極小值的問題。它比Gradient Descent快得多,因為它一次運行每一行,並且不必將整個數據加載到內存中即可進行計算。

要注意的一件事是,由於SGD通常比典型的Gradient Descent噪聲更大,因此由於其下降的隨機性,通常需要更多的迭代次數才能達到最小值。儘管與典型的Gradient Descent相比,它需要更多的迭代次數才能達到最小值,但在計算消耗上仍比典型的Gradient Descent少得多。因此,在大多數情況下,SGD優於分批梯度下降。

利用隨機梯度下降訓練神經網絡

步驟1→將權重隨機初始化為接近0但不為0的小數。

步驟2→在輸入層中輸入數據集的第一個觀測值,每個要素放在一個節點中。

步驟3→ 正向傳播:從左到右,神經元按順序被激活,直到獲得預測值。每個神經元的影響都受權重的限制。

步驟4→將預測結果與實際結果進行比較,並測量的誤差(成本函數)。

步驟5→ 反向傳播:從右到左,誤差反向傳播。根據它們對錯誤造成的影響來更新權重。學習率決定了我們更新權重的程度。

步驟6→重複步驟1至5,並在每次比較後更新權重(強化學習)

步驟7→當整個訓練集通過ANN時,就完成了。

結論

資料來源:techcrunch.com

神經網絡是一個全新的新概念,它還有很大潛力。可以應用於各種不同的概念中,並在測試階段通過特定的反向傳播和糾錯機制進行學習。這些多層系統也許可以有一天僅靠學習來減少發生錯誤的可能性,而無需人工糾正。

如果本文對小夥伴有幫助,希望可以在文末來個「一鍵三連」。

交流群

歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN、算法競賽等微信群(以後會逐漸細分),請掃描下面微信號加群,備註:」暱稱+學校/公司+研究方向「,例如:」張三 + 上海交大 + 視覺SLAM「。請按照格式備註,否則不予通過。添加成功後會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~

相關焦點

  • 神經網絡的工作原理介紹
    概要單純的講神經網絡的概念有些抽象,先通過一個實例展示一下機器學習中的神經網絡進行數據處理的完整過程。神經網絡的實例1.1 案例介紹實例:訓練一個神經網絡模型擬合 廣告投入(TV,radio,newspaper 3種方式)和銷售產出的關係,實現根據廣告投放來預測銷售情況。
  • 入門 | 一文簡述循環神經網絡
    什麼是循環神經網絡(RNN)?它們如何運行?可以用在哪裡呢?本文試圖回答上述這些問題,還展示了一個 RNN 實現 demo,你可以根據自己的需要進行擴展。循環神經網絡架構基礎知識。Python、CNN 知識是必備的。了解 CNN 的相關知識,是為了與 RNN 進行對比:RNN 為什麼以及在哪些地方比 CNN 更好。
  • 一文讀懂4G路由器工作原理
    一文讀懂4G路由器工作原理工業4G路由器採用高性能的工業級32                                一文讀懂4G路由器工作原理4G無線路由器配置:
  • 一文讀懂圖神經網絡
    一、圖神經網絡介紹什麼是圖神經網絡圖神經網絡(Graph Neural Networks, GNNs)是基於圖結構的深度學習方法,近期被廣泛應用到各類圖像、自然語言處理等任務上。圖為什麼要使用圖神經網絡圖神經網絡有靈活的結構和更新方式,可以很好的表達一些數據本身的結構特性,除了一些自帶圖結構的數據集(如Cora,Citeseer等)以外,圖神經網絡目前也被應用在更多的任務上,比如文本摘要,文本分類和序列標註任務等,目前圖神經網絡以及其變種在很多任務上都取得了目前最好的結果
  • 一文了解頻譜分析儀的原理
    打開APP 一文了解頻譜分析儀的原理 工程師之餘 發表於 2018-11-07 16:49:20 頻譜分析儀工作原理
  • RNN遞歸神經網絡原理介紹+數字識別應用
    :CNN卷積神經網絡原理講解+圖片識別應用(附源碼)BP神經網絡+TensorFlow做圖片識別前言:自己學習研究完CNN卷積神經網絡後,很久的一段時間因為要完成自己的畢業設計就把更新博客給耽擱了。介紹CNN卷積神經網絡和RNN遞歸神經網絡都是由BP神經網絡演化而來的。CNN卷積神經網絡主要應用在圖像識別領域;而RNN遞歸神經網絡的改進版LSTM網絡主要應用於自然語言處理中;為什麼我介紹RNN是叫——遞歸神經網絡?這之前是一個困擾我很久的問題。
  • 一文讀懂神經網絡硬體平臺戰局
    吳恩達教授和他的朋友們讓數十臺 GPU 就能完成數千臺 CPU 的工作,從而讓規模化成為了可能。因此,我們從需要很好的資助的神經處理前景中解放了出來。好吧,或多或少吧,現在最先進的網絡有時候需要數千臺 GPU 或專用晶片。更多數據和更多處理能力是其中的關鍵。讓我們進入本文的重點,列出一些感知時代大數據之戰中的一些關鍵平臺:這一家是很難被戰勝的。
  • 【精選】神經網絡應用於算法交易(文末有免費贈書活動)
    source=post_header_lockup今天編輯部帶來關於在基於金融時間序列的預測模型案例,我們將通過神經網絡來增強一個經典的移動平均策略,並表明它真的是有所改善相對原策略。基於技術分析的投資策略
  • 循環神經網絡原理--RNN,LSTM,GRU
    U、V、W代表神經網絡中的權重矩陣。在循環神經網絡中,向量S的值不僅僅和X有關,還和上一層的隱藏層輸出向量S有關。因此U是X和S之間的映射矩陣,W是上一隱藏層S的輸出和該層的向量S的映射矩陣。V是每個隱藏層的向量和輸出層向量映射矩陣。RNN展開後
  • 卷積神經網絡的工作原理
    下面從起源,工作原理及構成模塊三個方面介紹一下卷積神經網絡。1.   起源:       神經元相互連接組成神經網絡。神經網絡的核心思想可追溯到1957年,Frank Rosenblatt提出的感知機(Perceptron)。感知機是第一個具有學習能力的神經網絡,它是二分類的線性模型,在模式識別算法的歷史上佔有重要的地位。
  • 每個數據科學家都必須了解的 6 種神經網絡類型
    有許多不同類型的神經網絡,它們幫助我們完成各種日常任務,從推薦電影或音樂到幫助我們在線購物。與飛機受到鳥類啟發的方式類似,神經網絡(NNs)也受到生物神經網絡的啟發。雖然原理相同,但過程和結構可能大不相同。下面我來介紹一下每個數據科學家必須了解的 6 種神經網絡類型。
  • 零基礎入門神經網絡:從原理、主要類型到行業應用
    但是神經網絡是個啥?有啥用?這篇文章和大家嘮嘮,啥是神經網絡,對於初學者來說主要有哪些挑戰,以及介紹幾種經典的神經網絡類型,和相關行業應用。神經網絡的工作原理基本上,神經網絡是由一層一層的不同的計算單位連接起來的。我們把計算單位稱為神經元,這些網絡可以把數據處理分類,就是我們要的輸出。
  • 神經網絡算法
    根據生物原型的研究,建立神經元、神經網絡的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。(3)網絡模型與算法研究。在理論模型研究的基礎上構作具體的神經網絡模型,以實現計算機模擬或準備製作硬體,包括網絡學習算法的研究。這方面的工作也稱為技術模型研究。(4)人工神經網絡應用系統。
  • 一文讀懂VGG網絡
    該網絡是在ILSVRC 2014上的相關工作,主要工作是證明了增加網絡的深度能夠在一定程度上影響網絡最終的性能。VGG有兩種結構,分別是VGG16和VGG19,兩者並沒有本質上的區別,只是網絡深度不一樣。
  • 神經網絡解析|RNN(循環神經網絡)
    大家如果了解BP算法或者前文我們介紹的CNN網絡就會發現,他們的輸出都是只考慮前一個輸入的影響而不考慮其它時刻輸入的影響,比如簡單的貓,狗等圖片,或者手寫數字等單個物體的識別具有較好的效果。但是,對於一些與時間先後有關的,比如視頻的下一時刻的預測,文檔前後文內容的預測等,這些算法的表現就不盡如人意了。因此,RNN就應運而生了。
  • 從GPU、TPU到FPGA及其它:一文讀懂神經網絡硬體平臺戰局
    近日,多家公司的技術顧問 Matt Hurd 在其博客上發表了一篇全面評點各種神經網絡硬體平臺的長文,機器之心對本文進行了編譯介紹。這是我幾周前做的一個傳統的 90 年代風格的性別識別神經網絡的很好的隱藏節點。
  • 機器學習——RNN神經網絡
    一,簡介       循環神經網絡(Recurrent Neural Network, RNN)是一類以序(sequence)數據為輸入,在序列的演進方向進行遞歸(recursion)且所有節點(循環單元)按鏈式連接的遞歸神經網絡(recursive neural network) 。
  • 神經網絡-BP神經網絡
    感知器作為初代神經網絡,具有簡單、計算量小等優點,但只能解決線性問題。BP神經網絡在感知器的基礎上,增加了隱藏層,通過任意複雜的模式分類能力和優良的多維函數映射能力,解決了異或等感知器不能解決的問題,並且BP神經網絡也是CNN等複雜神經網絡等思想根源。
  • 深度 關於人工神經網絡,你應該知道的一切都在這裡了
    如果你想要了解2015年的更多進展,請一定要讀一讀這篇文章。AI技術已逐步成為許多技術的核心,所以,理解一些常用術語和工作原理成為了一件很重要的事。人工智慧的很多進步都是新的統計模型,其中絕大多數來自於一項稱作「人工神經網絡」(artificial neural networks)的技術,簡稱ANN。這種技術十分粗略地模擬了人腦的結構。值得注意的是,人工神經網絡和神經網絡是不同的。
  • 一文了解車載雙目相機
    下文就從雙目測距原理、結構原理上剖析,看看是否能找到部分答案。02.工作原理雙目相機測距過程包括相機標定、圖像校正,立體匹配等步驟。整個過程涉及矩陣變換、三角相似等矩陣運算、代數相關的數學知識。但在焦慮、煩躁、不安瀰漫的打工人之中,公式意味著閱讀的終結。