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

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

2026年度前期輪読会
ゼロから作るDeep Learning
第8章 ディープラーニング
(8.1～8.3)
京都大学大学院 工学研究科 M2
河田 賢斗
0


# Page. 2

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
1


# Page. 3

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
2


# Page. 4

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

8.1 ネットワークをより深く
本章ではディープなネットワークを作り、MNISTデータセットの手
書き数字認識を行う
8.1.1 よりディープなネットワークへ
ディープなネットワークについて
• 畳込み層はすべて3×3の小さなフィルター
• 層が深くなるにつれてチャンネル数が大きくなる
• プーリング層を挿入し、中間データの空間サイズを徐々に小さく
する
• 全結合層では、Dropoutレイヤを使用する
• 重みの初期値として、「Heの初期値」を使用
• Adamによる最適化
ネットワークの認識精度が99.38%に達した
3


# Page. 5

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

8.1.1 よりディープなネットワークへ
ネットワークの誤認識率はわずか0.62%
→私たち人間にとっても判断が難しい画像が多かった
ディープなCNNは高精度であり、かつ認識を誤った画像に対して人
間と同じような認識ミスを犯す
→ディープなCNNは大きな可能性がある
8.1.2 さらに認識精度を高めるには
テキスト図8-3ではMNISTデータセットに対する各手法のランキング
が記載されている
→ランキングの上位を占めている手法の多くは、CNNベース
(ただし、さほどディープなネットワークではない)
(∵ネットワークの表現力を高める必要があまりない)
4


# Page. 6

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

8.1.1 よりディープなネットワークへ
認識精度をさらに高めるには?
→アンサンブル学習・学習係数の減衰・データ拡張
データ拡張:
入力画像(訓練画像)をアルゴリズムにより“人工的”に拡張する
(回転や縦横方向の微小な変化を与え、画像枚数を増やす)
→データセットの枚数が限定的な場合に有効な手段
その他にも、「crop処理」や「flip処理」が考えられる
→こうした「トリック」を利用して認識精度を高めるのが良い
5


# Page. 7

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
6


# Page. 8

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

8.1.3 層を深くすることのモチベーション
層を深くすることの重要性について
ILSVRCに代表される大規模画像認識のコンペティションの結果
層を深くするにつれて、認識精度も向上する
層を深くすることの利点について
ネットワークのパラメータ数を少なく出来る
5×5畳込み演算1回の領域は、3×3畳込み演算を2回行うこと
でカバーできる
パラメータ数を小さくしつつ、受容野を広くカバーすることが
可能となる
学習の効率性が向上する
学習データを少なくし、高速に学習が行えるようになる
7


# Page. 9

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

8.1.3層を深くすることのモチベーション
具体的に、「犬」を認識する問題について
• ネットワークを深くすることで、学習すべき問題を階層的に分解
することが可能となる
各層が学習すべき問題は、より単純な問題として取り組むことが
出来る
• さらに、階層的に情報を渡していくことも可能となる
各層が学習すべき問題を「解きやすいシンプルな問題」へと分解
することができ、効率よく学習することが期待される
一方で、こうした技術のベースにはビッグデータやコンピュータパ
ワーなどがあると考えられる
8


# Page. 10

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
9


# Page. 11

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

8.2 ディープラーニングの小歴史
ディープラーニングが注目を集めるきっかけは、
大規模画像認識のコンペティション
(ILSVRC(ImageNet Large Scale Visual Recognition Challenge))
→ディープラーニングによる手法(AlexNet)が圧倒的な成績で優勝
8.2.1 ImageNet
• ImageNetは100万枚を超える画像のデータセット
• 様々な種類の画像が含まれており、それぞれの画像にはラベルが
紐付けられている
→この巨大なデータセットを用いてILSVRCという画像認識のコンペ
ティションが毎年実施される
クラス分類では、ディープラーニングが着実に精度を高めている
Ex. VCG, GoogLeNet, ResNet
10


# Page. 12

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
11


# Page. 13

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

8.2.2 VGG
• 畳込み層とプーリング層から構成される、“基本的な”CNN
• 3×3の小さなフィルターによる畳込み層を連続して行う
(畳込み層を2から4回連続させ、プーリング層でサイズを半分に)
→
シンプルかつ応用性が高い構成であり、VGGベースのネットワーク
は汎用性が高いと言える
8.2.3 GoogLeNet
• ネットワークが縦方向の深さだけでなく、横方向にも深さを持っ
ている
• 横方向に“幅”があり、「インセプション構造」と呼ぶ
12


