閱讀580 返回首頁    go 阿裏雲 go 技術社區[雲棲]


新手,你需要了解的關於神經網絡的所有知識

進行機器學習的很多人容易被神經網絡中的各種名詞或者概念搞懵,這篇文章將帶你了解這些名詞或者概念的含義,以便你能更好更全麵的了解它們。

1ebe6962ecf0b6dd0c6851bc59c7fe3aab26ccd9

神經元(Node):它是神經網絡的基本單位。它獲得一定數量的輸入和一個偏置值。當信號(值)到達時會乘以一個權值。如果神經元有4個輸入,那麼就有4個權值,權重可以在訓練時調整。

13e076883da57f0d4cb0dec3ba6b42f571c5b459

e7ac188f456a0d1c4c7e88eef6adc40d5c9346d2

神經網絡中單個神經元的運作

16c2e208234cf8c7151733312e2c13d62878764c

連接:它將一個神經元連接到另一層或同一層的另一個神經元。連接伴隨著與之相關聯的權值。訓練的目標是更新此權值以減少損失(即錯誤)。

f6297a0becac73f8b6b9dbcd2b12e86fe6a454b5

偏置(偏移):它是神經元的額外輸入,它始終為1,並具有自己的連接權重。這確保即使所有的輸入都為空(全部為0),神經元也會激活。

激活功能(傳遞函數):激活函數用於將非線性引入神經網絡。它會將值縮小到較小的範圍內。Sigmoid激活函數的壓縮範圍為0到1之間。在深度學習中有許多激活函數可用,ReLU,SeLU和TanH均優於Sigmoid激活函數。

f4ec549824ef61af279e793a759b503f56c05c46

激活函數來源 -  https://prog3.com/sbdm/blog/cyh_24/article/details/50593400

ed28d0f72540fc6cafada769c941b955b361b9de

基礎的神經網絡布局

輸入層 :神經網絡中的第一層。它需要輸入信號(值)並將它們傳遞到下一層。它不對輸入信號(值)做任何操作,並且沒有關聯的權重和偏置值。在我們的網絡中,我們有4個輸入信號x1,x2,x3,x4。

隱藏層:隱藏層具有對輸入數據應用不同變換的神經元(節點)。一個隱藏層是垂直排列的神經元的集合(Representation)。在我們給出的圖像中有5個隱藏層。在我們的網絡中,第一隱層有4個神經元(節點),第2層有5個神經元,第3層有6個神經元,第4層有4個,第5層有3個神經元。最後一個隱藏層將值傳遞給輸出層。隱藏層中的每個神經元都與下一層的每一個神經元有連接,因此我們有一個完全連接的隱藏層。

輸出層 :著是網絡的最後一層,它接收來自最後一個隱藏層的輸入。通過這個層,我們可以知道期望的值和期望的範圍。在這個網絡中,輸出層有3個神經元,輸出y1,y2,y3。

Input Shape :它是我們傳遞給輸入層的輸入矩陣形狀。我們網絡的輸入層有4個神經元,它期望1個樣本的4個值。如果我們一次隻提供一個樣本,我們網絡的期望輸入形狀是(1,4,1)。如果我們提供100個樣品,則輸入形狀將為(100,4,1)。不同的庫期望形狀的格式是不同的。

權重(參數):權重表示單元之間連接的強度。如果從節點1到節點2的權重比較大,意味著神經元1對神經元2的影響比較大。權重降低了輸入值的重要性。當權重接近零時意味著更改此輸入將不會更改輸出。負權重意味著增加此輸入會降低輸出。權重決定了輸入對輸出的影響程度。

dbea817c4af51ac976d63b1b2ccc1133a10f1ef6

前向傳播

前向傳播:前向傳播的過程是向神經網絡饋送輸入值並得到我們稱為預測值的輸出。當我們將輸入值提供給神經網絡的第一層時,它沒有進行任何操作。第二層從第一層獲取值並進行乘法,加法和激活操作,然後將得到的值傳遞給下一層。在後麵的層中執行相同的操作,最後我們在最後一層得到一個輸出值。

767a0ec978a1edab6da649c0ef9eef9596d562d7

反向傳播

