3-4

深層学習の基礎と展望

東京⼤学 数理・情報教育研究センター
2021年5⽉7⽇

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA概要• 深層学習の基礎を扱う．深層学習で⽤いられるニューラルネットワー
クモデルの原理と学習⽅法を解説したのち，応⽤事例の紹介をする．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

2

本教材の⽬次
1.

深層学習

4

2.

深層学習の基礎

53.

種々のモデル

114.

種々の学習法16

5.

学習の実⾏⽅法

20

6.

事例紹介

22

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

3深層学習深層学習とはニューラルネットワークをモデルとする機械学習のことで以下のような関係性があります．

機械学習（Machine Learning, ML）
有限の観測データから背後に潜む規則を獲得．
教師あり学習・教師なし学習・強化学習という枠組みがある．

深層学習（Deep Learning, DL）
ニューラルネットワークを⽤いた機械学習．
AIにパラダイムシフトを起こした．
ニューラルネットワーク：
⼈の脳を模した学習機械．
画像・⾳声などの認識，⾃然⾔語処理，深層強化学習などで⽤いられる．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA4

ニューラルネットワークの原理
ニューラルネットワークは脳を模した機械学習モデルです．
ニューロン（ノード）が重みつきの枝を通じて接続し合いネッ トワー
クを構成します．
!
!
ニューロンは接続関係にあるニューロンから枝の重みに従い信号を受け取ったのち，活性化関数と呼ばれる適当な変換をかけ信号を出⼒します．
この信号の変換を多数のニューロンを⽤いて層状に積み重ね，⼊⼒データの複雑な変換を実現したモデルがディープニューラルネット
ワーク（DNN）です．

𝑥

𝑥"

𝑤𝑤"

#

𝑧 = % 𝑤$𝑥$

𝑤#

𝜎(𝑧)

$%!

𝑥#

出⼒𝑓(𝑥)

⼊⼒𝑥枝の重みをパラメータとして経験損失最⼩化を⾏いニューラルネット
ワークの学習を⾏います．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

5

ニューロンニューラルネットを構成する最⼩単位．
各ニューロンは接続されたニューロンから枝の重み𝑤をかけ総和をとったのちに活性化関数𝜎を適⽤し出⼒値を定めます．
%𝑧 = 𝑤!𝑥 = % 𝑤" 𝑥" .

𝜎(𝑧)

"#$

𝜎: 活性化関数.
ReLU, sigmoidと呼ばれる活性化関数などがよく⽤いられます．これらの活性化関数は次で定義されます．

𝑧𝑤!
𝑥!

𝑤"𝑥"

𝑤#
𝑥#

max{0, 𝑧} ReLU ,𝜎 𝑧 =5 1
sigmoid .
1 + 𝑒 &'

⼊⼒ 𝑥 =
重み 𝑤 =%!
"$𝑥 ,𝑥 ,…,𝑥.

%!
"$𝑤 ,𝑤 ,…,𝑤.

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA6層ニューロンを並列に束ね層を構成します．

𝑧!

𝑧"𝑥!

𝑧#𝑥"

𝑧&𝑥#

ニューロンを接続する枝には重みパラメータ𝑊があります．
!