# Page. 14

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

8.2.3 GoogLeNet
インセプション構造
ビルディングブロック
Filter
concatenation
1×1
convolutions
3×3
convolutions
5×5
convolutions
3×3
Max pooling
Previous Layer
13


# Page. 15

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
14


# Page. 16

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

8.2.4 ResNet
• Microsoftのチームによって開発されたネットワーク
• 層を深くしすぎると、学習が上手くいかず最終的な性能が劣るこ
とも多々あった
→ 「スキップ構造」を導入し、層を深くしつつ性能の向上を図った
• スキップ接続では、入力の を2層先の出力
にスキップして繋げる
• スキップ構造により
とする
• VGGのネットワークをベースとして
層を深くする
Weight layer
relu
Weight layer
relu
15


# Page. 17

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
16


# Page. 18

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

8.3 ディープラニングの高速化
• 昨今は、ビッグデータとネットワークの大規模化が進む
CPUを用いた計算では、心許なくなっている
• ディープラーニングの多くはGPU(Graphic Processing Unit)
をサポート
大量の演算を高速に処理することが可能
本章では、ディープラーニングの計算の高速化に焦点を当てる
8.3.1 取り組むべき問題
• ディープラーニングでどういった処理に時間が費やされるのか
全体に対して、畳込み層の演算がGPUでは95%, CPUでは
89% まで達する
17


# Page. 19

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
18


# Page. 20

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

8.3.2 GPUによる高速化
• 元来は、グラフィックのための専用ボードとして利用されてきた
汎用的な数値計算にもGPUは利用される
(並列的な数値演算を高速に実行が可能である)
特に、ディープラーニングは大量の和積演算を行う必要がある
大量の並列的な数値演算が得意なGPUを用いることが重要
GPU : NVIDIA社・AMD社 により提供
特に、NVIDIA社のGPUがディープラーニングと親しい
CUDAという統合環境が、ディープラーニングのフレームワー
クで使用されているため
19


# Page. 21

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
20


# Page. 22

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

8.3.3 分散学習
• 1回の学習に必要な時間をできる限り小さくさせようとする
ディープラーニングの学習をスケールアウトさせる考え方
(「分散学習」)が重要となる
高速化するためには、複数のGPUや複数台のマシンで分散して計算
を実行する必要がある
(Ex.) GoogleのTensorflow・MicrosoftのCNTK
分散学習の技術的な内容(「どのように計算を分散させるか」)につい
てはTensorFlowの技術論文を参照
21


# Page. 23

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

アジェンダ
 8.1 ネットワークをより深く
• 8.1.1 よりディープなネットワークへ
• 8.1.2 さらに認識精度を高めるには
• 8.1.3 層を深くすることのモチベーション
 8.2 ディープラニングの小歴史
• 8.2.1 ImgeNet
• 8.2.2 VGG
• 8.2.3 GoogLeNet
• 8.2.4 ResNet
 8.3 ディープラーニングの高速化
• 8.3.1 取り組むべき問題
• 8.3.2 GPUによる高速化
• 8.3.3 分散学習
• 8.3.4 演算精度のビット削減
22


# Page. 24

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

8.3.4 演算精度のビット削減
ディープラーニングの高速化
(ボトルネック): 計算量・メモリ容量・バス帯域
・メモリ容量:大量の重みパラメータを収める必要性
・バス帯域:バスを流れるデータ量が増加し、制限を超えるとボトル
ネックとなる
コンピュータでは、実数の表現のために64ビットや32ビットの浮動
小数点数が用いられる
数値計算時の誤差による影響は少なくなるが、計算の処理コストや
メモリ使用量が増大し、バス帯域に負荷がかかる
23


# Page. 25

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

8.3.4 演算精度のビット削減
ディープラーニングについて:
数値精度のビット数をそこまで必要としない
(ニューラルネットワークのロバスト性による)
入力画像に小さなノイズがかかっても、出力結果が変わらない頑健性があるという意味
32ビットの単精度浮動小数点数や64ビットの倍精度浮動小数点数な
どのフォーマットがあるが、16ビットの半精度浮動小数点数でも問
題なく学習が可能である
Python : 64ビットの浮動小数点が使用される
Numpy:16ビットの半精度浮動小数点数が用意される
Numpyを用いても認識精度自体は低下しない
ディープラーニングの高速化のためにビットを削減するというテーマ
は重要なテーマである
24


