前饋神經網路是最早被提出的神經網路,熟悉的單層感知機,多層感知機,卷積深度網路等都屬於前饋神經網路,之所以叫前饋,可能是因為資訊向前流:資料從輸入–計算–輸出步驟。像rnn有反饋連線的叫反饋神經網路。
如圖:乙個典型的神經元模型:包含n個輸入,1個輸出,計算功能(先求和,再將結果送入f啟用函式中) 圖中箭頭代表連線,每個箭頭都會包含乙個權值w。乙個神經網路的訓練演算法就是讓權重的值調整到最佳,使得整個網路的訓練效果最好。
感知機僅有兩層:輸入層和輸出層。如圖:輸入層有4個輸入單元,輸出層有2個神經單元,其中y1的值是4個輸入單元與權重相乘再求和,然後再用f啟用函式啟用後的值,同理f2也是。雖然輸入相同不過對應的權重不同,
由於單層感知機對線性可分或近似可分的資料處理效果很好,但是對線性不可分的資料的效果不理想,即使人們想到了增加輸出層的神經元數,調正啟用函式,都還是不好,後來人們想到增加層數,這就引入了多層神經網路。如圖:包含n個輸入單元,p個隱藏單元,q個輸出神經元 共兩層神經網路。
增加了層數隨之而來的計算複雜度也增加了。此刻人們面臨的問題大致如下:
面對這些問題,直到2023年hinton和rumelhar等人提出了**反向傳播(bp)**演算法,解決了兩層神經網路所需要的計算量問題。
多層神經網路採用反向傳播的主要思想步驟如下:
①②就是前向傳播過程,③④就是反向傳播過程。
如圖(為了簡單介紹,省略偏差b):c是損失函式,z是啟用函式,
前向傳播:z=∑
i=12
(wix
i)z = \sum_^2(w_ix_i)
z=i=1∑
2(w
ixi
),a =g
(z)=
1/(1
+e−z
)a= g(z) = 1/(1+e^)
a=g(z)
=1/(
1+e−
z)c =1
/2(∣
∣a−y
∣∣2)
c = 1/2(||a-y||^2)
c=1/2(
∣∣a−
y∣∣2
)反向傳播:
δ (a
)=∂c
/∂a=
−(y−
a)\delta^ = \partial c/\partial a = -(y-a)
δ(a)=∂
c/∂a
=−(y
−a)δ(z
)=∂c
/∂z=
(∂c/
∂a)∗
(∂a/
∂z)=
δ(a)
a(1−
a)\delta^ = \partial c/\partial z =(\partial c/\partial a ) * ( \partial a/\partial z) = \delta^ a(1-a)
δ(z)=∂
c/∂z
=(∂c
/∂a)
∗(∂a
/∂z)
=δ(a
)a(1
−a)再根據鏈式求導法則求c關於權重w和偏差b的梯度。
∇ wc
=(∂c
/∂z)
∗(∂z
/∂w)
=δ(z
)xt\nabla_wc =(\partial c/\partial z)* ( \partial z/\partial w) =\delta^ x^t
∇wc=(
∂c/∂
z)∗(
∂z/∂
w)=δ
(z)x
t隨著神經網路的層數的增加,計算的複雜度增加,因微積分的鏈式規則導致的梯度不穩定,因深度導致的bp演算法困難,資訊丟失,對超引數敏感,對初始資料敏感,以及因此而導致的欠擬合或過擬合等,面對這些問題,目前也有策略,雖然不是完美,但也不錯。如下:
如何選擇啟用函式?常見的有:sigmoid,tanh,relu,softmax
圖中分別是:sigmoid , tanh, relu啟用函式
其對應的導數圖如下:
答:當神經網路層數不多時,選擇這四個都可以,當搭建的神經網路層數較多時,需要適當選舉,不當將導致梯度消失,不宜選擇sigmoid,tanh因為它們導數都小於1,將導致梯度消失。當然導數也不能大於1,大於1將導致梯度**。
《python深度學習基於tensorflow 》吳茂貴 王冬 李濤 楊本法 著
神經網路基礎知識
1 前饋神經網路 前饋神經網路描述的是網路的結構,是指每一層的神經元只接受前一層神經元的輸入,並且輸出到下一層。2 bp神經網路 3 mlp mlp是多層感知機也被稱為多層神經網路,是一種前向結構,包括輸入層 隱藏層和輸出層。至少三層結構 即隱藏層只有一層網路 如圖所示 4 cnn cnn就是著名的...
神經網路基礎知識(神經網路簡介)
一 生物神經網路 神經元的排列和突觸的強度 由複雜的化學過程決定 確立了神經網路的功能。突觸有兩種型別,興奮性突觸和抑制性突觸。前者產生正突觸後電位,後者產生負突觸後電位。抑制性 神經元雖然接收到其他神經元傳遞的資訊,但沒有向外傳遞資訊,該神經元稱 抑制性 的 興奮性 當乙個神經元的樹突接收的興奮資...
神經網路基礎知識收集
更新中 1 神經網路 人工神經網路 artificial neural network,ann 是指一系列受生物學和神經學啟發的數學模型。這些模型主要是通過對人腦的神經元網路進行抽象,構建人工神經元,並按照一定拓撲結構來建立人工神經元之間的連線,來模擬生物神經網路。在人工智慧領域,人工神經網路也常常...