Densely Connected
Convolutional Networks
Gao Huang, Zhuang Liu, Kilian Q. Weinbeger,
Laurens van der Maaten
https://arxiv.org/abs/1608.06993v4
2017/10/26
DLれミ
B4 幡本昂平
1
論文情報
• タむトル
• Densely Connected Convolutional Networks
• 投皿日
• 2016/8/25(ver1)
• 2016/11/29(ver2)
• 2016/12/3(ver3)
• 2017/8/27(ver4)
• 発衚孊䌚
• CVPR2017
• Best Paper Awards
2
• 新しいCNNアヌキテクチャであるDenseNetを提案
• 埓来よりもコンパクトなモデルでありながら高い性胜
を実珟
抂芁
3
• 近幎の蚈算機の発展により深いネットワヌクを蚓緎す
るこずが可胜ずなり、CNNによる画像認識が進歩
• LeNet5: 5å±€
• VGG19: 19å±€
• ネットワヌクが深くなるず募配消倱の問題が発生し、
孊習がうたくいかないので曎に局数を増やすのは難し
かった
• 2015幎のResNetsなどの登堎により100局以䞊のネッ
トワヌクが構成できるようになり、曎に粟床が向䞊
Introduction
4
• 入力をスキップさせお埌の局の入力に足し蟌む
ResNetなどのアむデア
出兞: Deep Residual Learning for Image Recogition(2015)
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
他にも様々な方法でネットワヌクを深くできるように工倫したものが存圚
Ex) Highway Networks, FractalNets
5
• ResNet等のアヌキテクチャに共通する考え方
浅い局から深い局ぞのパスを䜜っおいる
• この論文ではこの点に着目し、局間の情報の䌝達を
最倧化するためにすべおの同特城量サむズの局を結合
させおいる
• Feed forwardを保぀ため、ある局より前の局の出力
を入力ずする
• 局間が密に結合しおいる
こずから、DenseNetず
よぶ
DenseNet
6
DenseNetの基本構造
以䞋の芁玠で構成される
• Initial Convolution
• Dense Block
• Transition layer
• Classification layer
7
• 第𝑙局の出力を𝑥𝑙ずするず、Dense Blockの第l局の出力は以䞋
の匏で衚される
• ここで𝐻𝑙は
• Bacth normalization
• ReLU
• 3×3 Convolution
の合成関数を衚す
• 䞊匏は入力のテン゜ル 𝑥0, 𝑥1, 
 , 𝑥𝑙−1を結合しお入力するこず
を衚す
• Ex) 𝑥𝑖が16×32×32のずき、入力は
入力のチャネル数 + ((𝑙 − 1) ×16) ×32×32
Dense Block
8
• 前ペヌゞで瀺したDense Blockの匏は特城量マップの
サむズが倉わっおしたうず䜿えない
• しかし、CNNの重芁な芁玠であるマップサむズを倉え
るダりンサンプリングを行う局を入れないわけにはい
かない
Pooling局をどうするか
9
• ネットワヌクをdense blockが耇数結合した構造にし、
間にpoolingを行う局をいれる
• これをtransition layerず呌ぶ
• 実隓で䜿甚したものは
• Batch normalization
• 1×1 convolution
• 2×2 平均プヌリング
で構成される
Transition layer
10
• Dense blockの匏で確認したように、𝐻𝑙がチャネル数𝑘
の特城量マップを出力する堎合、𝑙番目のレむダぞの
入力は 𝑘 × 𝑙 − 1 + 𝑘0ずなる
(𝑘0はblockぞ入力される画像のチャネル数)
• ネットワヌクが倧きくなりすぎるのを防ぐため𝑘は小
さい敎数に蚭定 ex)𝑘 = 12
この𝑘をネットワヌクのgrowth rateず呌ぶ
Growth rate
11
• Bottleneckの導入
• Dense blockの𝐻𝑙をBN-ReLU-Conv(1×1)-BN-ReLU-
Conv(3×3)に倉曎
• Compression
• Transition layerで特城量マップの数を枛らす
• Transition layer内のconvolution局で出力マップサむズを
𝜃倍にする(0 < 𝜃 ≀ 1)
• 今回の実隓では𝜃 = 0.5ずした
効率化手法
これらを導入したものず
導入しおいないものの䞡方に぀いお実隓
出兞: https://liuzhuang13.github.io/posters/DenseNet.pdf
12
• CIFAR, SVHN甹
• ベヌシックなdense net (𝐿 = 40)
実隓で甚いたネットワヌク
Layers detail
Initial Convolution [3×3 conv (output channel=16)]
Dense Block(1) [3×3 conv]×12
Transition(1) [1×1 conv]
[2×2 average pool stride=2]
Dense Block(2) [3×3 conv]×12
Transition(2) [1×1 conv]
[2×2 average pool stride=2]
Dense Block(3) [3×3 conv]×12
Classification [global average pool]
[softmax]
3×3Conv局では
れロパディング
𝐿は3𝑛 + 4でなければならない
 3×Dense block + Initial conv + 2×transition + classification
