[DL]單個神經元

一、神經元的擬合原理

一個神經元由以下幾個關鍵知識點組成:激活函數;損失函數;梯度下降。
單個神經元網絡模型:
單個神經元網絡模型
其計算公式:計算公式
模型每次的學習都是爲了調整w和b,從而得到一個合適的值,最終由這個值配合運算公式所形成的邏輯就是神經網絡的模型。我們把w和b賦予合適的值時,再配合合適的激活函數,就會發現它可以產生很好的擬合效果。
1、正向傳播:數據從輸入到輸出的流向傳遞過程爲正向傳播。它是在一個假設由合適的w和b的基礎上,纔可以實現對現實環境的正確擬合。但是在實際過程中,我們無法得知w和b的值具體是多少纔算是正常的。於是加入了一個訓練過程,通過反向誤差傳遞的方法讓模型自動來修正,最終產生一個合適的權重。
2、反向傳播:反向傳播的意義–告訴模型我們需要將w和b調整到多少。在剛開始沒有得到合適的權重時,正向傳播生成的結果與實際的標籤是有誤差的,反向傳播就是要把這個誤差傳遞給權重,讓權重做適當的調整來達到一個合適的輸出。BP算法又稱“誤差反向傳播算法”。我們最終的目的,是要讓正向傳播的輸出結果與標籤間的誤差最小化,這就是反向傳播的核心思想。
爲了讓損失值(將輸出值與標籤直接相減,或是做平方差等運算)變得最小,我們運用數學知識,選擇一個損失值的表達式讓這個表達式有最小值,接着通過求導的方式,找到最小值時刻的函數切線斜率(也就是梯度),從而讓w和b的值沿着這個梯度來調整。
至於每次調整多少,我們引入一個叫做“學習率”的參數來空值,這樣通過不斷的迭代,使誤差逐步接近最小值,最終達到我們的目標。

二、激活函數

激活函數的主要作用就是用來加入非線性因素的,以解決線性模型表達能力不足的缺陷,在整個神經網絡裏起到至關重要的作用。
因爲神經網絡的數學基礎是處處可微的,所以選取的激活函數要能保證數據輸入與輸出也是可微的。
在神經網絡裏常用的激活函數有Sigmoid、Tanh和relu等。

三、softmax算法

softmax基本上可以算是分類任務的標配。
現實生活中需要對某一問題進行多種分類,這時就需要使用soft max算法。如果判斷輸入屬於某一個類的概率大於屬於其他類的概率,那麼這個類對應的值就逼近於1,其他類的值就逼近於0。該算法的主要應用就是多分類,而且時互斥的,即只能屬於其中一個類。與sigmoid類的激活函數不同的是,一般的激活函數只能分兩類,所以可以理解成soft max是Sigmoid類的激活函數的擴展,其算法式爲:soft max = exp(logits)/reduce_sum(exp(logits), dim)

四、損失函數

損失函數用於描述模型預測值與真實值的差距大小。一般有兩種比較常見的算法–均值平方差(MSE)和交叉熵。

五、梯度下降

梯度下降是一個最優化算法,通常也稱爲最速下降法,常用於機器學習和人工智能中遞歸性地逼近最小偏差模型,梯度下降地方向也就是用負梯度方向爲搜索方向,沿着梯度下降地方向求極小值。
在訓練過程中,每次的正向傳播後都會得到輸出值與真實值的損失值,這個損失值越小,代表模型越好,於是梯度下降的算法就用在這裏,幫助尋找最小的那個損失值,從而可以反推出對應的學習參數w和b,達到優化模型的效果。
常用的梯度下降方法可以分爲:批量梯度下降、隨機梯度下降和小批量梯度下降。
1、退化學習率:在訓練的速度與精度之間找到平衡

六、初始化學習參數

在定義學習參數時可以通過get_variable和Variable兩個方式,對於一個網絡模型,參數不同的初始化情況,對網絡的影響會很大,所以在Tensor Flow提供了很多具有不同特性的初始化函數。

七、單個神經元的擴展-Maxout網絡

Maxout網絡可以理解爲單個神經元的擴展,主要是擴展單個神經元裏面的激活函數。
一個神經元的作用,類似人類的神經細胞,不同的神經元會因爲輸入的不同而產生不同的輸出,即不同的細胞關心的信號不同。依賴於這個原理,現在的做法就是相當於同時使用多個神經元放在一起,哪個有效果就用哪個。所以這樣的網絡會有更好的效果。
Maxout是將激活函數變成一個網絡選擇器,原理就是將多個神經元並列地放在一起,從它們地輸出結果中找到最大地那個,代表對特徵響應最敏感,然後取這個神經元的結果參與後面的運算。
Maxout的擬合功能很強大,但是也會有節點過多、參數過多、訓練過慢的缺點。

閱讀筆記《深度學習之Tensor Flow入門、原理與進階實戰》–李金洪

發佈了74 篇原創文章 · 獲贊 18 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章