北大IT勉強会共同ウェブログ

Convolutional Layer (畳み込み層)

Model Structure

Figure1

 全結合層と違い、結合が疎である結合層。一般に入力データは3次元で与えられる。計算過程は、ここのImplementation as Matrix Multiplication.にてとてもわかりやすく視覚化されている。

Forward

input:

parameter:

weight:

bias:

formula:

output:

Backward

input:

formula:

output:

Tensorflow

import tensorflow as tf

conv = tf.layers.conv2d(
    inputs=u,                 # u.shape = (width(a), height(b), channel(k))
    filters=m,                # filter の number(m) を指定
    kernel_size=[p, q],       # filter の size(p*q) を指定
    strides=[Sn, Si, Sj, Sk], # batch_size, width, height, channel 方向に stride させる
    padding="same",           # padding 方式の指定 (width * height を保つように自動調整)
    activation=tf.nn.relu     # activation function の指定
    ) 
# -> shape = (width_out(i), height_out(j), number(m))