什麼是神經網絡?工作原理是什麼?——AI算法必懂

2020-12-09 EDN電子設計技術

關注AI的同學一定都知道神經網絡,這是AI算法中模擬人的大腦所衍生出來的學科和算法。可以說,不了解神經網絡就不能說動算法,懂算法者必懂神經網絡。下面我們就對神經網絡的工作原理進行深入淺出的介紹。YQ0ednc

YQ0ednc

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

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

YQ0ednc

 YQ0ednc

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

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

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

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

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

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

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

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

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

 YQ0ednc

主要內容:YQ0ednc

1. 神經元YQ0ednc

2. 激活功能YQ0ednc

3. 激活功能的類型YQ0ednc

4. 神經網絡如何工作YQ0ednc

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

6. 梯度下降YQ0ednc

7. 隨機梯度下降YQ0ednc

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

神經元YQ0ednc

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

YQ0ednc

 YQ0ednc

生物神經元YQ0ednc

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

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

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

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

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

YQ0ednc

電信號流過神經元。YQ0ednc

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

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

YQ0ednc

感知器YQ0ednc

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

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

激活函數YQ0ednc

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

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

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

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

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

激活函數的類型:YQ0ednc

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

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

YQ0ednc

二進位函數YQ0ednc

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

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

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

YQ0ednc

Sigmoid曲線YQ0ednc

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

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

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

YQ0ednc

雙曲正切函數YQ0ednc

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

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

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

YQ0ednc

ReLuYQ0ednc

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

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

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

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

YQ0ednc

ReLu vs Leaky ReLuYQ0ednc

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

神經網絡如何工作?YQ0ednc

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

YQ0ednc

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

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

YQ0ednc

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

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

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

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

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

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

神經網絡如何學習?YQ0ednc

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

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

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

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

YQ0ednc

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

反向傳播YQ0ednc

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

蠻力法YQ0ednc

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

分批梯度下降YQ0ednc

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

YQ0ednc

梯度下降YQ0ednc

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

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

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

隨機梯度下降(SGD)YQ0ednc

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

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

YQ0ednc

隨機梯度下降YQ0ednc

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

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

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

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

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

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

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

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

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

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

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

 YQ0ednc

結語YQ0ednc

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

責編:ChalleyYQ0ednc

更多關於AI、算法方面的技術交流可以加責編微信(同名)。YQ0ednc

