圖中左側小矩陣的尺寸為過濾器的尺寸,二右側單位矩陣的深度為過濾器的深度。過濾器的前向傳播過程就是通過小矩陣的節點計算出右側單位矩陣中節點的過程。
卷積層結構的前向傳播過程就是通過將乙個過濾器從神經網路當前層的左上角移動到右下角,並且在移動中計算每乙個對應的單位矩陣得到的。過濾器每移動一次就得到乙個值,將這些數值拼接成乙個新的矩陣,就完成了卷積層前向傳播的過程。
為了避免尺寸變化,可以在當前層矩陣的邊界加入全0填充。除了使用全0填充,還可以通過設定步長來調整結果矩陣的大小。
在卷積神經網路中,每乙個卷積層使用的過濾器中的引數都是一樣的,這是卷積神經網路重要的性質。共享過濾器的引數可以使得影象上的內容不受位置影響,所以通過卷積層之後無論數字在影象上的哪個位置,結果都一樣。**共享每乙個卷積層中過濾器中的引數可以巨幅減少神經網路上的引數。卷積層的引數個數和的大小無關,它只和過濾器的尺寸、深度以及當前層節點矩陣的深度有關。**這使得卷積神經網路可以更好的擴充套件到更大的影象資料上。
**實現
import tensorflow as tf
filter_weight = tf.get_variable(
"weights",[5,5,3,16],
initializer=tf.truncated_normal_initializer(stddev=0.1))
biases = tf.get_variable(
"biases",[16],tf.constant_initializer(0.1))
conv = tf.nn.conv2d(
input,filter_weight,strides=[1,1,1,1],padding="same")
bias = tf.nn.bias_add(conv,biases)
actived_conv = tf.nn.relu(bias)
tf.reset_default_graph()
最大池化的前向傳播演算法
pool = tf.nn.max_pool(actived_conv,ksize=[1,3,3,1],strides=[1,2,2,1],padding="same")
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...
卷積神經網路結構
卷積神將網路的計算公式為 n w f 2p s 1 其中n 輸出大小 w 輸入大小 f 卷積核大小 p 填充值的大小 s 步長大小 即與用和原輸入層大小 深度完全一致的卷積核進行卷積,形成11x的全連線層 即展開 其中x由卷積核的層數決定。寫 時也可以直接展開為一維 不改變輸入層的大小,但改變輸入和...