初識神經網絡中的各種層和神經網絡結構

一、卷積層、激活層、池化層

深入學習卷積神經網絡中卷積層和池化層的意義

1、激活層

     所謂激活,實際上是對卷積層的輸出結果做一次非線性映射。激活函數可以引入非線性因素,解決線性模型所不能解決的問題。[深度學習]人工神經網絡中激勵函數作用詳解

      從上圖中可以看到,輸入信息x在神經元內首先經過加權求和,然後通過激活函數的非線性轉換,將數據控制在一定範圍區間內。轉換的結果作爲下一層神經元的輸入,或作爲結果進行輸出。

      常見的激勵函數:sigmoid函數、tanh函數、ReLu函數、SoftMax函數、dropout函數等。

2、池化層

     所謂池化(欠採樣或下采樣),主要用於特徵降維,壓縮數據和參數的數量,減小過擬合

二、全連接層

全連接層的作用是什麼? - 魏秀參的回答 - 知乎

CNN 入門講解:什麼是全連接層? - 蔣竺波的文章 - 知乎

1、經過前面若干次卷積+激活+池化後,終於來到了全連接層(fully connected layers,FC)

     其實在全連接層之前,如果神經元數目過大,學習能力強,有可能出現過擬合。

     因此,可以引入dropout操作,來隨機刪除神經網絡中的部分神經元,來解決此問題。

2、全連接層,在整個卷積神經網絡中起到“分類器”的作用。

3、如果說卷積層、池化層和激活函數層等操作是將原始數據映射到隱層特徵空間的話,

     全連接層則起到將學到的“分佈式特徵表示”映射到樣本標記空間的作用。

三、輸出層

1、最後一層全連接+Softmax

2、linear層:torch.nn.Linear()函數的理解

class torch.nn.Linear(in_features,out_features,bias = True

對應的線性變換公式如下所示:這裏的A便是那個權重矩陣
這裏的A便是那個權重矩陣
Parameter:
in_features :每個輸入樣本的大小
out_features : 每個輸出樣本的大小
bias :如果設置爲False,則圖層不會學習附加偏差。默認值:True
Shape:
Input: (N,in_features)
Output:(N,out_features)
weight : (out_features, in_features)
bias : (out_features,1)
Example:

m = nn.Linear(20, 30)
input = autograd.Variable(torch.randn(128, 20))
output = m(input)
print(output.size())

在這個案例中,in_features=20out_features=30, N=128,

因此x(128,20)weight(30,20)bias(30,1),故將weight轉置之後帶入上述線性變換公式有:
(128,20)*(20,30)+(30,1) = (128,30),所以,output.size是 (128,30)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章