全連線神經網路 也稱作多層感知機(mlp)
1.1 神經元
神經元接收輸入向量x
xx神經元節點有權重向量w和偏置項b 輸出值為f(w
tx+b
)f(w^tx+b)
f(wtx+
b)在經過類似線性回歸之後 使用啟用函式對得到值進行操作
1.2 網路結構
個人對於每一層的理解就是 使用[這層維度,上層維度]的權重矩陣
將輸入轉化為其他維度 並且使用非線性的啟用函式 得到輸出
1.3 正向傳播
確定網路結構之後
假設有m層網路 第 l
ll 層的權重矩陣 w
lw^l
wl偏置為 b
lb^l
bl整個網路從輸入到輸出的流程為
1.4 反向傳播
如何訓練每一層的w和b 就需要反向傳播演算法
假設單個樣本的損失函式是:
l =1
2(h(
x)−y
)2l=\cfrac12(h(x)-y)^2
l=21(
h(x)
−y)2
目標優化函式:
l =1
2m∑i
=1m(
h(xi
)−yi
)2l=\cfrac1\sum_^m(h(x_i)-y_i)^2
l=2m1
i=1∑
m(h
(xi
)−yi
)2反向傳播演算法的流程是:
需要推導出每一層都適用的結論是
▽ wl
l=[▽
ull]
(xl−
1)t\big********down _l=[\big********down _l] (x^)^t
▽wll=
[▽ul
l](
xl−1
)t▽ bl
l=▽u
ll\big********down _l=\big********down _l
▽bll=
▽ul
l可見需要每一層 損失函式對u的梯度
然後只有輸出層的這個梯度是可以直接求出來的
隱藏層的這個梯度都依靠於下一層才能求出來
所以按順序計算nl,
nl−1
,nl−
2,..
..,2
n_l,n_l-1,n_l-2,....,2
nl,nl
−1,
nl−
2,..
..,2
層的梯度
如果訓練時使用多個樣本 對每個樣本求出梯度 求出梯度的均值 進行梯度下降即可
反向傳播演算法的證明還需掌握 (復合函式求導)
mlp神經網路 MLP(全連線神經網路)的反向傳播
3 梯度消失與 mlp可以說是最簡單的一種ann結構了,輸入通過若干個隱藏層後,進入輸出層得到輸出。下圖展示了只有乙個單隱層的mlp。圖1 單隱層mlp 如果使用交叉熵損失函式 cross entropy error function 需要在輸出層的狀態值 如果使用mse損失函式 mean squa...
什麼是全連線神經網路
對n 1層和n層而言 n 1層的任意乙個節點,都和第n層所有節點有連線。即第n層的每個節點在進行計算的時候,啟用函式的輸入是n 1層所有節點的加權。全連線是一種不錯的模式,但是網路很大的時候,訓練速度回很慢。部分連線就是認為的切斷某兩個節點直接的連線,這樣訓練時計算量大大減小 最簡單的全連線神經網路...
tensorflow2 構造全連線神經網路
使用隨機數,生成樣本資料,作為輸入,然後經過中間的隱藏層,對資料進行擬合。1個輸入單元,10個隱含單元,1個輸出單元。y coding utf 8 created on thu may 16 10 49 34 2019 author 666 import tensorflow as tf impor...