⼊⼒ニューロンの値を𝑥 = 𝑥 $ , 𝑥 ( , … , 𝑥 % ，出⼒ニューロンの値を𝑧 =!
𝑧 $ , 𝑧 ( , … , 𝑧 ) とすれば，重みパラメータ𝑊は⾏数ℎ, 列数𝑑の⾏列でありこの層による⼊⼒𝑥の変換は𝑧 = 𝜎(𝑊𝑥)とかけます．
注意：ここで活性化関数𝜎は全出⼒ニューロンに適⽤されます．

このような接続関係がある層は全結合層と呼びます．
パラメータ𝑊は基本的に経験損失最⼩化による学習で調整されます．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

7

ロジスティック回帰

ロジスティック回帰の詳しい説明は1-4「データ分析」を参照．

多クラス分類問題に対する線形ロジスティック回帰は最も単純なニューラルネットワークの学習問題とみなせます．
クラス数を𝐶としてラベルは 𝑦 = 1, … , 𝐶 をとることにし⼊⼒データは 𝑥 =!
𝑥 $ , 𝑥 ( , … , 𝑥 % とします．ロジスティック回帰では⾏数𝐶, 列数𝑑のパラメータ𝑊と𝐶次元のバイアスパラメータ𝑏 = 𝑏$ , 𝑏 ( , … , 𝑏 * ! により 𝑧 = 𝑓+,- 𝑥 = 𝑊𝑥 + 𝑏という変換をします．
𝑧*𝑧)𝑥)

𝑥*𝑥+

ロジスティック回帰では⼊出⼒ペア(𝑥, 𝑦)に対して次の損失関数を定めます：
exp 𝑧 .
𝑙 𝑓+,- 𝑥 , 𝑦 = − log *.
∑/#$ exp 𝑧 /これは⼀層のニューラルネットワークをモデルとし交差エントロピー損失を損失関数とする問題設定に他なりません．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

8

ディープニューラルネットワークの構造
ディープニューラルネットワークは層を直列に結合したモデルです．
⾮線形活性化関数を挟むことで複雑な⾮線形変換を実現します．
𝑥𝑊$ 𝑥

𝜎$ (𝑊$ 𝑥)𝑊( 𝜎$ (𝑊$ 𝑥)𝜎( (𝑊( 𝜎$ 𝑊$ 𝑥 )

⼊⼒

線形変換

⾮線形変換

線形変換

⾮線形変換

𝑥

𝑊$ 𝑧$

𝑊( 𝑧(𝑊0 𝑧0

最終層には⾮線形活性化関数を適⽤しない場合が多いです．
そして最終層の値に対してタスクに応じた損失関数（交差エントロピー損失など）を適⽤し学習を実⾏します．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

9

ディープニューラルネットワークの構造
𝑧0𝑊0

層を重ねディープニューラルネットワークを構成．
左図：全結合層から成る３層ニューラルネットワーク．
簡易的に下図のように表現する場合もあります．

outputoutputFullConnect

FullConnect

FullConnect

𝑥

input

𝑊$

FullConnect𝑧$

FullConnect

input

𝑊(

FullConnect𝑧(変換部分に注⽬した表現．

ニューロンの集まりに注⽬した表現．

層は特定の⽤途・⽬的に応じデザインされ，種々のものがあります．
全結合層，ソフトマックス層，活性化層，畳み込み層，プーリング層，LSTM層，バッチ正規化層，ドロップアウト層．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

10

柔軟なモデリング
層をブロックとして組み合わせ⾃由⾃在なモデリングが可能です．
タスクに応じて直感的な依存関係を柔軟に記述することできます．

+ softmax

k k k ke e e ey y y y

query

value
value
value
value

A7en8on: ⼊⼒(query)に対応する値(value)を返す辞書(keyとvalueのペア)．

Xabc

<EOS>

outputinput

outputinput

DenseNet: ⾼精度な認識モデル

U-Net: 画像セグメンテーションで有効なモデル

TransformerはA7en8on機構を組み込んだ機械翻訳モデル．

<BOS>

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

11

実世界で進む深層学習の応⽤と⾰新
タスク依存の直感的なモデリングはニューラルネットワークの精度を向上させる上での⼤きな利点です．
実際，タスクに応じてさまざまなニューラルネットワークモデルが提案され学習技法の発展とあわせて劇的な精度向上がもたらされました．
例えば以下のタスクで⾮常に優れたモデルや学習法が開発されました．
• 画像認識
畳み込みニューラルネットワーク（CNN）• ⾃然⾔語処理
再帰型ニューラルネットワーク（RNN），Transformer• 画像⽣成敵対的⽣成ネットワーク（GAN）• ⾳声⽣成WaveNet東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

12画像認識精度の向上
ImageNet（画像認識の⼤規模データセット）のコンペティションでの画像認識精度は深層学習時代のCNN登場以降，⾶躍的に向上．
分類誤差 (%)
30

深層学習の登場

25
20
15
10
50

ILSVRC2010ILSVRC2011

ILSVRC2012
AlexNetILSVRC2013

ILSVRC2014
VGG

ILSVRC
2014
GoogleNet

Human

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SAILSVRC2015
ResNet13畳み込みニューラルネットワーク（CNN）
画像認識で⾼いパフォーマンスを発揮するニューラルネットワーク．
畳み込み層とプーリング層を交互に積み重ね最後に全結合層が接続されます．
• 畳み込み層：⼊⼒画像のパターンの抽出．
各場所とフィルタの内積値が並ぶ．

画像
フィルタとの内積値が出⼒フィルタ

フィルタが畳み込み層のパラメータ．有⽤な情報が伝わるように学習される．

• プーリング層：平⾏移動不変性の獲得．
max 𝑋,,.

0342

13

367,,. ∈03467

最⼤プーリングの例．
平均プーリングなどもある．

⾞

畳み込みプーリング 畳み込み プーリング 全結合

畳み込み層が2つプーリング層が2つからなるCNN．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

14

Residual Network (ResNet)
従来，⾮常に深いネットワークの学習は困難でしたがスキップ接続という機構を備えたResNetの登場により巨⼤ネットワークの学習も可能となりました．それに伴い画像認識精度もさらに向上しました．
𝑧1
スキップ接続ResNet

トップ５分類誤差 (%)

𝑓(𝑧1 )

5.1

⼈間+
𝑧12$ = 𝑧1 + 𝑓(𝑧1 )ResNetの各層の情報変換の様⼦．
直前の層の値を直接受け取るパス（スキップ接続）がある．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

15

さまざまな技法
深層学習では精度向上のためのさまざまな技法が開発されました．
とくにバッチ正規化やドロップアウトは⾮常に有効です．
• バッチ正規化
訓練時と予測時で各層での⼊⼒分布が異なることを共変量シフトと呼びます．共変量シフトに伴う精度劣化を防ぐ技法がバッチ正規化で各層にバッチ正規化層を挿⼊することで実現されます．
SoftMax

FullConnect

ReLU

BatchNorm

FullConnect

ReLU

BatchNorm

FullConnect

input• ドロップアウト
訓練時にランダムにニューロンを削除しながら学習する正則化⼿法です．汎化性能の向上に有効です．

通常時のニューラルネットワーク

ドロップアウト時のニューラルネットワーク

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

16

経験損失最⼩化
深層学習はニューラルネットワークモデルを⽤いた機械学習です．
ですので基本的に経験損失最⼩化問題を解きます：
3min 𝐿 𝑊 = % 𝑙(𝑓+ 𝑥" , 𝑦" ) .
+"#$損失関数𝑙は⼆乗損失（回帰）や交差エントロピー損失（分類）を⽤います．
この最適化問題は確率的勾配降下法やその改良版であるADAMという⼿法で解くことが⼀般的です．
確率的勾配降下法は最急降下法を確率化したもので，機械学習において⾮常に有効な最適化⼿法です．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

17

最急降下法
最急降下法は反復法の⼀種で，適当に決めた初期パラメータ𝑊 ()) から逐次的に以下の⼿続きでパラメータを更新します：
𝑊 (12)) = 𝑊 (1) − 𝜂∇3 𝐿 𝑊 1 .
ここで∇3 𝐿(𝑊 (1) )は𝑊 (1) における経験損失関数𝐿の勾配です．𝜂はステップサイズや学習率とよばれるハイパーパラメータで，パラメータを変化させる幅を調整します．

−∇' 𝐿(𝑊 ()) )勾配は関数の等⾼線と直交しますので負の勾配は関数を局所的に減少させる⽅向になります．

𝑊 (O)

従って𝜂がある程度⼩さいとき，最急降下法により損失関数が減少することが分かります．

ニューラルネットワークは⾏列による線形変換を繰り返すモデルでした．そのためパラメータについての勾配は微分における連鎖率というルールで計算されます．これは深層学習と線形代数/微分積分との関係性を指していて，深層学習を正しく理解するには微分積分や線形代数がある程度必要であるといえます．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

18確率的勾配降下法
経験損失関数はデータ数分の損失の和で定義されていました：
51
𝐿 𝑊 = 0 𝑙(𝑓3 𝑥, , 𝑦, ) .
𝑛,4)

従って最急降下法のパラメータの更新規則は次のように書けます：5𝜂𝜕𝑙 𝑓3 𝑥, , 𝑦,𝑊 (12)) = 𝑊 (1) − 0.
𝑛𝜕𝑊,4)

全データでの計算が必要で遅い

ここでパラメータの更新の度に全データ分の計算が必要となり⾮効率です．
そこで各𝑡において𝑛個のデータから乱択された1データ(𝑥,! , 𝑦,! )のみを⽤いた近似的な勾配でパラメータを更新する⼿法が確率的勾配降下法です：
𝑊 (12)) = 𝑊 (1) − 𝜂𝜕𝑙 𝑓3 𝑥, 1 , 𝑦,!
.
𝜕𝑊

これにより計算効率が改善され⼤規模データに対する深層学習が可能となります．
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

19深層学習を実⾏する際の⼿続き
深層学習を⾏う⼀連の⼿続きをまとめると概ね以下のようになります．
1. データを⽤意，
2. タスクに合わせてネットワーク構造をモデリング，
3. さまざまな技法や最適化⼿法を選択し学習を実⾏．
しかしながら⼤規模データセットの⽤意や，1からのモデリングおよび学習には⾮常に⼤きなリソースを要するという問題があります．
そこで画像認識などの汎⽤タスクでは⾊々な類似タスクで有効な学習⽤データと学習済みモデルが配布されています． これらをうまく活⽤したり，微調整することで効率的にタスクを解くことができます．
例えば以下のようなモデルは広く使われています．
画像認識：VGG, ResNet, DenseNet
オブジェクト検出：Yolo, R-CNN
画像セグメンテーション：U-Net
画像⽣成：BigGAN
東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA20深層学習の実⾏⽅法
深層学習はライブラリが整備されていて簡便に試すことができます．
例えばKerasというライブラリを⽤いて以下のようにディープニューラルネッ
トワークを学習できます．
必要なライブラリをインポート．
ニューラルネットワークモデル，損失関数，最適化法の指定．

最適化を実⾏．
精度評価．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA21

事例：物体検出
画像認識より⼀段むずかしい問題設定．
どこに何が写っているかを検出します．
ビル：0.88

ビル：0.98

⾞：0.83 ⾞：0.91「どこに」＋「なにが」東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

22

事例：マスキング
物体検出より詳しくピクセル単位で認識する．
ピクセルが何を構成しているか予測します．

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA

23

事例：画像⽣成
敵対的⽣成ネットワーク(GAN)により⾼精細な画像の⽣成も可能です．
GANでは識別ネットワークと⽣成ネットワークという⼆つのネットワークが以下の指針で敵対的に交互に学習されます．
1. 識別ネットワーク：本物の画像か⽣成ネットワークが⽣成した画像かを識別．
2. ⽣成ネットワーク：識別ネットワークを騙すような画像を⽣成．
この敵対的学習法により次第に⾼精細画像が⽣成されるようになります．
識別ネットワーク
⽣成画像と本物の画像を識別

⽣成ネットワークノイズから画像を⽣成

東京⼤学 数理・情報教育研究センター ⼆反⽥篤史 2021 CC BY-NC-SA24