神經網路 專項1 FN 全連線網路(0806)

2021-10-23 10:45:52 字數 1538 閱讀 7615

定義:對n-1層和n層而言,n-1層的任意乙個節點,都和第n層所有節點有連線。即第n層的每個節點在進行計算的時候,啟用函式的輸入是n-1層所有節點的加權

引用自_寒潭雁影

顯然,計算公式為:z1=w11x1+w12x2+k1;y=1/(1+e的-z次冪)(其他節點類推)

選用啟用函式1/(1+e的-x次冪)

利用sigmoid進行啟用(類似於復合函式的過程)

步驟

a.前向傳播

將每個節點的表示式排列出來

對所有的x、k、w帶入實際數值,推導z(1)和y,再推o

y和o,是z代入啟用函式的結果

經過計算得出 z(1)、y、z(2)、o

#利用啟用函式完成兩個目標:資料歸一化、引入非線性

#偏置項,解除線性、非線性

b.反向傳播

根據上個步驟的輸入、輸出,以及期望輸出調整引數w

引入損失函式,計算當前損失

求損失函式在w上的偏導數(鏈式法則),帶入前向時求出的值,得到準確值

wnew=w-學習率×損失函式在該方向上的偏導數(具體值)

對於本次傳播中的所有w進行如上操作,就得到了一組全新的引數

#在這裡要注意層次,先從輸出層–隱含層,再從隱含層–輸入層

從後向前,這樣就完成了乙個輪次的引數調整,迴圈往復,直到loss符合預期

# 前向傳播,x 是當前層的輸入

deffp

(self, x)

: self.

input

= x.copy(

) self.output = self.weights.t.dot(self.

input

)+ self.bias

self.next_layer.fp(x=self.output)

# 反向傳播,gradient是當前層輸出對損失函式的梯度, lr是學習率

defbp

(self, gradient, lr)

: self.gradient = gradient.copy(

) last_layer_gradient = self.weights.dot(self.gradient)

self.last_layer.bp(gradient=last_layer_gradient, lr=lr)

grad_for_w = np.tile(self.

input

.t, self.output_shape)

# gradient for weights

self.weights -=

(grad_for_w * self.gradient)

.t * lr

self.bias -= self.gradient * lr # gradient for bias mat is 1

神經網路 全連線神經網路

全連線神經網路 也稱作多層感知機 mlp 1.1 神經元 神經元接收輸入向量x xx神經元節點有權重向量w和偏置項b 輸出值為f w tx b f w tx b f wtx b 在經過類似線性回歸之後 使用啟用函式對得到值進行操作 1.2 網路結構 個人對於每一層的理解就是 使用 這層維度,上層維度...

卷積神經網路 全連線 網路訓練

首先我們回顧下lenet網路結構 如圖1中紅色方框所示,在經過多次卷積 池化 卷積 池化操作後,接著是兩次全連線操作。全連線層是傳統的多層感知器,在輸出層中使用softmax啟用功能 也可以使用其他分類器,例如svm 術語 全連線 表示上一層中的每個神經元都連線到下一層中的每個神經元。卷積和池化層的...

卷積神經網路 全連線層

全連線層 全連線層與卷積層 全連線層與gap 全域性平均池化層 1 2 3 全連線層一般會把卷積輸出的二維特徵圖轉化為一維的乙個向量,全連線層的每乙個節點都與上一層的每個節點連線,是把前一層的輸出特徵都綜合起來,所以該層的權值引數是最多的。作用 全連線網路的作用就是將最後一層卷積得到的feature...