人工神經網路(ANN)

2021-09-07 22:16:13 字數 1553 閱讀 3559

參考資料:

從函式上來看,神經網路是回歸方程的級聯疊加,用來逼近目標函式的,本質是一種模擬特徵與目標之間的真實關係函式的模型

乙個有向拓撲,每層有若干節點,節點間有邊,邊上有權值。

輸入層隱藏層:多層;後層是前層各節點值的線性組合的函式,即y=f(x0+w1x1+w2x2+...+wnxn),線性組合的係數就是邊的權值,為免計算量複雜,規定最多只能對線性組合做一次非線性變換,如sgn函式(0個隱藏層,此時即感知機)、sigmoid函式(1個隱藏層)、relu函式(更多個隱藏層)等;

輸出層:對於一次輸入,輸出層各節點都有乙個值,把模式歸為輸出點值大的那一類

設計神經網路通常要做的就是設計網路有幾層、每層有幾個節點、以及節點間邊的權值,權值通過神經網路訓練調整得到。主要的任務是訓練權值,因此實現乙個神經網路最需要的是線性代數庫。

在訓練權值上,有bp反向傳播演算法

反向逐層傳播輸出層的誤差,以間接計算隱藏層的誤差並基於此修正權值。

正向傳播:資訊從輸入層經隱藏層逐層計算各單元的輸出值;反向傳播:由輸出層誤差逐層向前計算隱藏層各單元的誤差,並基於此修正前層權值。

注:圖中的單層指乙個計算層,所以整個網路有兩層(此時即感知機);類似,兩層網路指兩個計算層,所以整個網路有三層。

隱藏層的引數矩陣的作用就是使得資料的原始座標空間從線性不可分,轉換成了線性可分,後一層是前一層的線性組合的函式,即是對前一層的線性分類,因此就達到了總體效果——對原始資料進行非線性分類。

理論證明,三層神經網路(乙個隱藏層)可以實現任意的邏輯運算,在啟用函式為sigmoid函式的情況下,可以逼近任何非線性多元函式。

優化問題只是訓練中的乙個部分。機器學習問題之所以稱為學習問題,而不是優化問題,就是因為它不僅要求資料在訓練集上求得乙個較小的誤差,在測試集上也要表現好。因為模型最終是要部署到沒有見過訓練資料的真實場景。提公升模型在測試集上的**效果的主題叫做泛化(generalization),相關方法被稱作正則化(regularization)。神經網路中常用的泛化技術有權重衰減等。

儘管使用了bp演算法,一次神經網路的訓練仍然耗時太久,而且困擾訓練優化的乙個問題就是區域性最優解問題,這使得神經網路的優化較為困難。同時,隱藏層的節點數需要調參,這使得使用不太方便,工程和研究人員對此多有抱怨。

在單層(乙個計算層,即總共兩層)神經網路時,我們使用的啟用函式是sgn函式。到了兩層神經網路時,我們使用的最多的是sigmoid函式。而到了多層神經網路時,通過一系列的研究發現,relu函式在訓練多層神經網路時,更容易收斂,並且**效能更好。因此,目前在深度學習中,最流行的非線性函式是relu函式。relu函式不是傳統的非線性函式,而是分段線性函式。其表示式非常簡單,就是y=max(x,0)。簡而言之,在x大於0,輸出就是輸入,而在x小於0時,輸出就保持為0。這種函式的設計啟發來自於生物神經元對於激勵的線性響應,以及當低於某個閾值後就不再響應的模擬。

人工神經網路ANN

一 基本概念 ann artificial neural network前饋神經網路的縮寫 二 模型構建 2.1 神經元 2.2 啟用函式 意義 啟用函式是用來讓給神經網路加入非線性因素的,因為線性模型的表達能力不夠。如果沒有啟用函式,那麼該網路僅能表達線性對映,此時即便有再多的隱藏層,其整個網路跟...

人工神經網路(ANN)學習

神經元數學模型o i t 1 f 其中o為輸出,f為神經元變換函式,w為權重,t為閾值。如果新增乙個x0 1,w0j tj,可以簡化為 oj f w tjx 變換函式 有四種 閾值型 sigmoid 分段線性 概率分布 boltzmann 神經網路學習 通用學習規則 w j r wj t x t d...

神經網路 ANN(一)

神經網路 ann 新年啦!先給自己乙個小小的改變,比如寫一篇部落格。再給自己乙個小目標,比如3天內徒手寫個ann 所以,以下內容是在3天的時間內學到的,未免有不足之處,望指教。ann不是一下子就可以被發明出來的,期間經過了幾代人的努力才慢慢成型 參考 從單個神經元講起。乙個神經元其實很笨,它可以有多...