---
title: 【ゼロから作るDeap Learning】7.4~7.8
tags: 
author: [京都大学人工知能研究会KaiRA](https://docswell.com/user/kyoto-kaira)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PEXQ8XZVJX.jpg?width=480
description: 【ゼロから作るDeap Learning】7.4~7.8 by 京都大学人工知能研究会KaiRA
published: June 11, 26
canonical: https://docswell.com/s/kyoto-kaira/K1Q334-2026-06-11-213259
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PEXQ8XZVJX.jpg)

2026前期輪読会 #8
ゼロから作るDeep Learning 7.4-7.8
京都大学 総合人間学部 B2
本川玄人
0


# Page. 2

![Page Image](https://bcdn.docswell.com/page/3EK9KW85ED.jpg)

アジェンダ
◼ 7.4 Convolution/Poolingレイヤの実装
◼ 7.5 CNNの実装
◼ 7.6 CNNの可視化
◼ 7.7 代表的なCNN
◼ 7.8 まとめ
1


# Page. 3

![Page Image](https://bcdn.docswell.com/page/L73WZ12175.jpg)

アジェンダ
◼ 7.4 Convolution/Poolingレイヤの実装
◼ 7.5 CNNの実装
◼ 7.6 CNNの可視化
◼ 7.7 代表的なCNN
◼ 7.8 まとめ
2


# Page. 4

![Page Image](https://bcdn.docswell.com/page/87DKRXZKJG.jpg)

7.4 Convolution/Poolingレイヤの実装
CNNのデータは4次元配列
ここからCNNの実装を行うが、
CNNでは高さ・横幅・チャンネル・データ数の
4次元のデータを扱う(4次元配列)
…
演算処理を簡単にするためにim2colという関数を導入
(素朴に考えるとfor文の入れ子構造になりNumPyでは処理が遅くなる)
3


# Page. 5

![Page Image](https://bcdn.docswell.com/page/VJPKWPD3E8.jpg)

7.4 Convolution/Poolingレイヤの実装
Im2colによる展開
…
3次元の同じフィルターが適用されるデータを
取り出して1行に展開
各3次元データに同様の操作を繰り返して2次
元のデータに変換する
…
Im2colによって
4次元のデータ→2次元のデータに変換
✓高度に最適化された行列計算のライブラリを利用でき、計算が高速
✗通常よりも多くのメモリを使用
4


# Page. 6

![Page Image](https://bcdn.docswell.com/page/2EVV821NEQ.jpg)

7.4 Convolution/Poolingレイヤの実装
Convolutionレイヤの実装
im2colを使ってforward処理を実装
backward処理ではim2colの逆処理を行う関数、
col2imを使う必要あり
5


# Page. 7

![Page Image](https://bcdn.docswell.com/page/57GL5R25EL.jpg)

7.4 Convolution/Poolingレイヤの実装
Poolingレイヤの実装
プーリング層はチャンネル方向には独立
→チャンネルごとに展開
Poolingレイヤは3段階の流れで実装(forward)
1. 入力データの展開
2. 行ごとに最大値を求める(Maxプーリング)
3. 適切な出力サイズに整形
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/4EQYZVPLJP.jpg)

アジェンダ
◼ 7.4 Convolution/Poolingレイヤの実装
◼ 7.5 CNNの実装
◼ 7.6 CNNの可視化
◼ 7.7 代表的なCNN
◼ 7.8 まとめ
7


# Page. 9

![Page Image](https://bcdn.docswell.com/page/KJ4W3MY571.jpg)

7.5 CNNの実装
SimpleConvnetの実装
実装したConvolutionレイヤ,Poolingレイヤを使って下図のような単純なCNNを実装する
(もっと層の深いCNNが普通)
Conv
ReLU
Pooling
Affine
ReLU
Affine
Softmax
8


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LE1Y18627G.jpg)

7.5 CNNの実装
SimpleConvNetの初期化の実装
引数の紹介
・input_dim - 入力データの次元
・conv_param - 畳み込み層のハイパーパラメータ
・hidden_size - 隠れ層のニューロン数
・output_size - 出力層のニューロン数
・weight_init_std – 初期化の際の重みの標準偏差
重みの初期化を行い、レイヤを生成
9


# Page. 11

![Page Image](https://bcdn.docswell.com/page/GEWG8ZW2J2.jpg)

7.5 CNNの実装
学習に関する実装
推論、損失関数の計算、勾配の計算を行う関数も同様に実装
10


# Page. 12

![Page Image](https://bcdn.docswell.com/page/47ZL8154J3.jpg)

7.5 CNNの実装
MNISTデータセットの識別
MNISTデータセットを使って性能を検証
→約99％の高い精度を実現
CNNは画像認識課題において優秀!
11


# Page. 13

![Page Image](https://bcdn.docswell.com/page/YJ6WPL9GJV.jpg)

アジェンダ
◼ 7.4 Convolution/Poolingレイヤの実装
◼ 7.5 CNNの実装
◼ 7.6 CNNの可視化
◼ 7.7 代表的なCNN
◼ 7.8 まとめ
12


# Page. 14

![Page Image](https://bcdn.docswell.com/page/GJ5MK1NXJ4.jpg)

7.6 CNNの可視化
フィルターを可視化する
今回学習したCNNのフィルターは
サイズ5×5、チャンネル数1
→グレースケール画像として可視化できる
小さな値を黒、大きな値を白として正規化
学習後のフィルターは規則性のある画像に変化
・白から黒へグラデーションを伴って変化するフィルター
・塊のある領域(blob)を持つフィルター
13


# Page. 15

![Page Image](https://bcdn.docswell.com/page/9E29W15Q7R.jpg)

7.6 CNNの可視化
フィルターは何を見ているのか
フィルターはそれぞれの反応に特性がある
エッジ…色が変化する境目
ブロブ…局所的に塊のある領域
グラデーションの傾きによって異なる方位のエッジに反応
第1層目では単純な情報が抽出されて後ろの層に渡している!
14


# Page. 16

![Page Image](https://bcdn.docswell.com/page/D7Y4LZKYEM.jpg)

7.6 CNNの可視化
階層構造による情報抽出
ここまでは1層目のフィルターのみに注目
→より深い層ではどのような情報が抽出されるのか?
AlexNet(8層のCNN)を調べると
・層が深くなるにつれてより抽象化された情報が抽出
・エッジ→テクスチャ→物体のパーツ、と反応の対象が変化
15


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VENY43RRJ8.jpg)

アジェンダ
◼ 7.4 Convolution/Poolingレイヤの実装
◼ 7.5 CNNの実装
◼ 7.6 CNNの可視化
◼ 7.7 代表的なCNN
◼ 7.8 まとめ
16


# Page. 18

![Page Image](https://bcdn.docswell.com/page/Y79PQ9MZE3.jpg)

7.7 代表的なCNN
LeNetの紹介
CNNに関する重要なネットワークを2つ紹介
・LeNet
・AlexNet
※最近の代表的なCNNモデルは別の本で学ぶ必要あり
LeNet : CNNの元祖(1998年)
今回扱ったCNNと比較すると
・シグモイド関数を使用
・画像サイズを縮小するプーリング層
などの違いがある
17


# Page. 19

![Page Image](https://bcdn.docswell.com/page/G78DG91Y7D.jpg)

7.7 代表的なCNN
AlexNetの紹介
AlexNetが画像認識コンペで活躍
→ディープラーニング・ブームを巻き起こした
AlexNetの特徴
・ReLUを使用
・LRN・Dropoutを導入
大量のデータ+GPUの使用による計算スピードの向上が原動力に
GPU間で異なる特徴を抽出
18


# Page. 20

![Page Image](https://bcdn.docswell.com/page/L7LMGWQ9JR.jpg)

アジェンダ
◼ 7.4 Convolution/Poolingレイヤの実装
◼ 7.5 CNNの実装
◼ 7.6 CNNの可視化
◼ 7.7 代表的なCNN
◼ 7.8 まとめ
19


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4EMYQ91VEW.jpg)

7.8 まとめ
・CNNではこれまでの全結合層だけでなく
畳み込み層とプーリング層が加わる
・畳み込み層、プーリング層はim2col関数で効率的に計算
・CNNは層が深くなるにつれて高度な情報を抽出
・LeNet、AlexNetなどの重要なネットワーク
・大量のデータ+GPUが学習に大切
コードはこちらから
20