相關焦點

  • AI從入門到放棄:BP神經網絡算法推導及代碼實現筆記
    仿生嘛,於是喜歡放飛自我的 某些人 就提出了人工神經網絡。一切的基礎-->人工神經單元,看圖:▌三. 通往沙漠的入口: 神經元是什麼,有什麼用:開始前,需要搞清楚一個很重要的問題:人工神經網絡裡的神經元是什麼,有什麼用。只有弄清楚這個問題,你才知道你在哪裡,在做什麼,要往哪裡去。
  • 神經網絡讓計算機自我進化,自我探索,超越深度學習算法
    神經網絡是製造真正智能機器的最佳方式嗎?斯坦利是人工智慧領域「神經進化」的先驅,該領域利用生物進化原理來設計更智能的算法。使用Picbreeder,每張圖像都是一個類似於神經網絡的計算系統的輸出。當一個圖像生成時,它的底層網絡突變為15個稍微不同的變體,每個變體都生成一個新的圖像。斯坦利並不打算讓Picbreeder產生任何特別的東西。
  • 小白必看:神經網絡入門指南
    什麼是機器學習?要理解神經網絡,我們首先需要理解機器學習。為了理解機器學習,我們得先談談人類學習,也就是「經典編程」。作為這個網絡的設計者,我的工作是回答以下幾個問題:我如何為輸入和輸出建模?(例如,如果輸入的是文本,我可以用字母建模嗎?數字?向量? ....)每個神經元的功能是什麼?(他們是線性的嗎?指數?
  • AI研究:如何讓機器學習算法解釋自己的決策?
    我們發現神經網絡如此神秘,這可能並不奇怪,因為它們基本上是基於人類大腦而建立的,我們也在努力破譯這些神經網絡。他們學習的模型並不像傳統的電腦程式那樣整齊地存儲在資料庫中,而是由成千上萬的虛擬神經元之間的連接組成。這些連接不是由人類程式設計師設定的,相反,神經網絡本質上是通過在大量數據中尋找模式來進行編程。
  • 一圖抵千言:帶你了解最直觀的神經網絡架構可視化
    神經網絡是複雜、多維、非線性的數組運算。如何在避免過於複雜或重複的情況下呈現深度學習模型架構的重要特徵呢?又該以何種方式清晰直觀、啟發性地呈現它們呢?(好看也是加分項!)無論研究還是教學項目對此都沒有固定標準。本文我們就來了解一下可視化整個神經網絡架構和特定模塊的工具和技巧。
  • 什麼?神經網絡還能創造新知識?
    全文共3243字,預計學習時長10分鐘或更長神經網絡(NNs)可以在不知道用顯式算法執行工作的情況下被設計和訓練於特定的任務,很多人都對此表示驚嘆。例如,著名的手寫體數字識別教程很容易執行,但其背後的邏輯還是隱藏在神經網絡下,僅能通過層次化結構、權值和激活函數略知一二。本文通過神經網絡透明原則來揭示其「黑盒知識」,為此來檢驗一個布爾異或函數的神經網絡。首先,利用已知異或屬性過程構造了一個自底向上的神經網絡,即清晰包含已知的代數關係。
  • 用深度神經網絡求解『薛丁格方程』,AI開啟量子化學新未來
    最近,來自柏林自由大學(Freie Universität Berlin) 的科學團隊取得了突破性進展,他們發表的一篇名為《利用深度神經網絡解電子薛丁格方程》的論文,登上了《Nature Chemistry》子刊。
  • 高中生都在研究神經網絡,我這個老師力不從心了
    甚至有人高呼他的研究比不少研究生還強,未來不可限量……美國高中生,把AI研究到什麼地步,能獲得「天才」的讚譽?為了達到這個目的,Isaac計劃使用3個不同的算法。第一個是模擬時序性物理過程(水流、彈道等)的機器學習算法,其中物理過程由微分方程建模。第二個算法是動畫算法,用來處理運動時的光影效果。第三是藝術風格算法,用來給結果做風格遷移。
  • 「神經網絡」能否代替「決策樹算法」?
    所以,我們擴展一下題目把對比延伸到:單棵決策樹,如比較常見的C4.5等以決策樹為基模型的集成學習算法(Ensemble Tree),如隨機森林,gradient boosting,和xgboost神經網絡,包括各種深度和結構的網絡我的看法是,
  • 用深度神經網絡求解『薛丁格方程』,AI開啟量子化學新未來|Nature...
    最近,來自柏林自由大學(Freie Universität Berlin) 的科學團隊取得了突破性進展,他們發表的一篇名為《利用深度神經網絡解電子薛丁格方程》的論文,登上了《Nature Chemistry》子刊。
  • 神經網絡如同青蛙的智力
    神經網絡模型屬於一種較為智能的判別過程,對於變量類型並沒有過多要求,可以有效地識別事物的不同特徵以及模式,例如不完全的信息、複雜的非線性特徵等等。通常,工作中使用的神經網絡模型為弱能的神經網絡,其智能程度猶如青蛙、老鼠的智力。
  • 人工智慧黑盒揭秘:深度神經網絡可視化技術
    但深度神經網絡又被稱為「黑盒」模型,多層隱藏結構,數據 / 特徵矢量化,海量決策關鍵元等因素讓模型使用者犯難:模型決策的依據是什麼?應該相信模型麼?特別是對於金融,醫藥,生物等關鍵型任務,深度學習模型的弱解釋性成為人工智慧項目落地的最大障礙。
  • 開源神經網絡框架Caffe2全介紹
    這是一個自動把圖片和視頻轉換成大師美術風格的神經網絡算法。在大約兩年前剛被發表的時候,在伺服器上處理單張照片需要秒級別的時間。到現在,我們已經成功做到實時的視頻風格轉換。不僅實時,在我們同事的努力下,我們還做到了在手機移動端本地實施演算。這相較於之前,已經有好幾個量級的效率提升。今天,我想給大家介紹一下讓這一切變成現實,以及將各種AI算法部署到產品中的神經網絡框架:Caffe2。
  • 深度學習教父辛頓:未來神經網絡可以重建人腦意識
    對於這些事情,神經網絡也同樣做不好嗎? 辛頓:當然有可能。 主持人:我們完全不知道它們是如何運作的,對嗎? 辛頓:是的,完全不知道。 主持人:我們不理解自上而下神經網絡是如何運作的。人類不知道神經網絡如何運作,這是神經網絡的核心要素。如果我們不知道它是如何運作的,神經網絡又如何能運作呢?
  • 電飯煲鐵釜好還是球釜好 電飯煲工作原理是什麼
    那麼,若想挑選到合適的電飯煲,首先我們得先搞懂電飯煲鐵釜與球釜之分,其次需要了解電飯煲的工作原理。快跟著小編一起去看看吧。那麼,若想挑選到合適的電飯煲,首先我們得先搞懂電飯煲鐵釜與球釜之分,其次需要了解電飯煲的工作原理。快跟著小編一起去看看吧。
  • 了解CNN這一篇就夠了:卷積神經網絡技術及發展
    不過,CNN究竟是什麼,涉及哪些概念,經過如何發展,真正要有邏輯地歸納一遍,估計不少人都說不清。日前,南洋理工大學研究人員梳理CNN發展歷史,從基礎組成部分講起,介紹並探討CNN在視覺識別方面的原理及應用,是系統深入理解CNN的好文。
  • 光神經網絡,正在照亮智能計算的未來
    如果問一個問題——能夠進行深度神經網絡計算的晶片有哪些?大家給出的答案可能五花八門:CPU、GPU、DSP、NPU……過去幾年裡,電子計算已經成為實現人工智慧算法——尤其是深度神經網絡模型——最重要的算力支撐。
  • 極驗發布全國首個專注於圖神經網絡的書籍,《深入淺出圖神經網絡...
    圖神經網絡是當前 AI 領域最為火爆的研究熱點之一,學術界與工業界各大公司紛紛投入大量資源研究。它在因果推理上擁有巨大潛力,有望解決深度學習無法處理的關係推理、可解釋性等一系列問題,而這些問題被業界認為是能夠推動 AI 出現實質性進展的關鍵。
  • 神經網絡機器翻譯技術及應用(下)
    神經網絡機器翻譯技術及應用(上)篇,我們為大家介紹了神經網絡機器翻譯的基本原理和挑戰,(下)篇繼續為大家講述機器翻譯的應用與未來。前面我們講了機器翻譯的原理以及神經網絡翻譯的發展、以及面臨的挑戰,我們現在看一看,機器翻譯現在有哪些應用?機器翻譯在越來越多地幫助和影響我們的生活。上圖中列出了幾個利用機器翻譯來進行日常學習和交流的例子。
  • 陽光學院打造「語用神經網絡機器翻譯」系統
    語言與智能研究團隊」演示了該系統的操作,由該團隊自主打造的「語用神經網絡機器翻譯」系統得到了與會專家的高度評價。據了解,由外國語與海外教育學院院長趙會軍博士帶領的陽光學院「語言與智能研究團隊」經過近六年的時間,共搜集和建立了8000多萬行英漢平行語料庫,試圖從語言學角度揭開神經網絡機器翻譯神秘「黑箱」的面紗,自主打造的「語用神經網絡機器翻譯」系統為語言學界在面向機器翻譯的語料和語言學理論及實證研究提供了平臺。