前言
本文为7月26日深度学习笔记,分为五个章节:
- The whole CNN;
- Convolution;
- Max Pooling&Flatten;
- CNN in Keras;
- What does CNN learn.
一、The whole CNN
Input ⇒ (CONV ⇒ Max Pooling ⇒ CONV ⇒ MaxPooling) ⇒ Flatten ⇒ Fully Connected Feedforward network
二、Convolution
三、Max Pooling&Flatten
四、CNN in Keras
- 25 个 3×3 filters,黑白图片(1),pixels = 28×28
model2.add(Convolution2D(25, 3, 3), input_shape=(28, 28, 1))
- Max Pooling: 2×2
model2.add(MaxPooling2D((2, 2)))
- How many parameters for each filter:
25
×
3
×
3
=
225.
25\times 3\times 3 = 225.
25×3×3=225.
- Fully Connected Feedforward network:
model2.add(Dense(output_dim=100))
model2.add(Activation('relu'))
model2.add(Dense(output_dim=10))
model2.add(Activation('softmax'))
五、What does CNN learn
The output of the k-th filter is a 11 x 11 matrix.
- Degree of the activation of the k-th filter:
a k = ∑ i = 1 11 ∑ j = 1 11 a i j k a^k = \sum_{i=1}^{11} \sum_{j=1}^{11} a^k_{ij} ak=i=1∑11j=1∑11aijk - Apply gradient descent to find:
x ∗ = a r g m a x a k x^* = arg\ max\ a^k x∗=arg max ak - Find an image maximizing the output of neuron:
x ∗ = a r g m a x a j x^* = arg\ max\ a^j x∗=arg max aj
x ∗ = a r g m a x y i = a r g m a x ( y i − ∑ i , j ∣ x i j ∣ ) x^* = arg\ max\ y^i = arg\ max(y^i - \sum_{i,j}|x_{ij}|) x∗=arg max yi=arg max(yi−i,j∑∣xij∣)
Where ∑ i , j ∣ x i j ∣ \sum_{i,j}|x_{ij}| ∑i,j∣xij∣ is over all pixel values.