lenet網路有五層。兩個卷積層,三個全連線層。這裡說的卷積層包括啟用層和池化層,全連線層包括連線層和啟用層。
self.conv = torch.nn.sequential(
torch.nn.conv2d(in_channels=
1,out_channels=
6,kernel_size=
5,stride=
1,padding=0)
, torch.nn.sigmoid(),
torch.nn.maxpool2d(kernel_size=(2
,2),stride=2)
,
torch.nn.conv2d(in_channels=
6,out_channels=
16,kernel_size=
5,stride=
1,padding=0)
, torch.nn.sigmoid(),
torch.nn.maxpool2d(kernel_size=(2
,2),stride=2)
)self.fc = torch.nn.sequential(
torch.nn.linear(16*
4*4,
120)
, torch.nn.sigmoid(),
torch.nn.linear(
120,84)
, torch.nn.sigmoid(),
torch.nn.linear(84,
10))
alexnet網路一共有八層,前有五個卷積層,後面為三個全連線層。
self.conv = nn.sequential(
nn.conv2d(1,
96,11,
4), nn.relu(),
nn.maxpool2d(3,
2),
nn.conv2d(96,
256,5,
1,2)
, nn.relu(),
nn.maxpool2d(3,
2),
nn.conv2d(
256,
384,3,
1,1)
, nn.relu(),
nn.conv2d(
384,
384,3,
1,1)
, nn.relu(),
nn.conv2d(
384,
256,3,
1,1)
, nn.relu(),
nn.maxpool2d(3,
2))
self.fc = nn.sequential(
nn.linear(
256*5*
5,4096),
nn.relu(),
nn.dropout(
0.5)
, nn.linear(
4096
,4096),
nn.relu(),
nn.dropout(
0.5)
,
nn.linear(
4096,10
),)
啟用函式的選取和區別:
f (x
)=1/
(1+e
(−x)
)f(x)=/)}
f(x)=1
/(1+
e(−x
))(1)sigmoid函式當值特別大或者特別小,會是梯度趨於0,即sigmoid函式飽和使梯度消失。
(2)sigmoid函式輸出不是「零為中心」
(3)指數函式的計算是比較消耗計算資源的。
t an
h(x)
=(1−
e−2x
)/(1
+e−2
x)
tanh(x) = )/(1+e^)}
tanh(x
)=(1
−e−2
x)/(
1+e−
2x)(1)tanh解決了sigmoid的輸出非「零為中心」的問題
(2)依然有過飽和的問題
(3)依然進行的是指數運算
f (x
)=ma
x(0,
x)
f(x)=max(0,x)
f(x)=m
ax(0
,x)(1)解決了梯度消失的問題,至少x在正區間內,神經元不會飽和;
(2)由於relu線性、非飽和的形式,在sgd中能夠快速收斂;
(3)運算速度要快很多。relu函式只有線性關係,不需要指數計算,不管前向傳播還是反向傳播,計算速度都比sigmoid和tanh快。
還有幾種類似relu函式的啟用函式,這裡不詳細說了
神經網路學習(十一)卷積神經網路初識
系列部落格是博主學習神經網路中相關的筆記和一些個人理解,僅為作者記錄筆記之用,不免有很多細節不對之處。卷積神經網路 convolutional neural network 採用三種基本概念 區域性感受野 local receptive fields 共享權值 shared weights 和池化 ...
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...