13
• 実隓ではgrowth rate 𝑘 = 12, 24 𝐿 = 40,100のもので実隓
• {𝐿 = 40, 𝑘 = 12}, {𝐿 = 100, 𝑘 = 12}, {𝐿 = 100, 𝑘 = 24}
• Bottleneck layerを採甚したものに察しおは以䞋のような
蚭定で実隓
• {𝐿 = 100, 𝑘 = 12}, {𝐿 = 250, 𝑘 = 24}, {𝐿 = 190, 𝑘 = 40}
実隓で甚いたネットワヌク
14
• ImageNet甹
• DenseNet with bottleneck and compressionを䜿甚
• Dense blockの数は4
• 埌述のResNetずの比范のため、最初のconv局ず最
埌の刀別局の圢を合わせおある
実隓で甚いたネットワヌク
15
• CIFARずSVHNに察しお実隓をおこなった
• CIFAR
• 32×32のカラヌ画像
• C10,C100に察しお実隓
• Train: 50000枚, Test: 10000枚
• Trainのうち5000枚をvalidationセットずした
• デヌタの拡匵を行ったものずそうでないもの䞡
方に぀いお実隓
実隓1 CIFAR and SVHN
16
• CIFARずSVHNに察しお実隓をおこなった
• SVHN
• Street View House Numbers
• Google street viewから抜出した数字の画像
• 32×32 カラヌ画像
• Train: 73257枚+531131枚, Test: 26032枚
• Trainのうち6000枚をvalidationに
実隓1 CIFAR and SVHN
17
• 最適化手法: SGD
• Mini-batchサむズ64
• ゚ポック数 CIFAR: 300, SVHN:40
• 孊習率は孊習の進み具合で倉化させる
• 初期0.1, 50%孊習埌0.01, 75%孊習埌0.001
• 重み枛衰10−4
• Nesterov momentum 0.9
• デヌタの拡匵を行っおいないデヌタセットに察しおは
各conv局の埌に0.2のドロップアりト局を远加
蚓緎詳现
18
結果 デヌタ拡匵を行ったもの
゚ラヌ率パラメヌタ数
(重みの数)
19
• Accuracy
• CIFAR
• ResNetやその他のネットワヌクよりも䜎い゚
ラヌ率を達成
• SVHN
• L=100, k=24のDenseNetでResNetよりも䜎い゚
ラヌ率
• DenseNet-BCではあたり性胜が良くなっおいな
いが、これはSVHNが簡単な問題のためoverfitし
やすいずいう理由が考えられる
結果に぀いお
20
• Capacity
• 基本的に𝐿, 𝑘が倧きくなればなるほど性胜が良く
なっおいる
• DenseNetでは倧きく深いモデルの衚珟力を利甚で
きおいる
• ぀たりoverfitting, 最適化の困難が発生しにくい
結果に぀いお
21
• Parameter Efficiency
結果に぀いお
DenseNet-BCはパラメヌタ
数に察する゚ラヌ率が
DenseNetを比范した䞭で
は最も䜎い
同皋床の性胜の
ResNetよりもパラ
メヌタ数が少ない
ResNet-1001の90%パラ
メヌタ数で同皋床の性胜を
実珟
22
• DenseNetにはOverfittingしにくいずいう特性がある
• デヌタ拡匵をおこなっおいないCIFARに察しおも埓来
よりも高い性胜を発揮
• パラメヌタ数を増やすこずによりoverfittingをする傟向
が芋られるが、bottleneckずcompressionで察凊できる
Overfitting
23
• Train: 1.2million validation: 50000
• デヌタ拡匵をおこなう
• Validation setに察する゚ラヌ率を調査
• 蚓緎
• バッチサむズ256, 90゚ポック
• 孊習率は初期0.1,30゚ポック埌0.01, 60゚ポック埌
0.001
• GPUメモリの制玄によりDenseNet-161ではバッチ
サむズを128, ゚ポック数を100に
• 90゚ポック埌に孊習率を0.0001にする
実隓2 ImageNet
24
結果
ResNetより良いパラメヌタ効率・
蚈算効率で同皋床の性胜を実珟 ハむパヌパラメヌタ蚭定はResNetに
最適化されたものを甚いおいるので、
蚭定しなおせばより良い性胜を発揮する
事も考えられる
25
• 損倱関数からの教垫情報が各局に䌝わりやすい
• dense blockでは浅い局ず深い局が盎接結合しおいるの
で教垫情報が盎接䌝播する
なぜ性胜がよくなったか
出兞: https://liuzhuang13.github.io/posters/DenseNet.pdf
26
• 特城量の再利甚性
• DenseNet(𝐿 = 40, 𝑘 = 12)をCIFAR10+で蚓緎した
ずきの各局の重みの平均倀をヒヌトマップで可芖化
なぜ性胜がよくなったか
27
特城量の再利甚性
• すべおの局で重みが同ブロックの倚くの入力に分散しおいる
• 浅い局の出力特城量がdense block党䜓で䜿われおいる
• Transition layerでも重みが分散しおいる
• 最初の局の情報が盎接最埌の局に䌝わっおいる
• Dense block2,3ではtransition layerからの出力がほずんど利甚されおいない
• Transition layerの出力は冗長
• DenseNet-BCで出力を圧瞮しおうたくいくこずず合臎しおいる
• Classification layerでは最埌の方の出力を重芖しおいる
• 最埌の方の局で高レベルな特城を抜出できおいる
28
• 最適化が難しくなるこずなく100局以䞊のDenseNetを
䜜るこずができる
• パラメヌタを増やしおもoverfittingするこずなく性胜が
よくなる傟向にある
• 各デヌタセットで埓来よりも少ないパラメヌタ数で
state of the art(2016幎8月時点)の性胜
• ハむパヌパラメヌタの調敎をするこずでさらなる性胜
を発揮するこずが期埅できる
• シンプルな結合芏則にもかかわらず、高い性胜を発揮
• よい特城量抜出噚であるずいえるので、今埌はこれを
甚いた特城量倉換に぀いお研究する予定
たずめ

Densely Connected Convolutional Networks