- 「Dense Net」について学びたいけど理解できるか不安・・・
- 「Dense Net」についてどこから学んでいいか分からない?
- 「Dense Net」を体系的に教えて!
「Dense Net」は、「Denseブロック」と呼ばれる畳み込み層を導入したモデルです。「Denseブロック」を導入したことで、層をより深くすることができそれが精度向上につながりましたが、興味があっても難しそうで何から学んだらよいか分からず、勉強のやる気を失うケースは非常に多いです。
私は過去に基本情報技術者試験(旧:第二種情報処理技術者試験)に合格し、また2年程前に「一般社団法人 日本ディープラーニング協会」が主催の「G検定試験」に合格しました。現在、「E資格」にチャレンジ中ですが3回不合格になり、この経験から学習の要点について学ぶ機会がありました。
そこでこの記事では、「DenseNet」を学習する際のポイントについて解説します。
この記事を参考に「DenseNet」が理解できれば、E資格に合格できるはずです。
目次
1.概要
Dense Netとは・・・
- 論文タイトル
・Densely Connected Convolutional Networks.G.Huang et.,al.2016
・https://arxiv.org/pdf/1608.06993.pdf
・https://www.slideshare.net/harmonylab/densely-connected-convolutional-networks - 「Dense Net」開発の背景
・ニューラルネットワークでは層が深くなるにつれて、学習が難しくなるという問題(勾配消失問題)があった
・ResNet(Residual Network)などのCNN(畳み込みニューラルネットワーク)構造では、前方の層から後方の層へアイデンティティ接続を介してパスを作ることで勾配消失問題に対処した。 - 「Dense Net」の特徴
・Dense Convolutional Network(以下、DenseNet)は、CNN構造の一種である。
・「DenseBlock」と呼ばれるモジュールを用いて勾配消失問題を回避する。
・Dense:直訳すると「密集」
2.Dense Netの特徴
「Dense Net」の特徴
成長率(Growth Rate)とは・・・
- DenceBlockでは成長率(Growth Rate)と呼ばれるハイパーパラメータが存在する。DenceBlock内の各ブロック毎にk個ずつ特徴マップのチャンネル数が増加していく時、kを成長率と呼ぶ。(上図参照)
- kが大きくなるほど、ネットワークが大きくなるため、小さな整数に設定するのがよい
入力:k0 出力:k
入力:k0 + k 出力:k
入力:k0 + 2k 出力:k
入力:k0 + 3k 出力:k
入力:k0 + 4k 出力:k
Transition Layer とは・・・
- CNNでは中間層でチャンネルサイズを変更
- 特徴マップのサイズを変更し、ダウンサンプリングを行うため、TransitionLayerと呼ばれる層で Dence block をつなぐ

↑ ↑ ↑ ↑ ↑ ↑
プーリング特徴マップのサイズを削減 各ブロック内で特徴マップのサイズは一致
DenseNet | ResNet | |
---|---|---|
中間層の仕組み | 前方の各層から出力全て →後方の層へ入力 | 前1層の入力のみ →後方の層へ入力 |
3.まとめ
最後まで読んで頂きありがとうございます。
皆様のキャリアアップを応援しています!!
コメント