深度學習入門 第5章 誤差反向傳播法(二)

2022-09-03 23:51:10 字數 2360 閱讀 1624

此為本人學習《深度學習入門》的學習筆記

本節將用 python 實現前面的購買蘋果的例子。這裡,我們把要實現的計算圖的乘法節點稱為「乘法層」(mullayer),加法節點稱為「加法層」(addlayer)。

1、乘法層的實現

層的實現中有兩個共通的方法(介面)forward()

class

mullayer:

def__init__

(self):

self.x =none

self.y =none

defforward(self, x, y):

self.x =x

self.y =y

out = x *y

return

out

defbackward(self, dout):

dx = dout * self.y #

翻轉x和y

圖 5-16 購買 2 個蘋果

使用這個乘法層的話,圖 5-16 的正向傳播可以像下面這樣實現

圖 5-17 購買 2 個蘋果和 3 個橘子

用 python 實現圖 5-17 的計算圖的過程如下所示

圖 5-18 relu 層的計算圖

class

relu:

def__init__

(self):

self.mask =none

defforward(self, x):

self.mask = (x <=0)

out =x.copy()

out[self.mask] =0

return

out

defbackward(self, dout):

dout[self.mask] =0

dx =dout

return dx

relu實現sigmoid函式,sigmoid函式由式(5.9)表示

用計算圖表示式子(5.9)的話,則如圖5-19所示

圖 5-19 sigmoid 層的計算圖(僅正向傳播)

步驟 1

步驟 2

「+」節點將上游的值原封不動地傳給下游。計算圖如下所示。

步驟 3

計算圖中,上游的值乘以正向傳播時的輸出(這個例子中是 exp(-x))後,再傳給下游。

步驟 4

「×」節點將正向傳播時的值翻轉後做乘法運算。因此,這裡要乘以 -1。

圖 5-20 sigmoid 層的計算圖

機器學習 誤差逆傳播演算法 反向傳播演算法

誤差逆傳播演算法 error backpropagation,bp 是神經網路中常用的傳播演算法。bp演算法不僅可以應用於多層前饋神經網路,還可以應用於其他型別的神經網路,如訓練遞迴神經網路。通常所說的 bp網路 一般是指用bp演算法訓練的多層前饋神經網路。給定訓練集 d left y x y x ...

反向誤差傳播演算法學習筆記

構建cost function的表示式的函式,其神經網路圖如下,其 1和 2已經訓練好。輸入x為5000 400的矩陣 5000個元素,400個畫素 y為5000 1的矩陣 其中有5000個結果,以1,2,3,4,5,6,7,9,10 代表0 為label a1 ones size x,1 1 x ...

三 PyTorch 深度學習 反向傳播

import torch x data 1.0 2.0 3.0 y data 2.0 4.0 6.0 w torch.tensor 1.0 w的初值為1.0 w.requires grad true 需要計算梯度 defforward x return x w w是乙個tensor defloss ...