反向傳播:前向傳播後,我們得到一個被稱為預測值的輸出值。為了計算誤差,我們將預測值與實際輸出值進行比較。我們使用損失函數(下麵會提到)來計算誤差值。然後我們計算神經網絡中每一個誤差值的導數和每一個權重。反向傳播使用微分學的鏈式法則。在鏈條法則中,首先我們計算對應最後一層權值的誤差值的導數。我們稱這些導數為:梯度,然後使用這些梯度值來計算倒數第二層的梯度。重複此過程,直到我們得到神經網絡中每個權重的梯度。然後從權值中減去該梯度值,以減少誤差值。這樣,我們就更接近(下降)局部最小值(也就是說最小的損失)。

9a385de7a0b2abb57814e79e2a8a57b56b37e47a

學習率:當我們訓練神經網絡時,我們通常使用梯度下降法來優化權重。在每次迭代中,我們都使用反向傳播來計算每個權重的損失函數的導數,並從這個權重中減去它。學習率決定了你想要更新權重(參數)值的速度。學習率不能太低導致收斂的速度緩慢,也不能太高導致找不到局部最小值。

5e29901ab5dd398a3324f95df8d97bf1447effdb

精確率和召回率

準確率:準確率是指測量值與標準值或已知值的接近程度。

精確率:精確率是指兩個或更多測量值的接近程度。它代表測量的重複性或再現性。

召回率:召回率是指在相關實例總數中已經檢索到的相關實例的占比。

c7d2541d7c9cbedbad1de1f72e05ef3a99c91794

Tp是真正的陽性,Tn是真陰性,Fp是假陽性,Fn是假陰性

混淆矩陣  – 維基百科:

在機器學習領域特別是關於統計分類的問題,一個混淆矩陣(也稱為誤差矩陣),是一種特定的表格布局,它讓你可以將算法的性能可視化(通常在監督學習中使用,在無監督學習它通常稱為匹配矩陣)。矩陣的每一行表示預測類中的實例,而每一列表示實際類中的實例(反之亦然)。這個名字源於這樣一個事實:它很容易看出係統是否混淆了兩個類(通常是錯誤地標記成另一個)。

d7cc5e31e5425ca0c1d8de9564f5884a1aad4617

混淆矩陣

收斂:收斂是指迭代進行時輸出越來越接近特定值。

正則化 :用於克服過擬合問題。在正則化中,我們通過在權重向量w(它是給定算法中的學習參數的向量)中添加L1(LASSO)或L2(Ridge)範數來懲罰我們的損失項。

L(損失函數)+ λN(w) – 這裏λ是你的正則項,N(w)是L1或L2範數

歸一化:數據歸一化是將一個或多個屬性重新調整到0到1的範圍的過程。當你不知道數據的分布或者當你知道分布不是高斯函數(鍾形曲線)時,歸一化是一種很好的解決方法。它有助於加速學習過程。

全連接層 : 當一層中的所有節點的激活進入下一層中的每個節點時。當第L層中的所有節點連接到第(L + 1)層中的所有節點時,我們將這些層稱為完全連接的層。

178fd62beda35b9e71a3f00fbc3c5f181e6eaecd

全連接層

損失函數/代價函數: 損失函數計算單個訓練示例的誤差。代價函數是整個訓練集的損失函數的平均值。

  • mse:均方誤差。

  • binary_crossentropy:用於二進製對數損失(logloss)。

  • categorical_crossentropy:用於多類的對數損失(logloss)。

模型優化器:優化器是一種用於更新模型中權重的搜索技術。

  • SGD:隨機梯度下降,支持動量。

  • RMSprop:由Geoff Hinton提出的自適應學習率優化方法。

  • Adam: Adaptive Moment Estimation (Adam自適應時刻估計方法),能計算每個參數的自適應學習率。

性能指標:性能指標用於測量神經網絡的性能。準確率,損失,驗證精度,驗證損失,平均絕對誤差,精確率,召回率和f1分數都是一些性能指標。

批量尺寸 :通過前向或反向訓練的示例數。批量尺寸越大,你需要的內存空間就越大。

訓練次數:模型接觸訓練數據集的次數。每一次等於一次通過前向或反向的所有訓練實例。

本文由AiTechYun編譯,轉載請注明出處。更多內容關注微信公眾號:atyun_com

最後更新:2017-11-03 17:04:55

  上一篇:go  你家的攝像頭安全嗎? 央視曝光大量家庭攝像頭遭入侵……
  下一篇:go  11月3日雲棲精選夜讀:《maven實戰》讀書筆記2——maven安裝(windows和eclipse插件)