-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_CNN
- 戻る(ニューラルネットワーク、画像処理とコンピュータビジョン(AI))
- 一般的なフツーのニューラルネットワーク
- 順伝播型ニューラルネットワーク(FNN)(ニューラルネットワークの該当節を参照)
- ディープニューラルネットワーク(DNN)(ニューラルネットワークの該当節を参照)
- 畳み込みニューラルネットワーク(CNN)
- 再帰型ニューラルネットワーク(RNN)
- 生成モデル(機械学習の理論の該当節を参照)系の
ニューラルネットワーク
- 一般的なフツーのニューラルネットワーク
(Convolutional Neural Network: CNN)
-
一般的な順伝播型ニューラルネットワークとは異なる。
-
1989年に単純な数字画像の認識のために開発された
LeNet(深層学習(deep learning)の該当節を参照)が原型 -
データの空間的構造を学習する画像分類において、圧倒的な性能を発揮した。
-
視覚神経系を模した畳み込み処理で画像から特徴抽出することで性能が出た。
-
大規模画像認識競技会(ILSVRC)で使われている
ImageNet(G検定:試験対策の該当節を参照)と言う\n 大規模な画像データセットが利用できる。 -
大規模コーパスで学習されたモデルの重みは公開されていて、
転移学習で新たなタスク向けに再学習し、新たなタスクのモデルを作成する。
- LeNet(深層学習(deep learning)の該当節を参照)
- AlexNet, GoogLeNet, VGGNet, ResNet(深層学習(deep learning)の該当節を参照)
- R-CNN
- Fast R-CNN
- Faster R-CNN
- FCOS
- YOLO
- SSD
- FCN (Fully Convolutional Network)
- YOLACT
- Mask R-CNN
大規模画像認識競技会(ILSVRC)
- ImageNet(G検定:試験対策の該当節を参照)画像を使った1000分類
- (チーター、ジャガー、ヒョウ、ユキヒョウとか単純でない)
- 256*256カラー画像(訓練 : 検証 : テスト = 120万 : 5万 : 15万)
| before 2017 | after 2017 |
|---|---|
![]() |
![]() |
CNNは大きく分けて2つのパートに分けることができる。
-
特徴量抽出パート
-
識別パート
脳の神経系を模した全結合層と出力層(≒ DNN、ニューラルネットワークの該当節を参照)- 全結合層を繰り返すことで最終的な出力を得る
- 得られた特徴量を活性化関数、Softmax関数
(ニューラルネットワーク(推論)の該当節を参照)を用いてアウトプット
-
視神経系(視覚を司る神経系)を模して画像から特徴抽出する。
-
全結合層に入力する特徴を取り出すために自動化された前処理。
-
畳み込み処理
- 画像のフィルタ処理+活性化関数
- 特徴マップを生成(様々な特徴を取り出す)
-
特徴
-
細かい(局所的な)特徴の組み合わせから、
大まかな(大局的、複雑な)特徴を捉えられる。- 手前の階層 → 波長の光に反応
- 奥の階層に進むにつれ → 線の向き、折れ線の角、直線の交差に反応
- 最奥の階層 → 特定の模様(≒ 特定のカテゴリ)に反応
-
ただし、理論的な裏付けは無い。
生体の神経系を見よう見まねで模倣してみたら上手くいっただけで、
CNNが高性能を実現している理由は厳密には分かっていない。
-
-
特徴マップの生成
-
特徴マップは、画像の局所的な特徴を抽出したもの。
-
1つのカーネル(フィルタ、ウィンドウ)につき1つの特徴マップが生成される。
-
カーネルをn個、用意して、特徴マップをn個、生成する。
-
特定のパターンを検出する「カーネルの行列」と「画像中の一部領域」の内積を計算して得たスカラを
「画像中の一部領域」の中心に置いて、元画像と同じサイズの特徴マップを作る。-
「画像の一部領域」と「カーネルの行列」のサイズは同じにする。
-
位置を探し少しずつずらしながら(ストライド)内積を計算してスカラにする。
-
RGB(複数チャンネル)の場合、チャンネル毎の「カーネルの行列」で得たスカラを足し
1つの特徴マップを得る。 -
ベクトルの内積と同じ様にパターンが似ている場合、スカラの値は大きくなる。
-
一部領域の中心部分と同じ位置に計算したスカラを置き、元画像と同じサイズの特徴マップを作る。
-
最後に、特徴マップにバイアスの値を足す。
-
-
-
パディングとストライド
-
パディング(P):入力データの周りを一定の値で埋める操作
-
ストライド(S):畳み込み操作において、ウィンドウを移動させるピクセル数
-
式
入力サイズ(H, W)、フィルタ・サイズ(FH, FW)、出力サイズ(OH, OW)- OH = 1 + (H + 2P - FH) / S
- OW = 1 + (W + 2P - FW) / S
-
例
-
4×4のサイズの画像に対して、3×3のカーネルをパディング0、ストライド1で適用した場合の
特徴マップのサイズ
= 1 + (4 + 0 - 3) / 1 = 1 + 1/1 = 2 なので 2×2 -
5×5のサイズの画像に対して、3×3のカーネルをパディング1、ストライド1で適用した場合の
特徴マップのサイズ
= 1 + (5 + 2 - 3) / 1 = 1 + 4/1 = 5 なので 5×5
-
-
-
イメージ
- 計算の全体像(とあるが1画像の処理)

-
フルのイメージはコチラをご参照
https://1drv.ms/p/s!Amfs5caPP9r5jlAZEt6cg2zg_2cU?e=CgwVew -
○の画像を斜線のフィルタを使って特徴マップにした例

-
位置ずれや形の歪みに対する頑健性
- 特徴マップから位置のズレに対して頑強な特徴抽出を行う。
- 特徴同士の位置関係で見る(絶対座標ではなく、相対座標で見る)。
-
特徴が特徴マップ中のどの部分に位置するか?
- 出力が縮小され処理の計算量が減る。
- 位置ずれや形の歪みに「頑健になる」(≒同じ値を返す)。
-
プーリングの種類
-
最大値
- MaxPooling:通常
- GlobalMaxPooling:全結合層へ渡す前、Flatten代替
-
平均値
- AvgPooling:通常
- GlobalAvgPooling:全結合層へ渡す前、Flatten代替
-
Lp(Lp pooling)
- Lpノルムの値を使用する。
- Global~は無いっぽい。
-
-
パディングとストライド
-
パディング(P):なし
-
ストライド(S):
- (以下は)ウィンドウサイズと同じの固定値(の例)
- ウィンドウサイズと同じではない場合もある(略)
-
式
入力サイズ(H, W)、ウィンドウ・サイズ(WH, WW)、出力サイズ(OH, OW)- OH = H / WH
- OW = W / WW
-
例
-
4×4の特徴マップに対して、2×2のウィンドウを適用した場合の出力のサイズ
= 4 / 2 = 2 なので 2×2 -
6×6の特徴マップに対して、3×3のウィンドウを適用した場合の出力のサイズ
= 6 / 3 = 2 なので 2×2
-
-
-
イメージ
- 特徴マップにプーリングを施した例

CNNのパラメタには、畳み込み層のパラメタと
全結合層のパラメタがある。
- この時点でカーネルは畳み込みのパラメタとして機能する。
- カーネルは重みパラメタとして機能し誤差逆伝播法によって学習できる。
- 全結合層の重みはDNN(ニューラルネットワークの該当節を参照)の重みと同じ。
- 重みパラメタは誤差逆伝播法によって学習できる。
depth-wise Convolution(グループ化畳込)
11 Convolution(11畳込)、
-
概要
- 空間グリッド上の1点のみにチャンネル方向に畳み込む
- 点単位畳み込み層 (pointwise convolution)とも呼ばれる。
- Network-in-Networkで提案されたアイデアでGoogLeNetの
Inceptionモジュールで採用されたことをきっかけに広く使われるようになった。
-
内容
- 入力画像のサイズを変えずにチャンネル数(特徴マップ数)を変更する畳み込み操作
- 特徴マップ上の各1グリッドにおいて深さ方向の畳み込みのみを個別実行するという処理
- チャンネル数を減らすことでパラメタ数が減り次元削減の効果が現れる
上記はConvのFN(フィルタ数)で特徴マップ数が変わることから、
あまり、処理内容を詳しくイメージできなくても、「確かに。」となる。
(チャンネル数(CH)は二層目以降ではフィルタ数(FN)に対応した特徴マップ数になる)
-
用途
-
「画素単位での識別器」としての使用
物体検出、セマンティック・セグメンテーションの終盤層で
空間サイズが狭まった特徴マップに対し使用することが試された。 -
「チャンネル方向の次元削減」としての使用
フィルタ数を少なくしておくと、「チャンネル方向の次元削減」が可能。
-
-
様々な呼称がある。
- 逆畳み込み(Deconvolution)
- 転置畳み込み(Transposed Convolution)
- 上昇畳込み(Up Convolution)
- アップサンプリング(Up Sampling)
-
畳み込みの逆プロセスではない事に注意。
- 入力データを拡大してから畳み込みを行う処理
- 一度畳み込みで圧縮したデータをもとのサイズに戻す。
- 入力データを完全に復元するものでもない
-
セグメンテーションや
生成分野(ニューラルネットワークの該当節を参照)などでよく使われる。
https://nisshingeppo.com/ai/whats-deconvolution/
-
概要
-
省パラメタながらも高い表現力を持ち計算効率性も良い「ブロック」
(構造) -
大きな畳み込みフィルタを小さな畳み込みフィルタのグループで近似し、
少ないパラメタ数で表現力を改善している。- CNNはパラメタ数が増えてもスパース(疎)になってしまい無駄が多いのでデンス(密)にしたい。
- スパース(疎)をデンス(密)にする ≒ 人間 / 犬 / 猫の目 / 鼻 / 口を共通化するみたいな話。
- スパース(疎)をデンス(密)にするには、相関のあるニューロンをまとめる。
・相関のあるニューロンとは特徴マップ上の同じ位置のニューロン
・1*1 Convで次元削減すると相関のあるニューロンをまとめられる。 - コレは重み0のパラメタを排除しているとみなせるため、相対的にデンス(密)になる。
-
-
並列化
- 多様なサイズ経路に4並列化(=ワイド化)
- 多様な畳み込みサイズの特徴マップを合成
-
パラメタ削減
各経路の次元削減による軽量化
(残差ブロック)
-
概要
-
劣化問題を解決する残差学習に対応した「ブロック」
(構造)-
Bottleneckアーキテクチャ(11, 33, 1*1)
-
畳み込み層とSkip Connection(Identity mapping)
・層が深くても恒等写像の維持が可能になる(変換が必要ない時、重み0でOK)
・また、僅かな勾配も消失することなく残すので僅かな変換も可能になる。 -
<ResNet-34>
・3*3 Conv(FNは指定の値)
・3*3 Conv(FNは指定の値)
・入力を残差接続で迂回させて足す。 -
<ResNet-152>
TypeA, B, C, D でFN値が異なる。
・1*1 Conv(FN = A:64, B:128, C:256, D:512)
・3*3 Conv(FN = A:64, B:128, C:256, D:512)
・1*1 Conv(FN = A:256, B:512, C:1024, D:2048)
・入力を残差接続で迂回させて足す。
-
-
処理内容は、単純に、
-
-
劣化問題・残差学習
degradation(劣化問題) と residual learning(残差学習)-
degradation(劣化問題)
- 深くしたほうが性能が悪くなる(18層 → 34層)。
- しかも訓練データに対しても性能劣化した(過学習&汎化性能でもない)
- 深くした方が「数学的には」・「表現力が豊か」であるはず。
- 「数学的には」→ 学習の(近似計算の最適化)問題を考慮していない。
- 「表現力が豊か」→ (34が18に劣るというのは)恒等写像の学習が困難と言う仮説
-
residual learning(残差学習)
- 通常の学習はy=h(x)のhのパラメタを学習
- 残差学習はy=h(x)=f(x)+xのfのパラメタを学習(xは恒等写像)
- パラメタ0で恒等写像を出力(学習?)可能 ≒ 恒等写像との差分を学習するようになる。
- その他にも、勾配消失(ニューラルネットワークの該当節を参照)が
起き難いと言うメリットもあるらしい。
-
-
パラメタ削減
-
LeNet
-
歴史(深層学習(deep learning)の該当節を参照)
誤差逆伝播法の発見から僅か2年後 -
論文(89)
Introduction(多変量解析には無かった)- 誤差逆伝播法
- 訓練&テスト・データ
- 複雑なモデルには大規模なデータ
- 過学習に気を付ける。
-
タスク
- 手書き文字認識(MNIST未満のマウスdeペイント文字)
- 16 * 16の480枚(訓練 : テスト = 320 : 160)
-
アーキテクチャ
- 図がない。
- 構造の説明
・入力 : 1616
・Conv : FN=2, FHW=33, S=2, + tanh → 882
・Conv : FN=4, FHW=55, S=2, + tanh → 444
・44*4 をFlatten → Affine → tanh(≠ Softmax)で10
・損失関数は、Categorical Cross EntropyではなくMSE
-
精度とポイント
- 精度:98.4%
- ポイント
・AffineよりConvでパラメタ数削減
・チャンネルを増やすと良い結果が出る
-
-
LeNet-5
-
歴史(深層学習(deep learning)の該当節を参照)
- 10年後の性能向上版
- (間にLeNet-1、-4、Boosted -4 とか色々ある)
-
論文(98)
Introduction:(SGDの)局所解だけどOK -
タスク
郵便番号のようなものを分類 -
アーキテクチャ
- LeNet-5 図
- 構造の説明
・入力 : 3232(Padding済みらしい)
・Conv : FN=6, FHW=55, S=1, + tanh → 28286
・Avg Pooling : 22, S=2, + tanh → 14146
・Conv : FN=16, FHW=55, S=1, + tanh → 101016
(フィルタの見る特徴マップがマッピングで指定されているらしい)
・Avg Pooling : 22, S=2, + tanh → 5516
・Conv : FN=120, FHW=11, S=1, + tanh → 11120(実質Affine)
・11120 をFlatten → Affine + tanhで84 → Affine + ERBF(≠ Softmax)で10
-
-
歴史(深層学習(deep learning)の該当節を参照)
- ReLU(ニューラルネットワークの該当節を参照)の発見から僅か2年後
- ドロップアウト(Dropout)(深層学習のテクニックの該当節を参照)の発見の同年
- ILSVRC2012で優勝し、Deep Learningブームの火付け役となった
-
論文(12)
Introduction:- 活性化関数にReLU(ニューラルネットワークの該当節を参照)を使用
- ドロップアウト(Dropout)(深層学習のテクニックの該当節を参照)の導入
- 大量のデータ + GPUと並列計算(深層学習(deep learning)の該当節を参照)
-
タスク
ILSVRC -
アーキテクチャ
-
特徴の説明
-
構造の説明
- 入力 : 2242243ch
(256*256をデータ拡張、深層学習のテクニックの該当節を参照) - Conv : FN=96, FHW=1111, S=4, + LRN → 555596 → 5555482(分割して並列化)
- Max Pooling : 33, S=2 → 2727482(サイズで割るんじゃなくてストライドで割る感じ)
- Conv : FN=128, FHW=55, P=2, S=1, + LRN = 27271282
- Max Pooling : 33, S=2 → 13131282
- Conv : FN=192, FHW=33, P=1, S=1, + LRN = 13131922(入力データを2ノード間で交換するらしい)
- Conv : FN=192, FHW=33, P=1, S=1 = 13131922
- Conv : FN=128, FHW=33, P=1, S=1 = 13131282
- Max Pooling : 33, S=2 → 661282
- 661282 をFlatten → Affine で20482 → Affine で2048*2 → Affine + Softmaxで1000
- 入力 : 2242243ch
-
精度とポイント
-
精度:
- 誤答率16%と2位が前年度優勝と≒の26%に大差
- ココからの怒涛の精度改善のきっかけになった。
- なお、AlexNetでのCIFAR-10の精度は89%らしい。
-
ポイント
- 非DL時代からDL時代へ。
- 力技のモデル(CNN層をシンプルに積重ね深く、並列計算で大きく出来た)
- LRN(Local Response Normalization、局所応答正規化)はマイナーテク
-
-
歴史(深層学習(deep learning)の該当節を参照)
- Google, 2014
- 分類、検出部門で優勝
- Inceptionモジュールで更に深いCNNを構成
-
論文(15)
Introduction: -
タスク
ILSVRC -
アーキテクチャ
-
精度とポイント
-
精度:6.7%
-
ポイント
深いネットワークを構築できる。- 1*1 Convで軽量になったInceptionモジュールを積み重ねる
(ネットワーク in ネットワーク) - ネットワークの途中からの分岐でクラス分類を行うAuxiliary Classifier の Auxiliary Lossは、
勾配消失問題に対処する効果があり、また、バッチ正規化、アンサンブル学習と同様の効果が得られる。
- 1*1 Convで軽量になったInceptionモジュールを積み重ねる
-
このうちの性能が良かった VGG16 または VGG19 が使われている。
-
歴史(深層学習(deep learning)の該当節を参照)
- オックスフォード, 2014
- 分類部門で2位
- 多層から成るCNN
-
論文(14)
19層より深いものも試したが、19層がベストだった。 -
タスク
ILSVRC -
アーキテクチャ
-
特徴の説明
アーキテクチャがシンプル- VGG16 は 畳み込み13層と全結合3層の計16
- VGG19 は 畳み込み16層と全結合3層の計19
-
構造の説明
- 入力 : 2242243ch
(256*256をデータ拡張、深層学習のテクニックの該当節を参照) - Conv : FN=64, FHW=3*3, P=1(以下Conv3でFWH, P略)
- Conv3 : FN=64
- Max Pooling : 22, S=2(以下略) → 112112*64
- Conv3 : FN=128
- Conv3 : FN=128
- Max Pooling → 5656128
- Conv3 : FN=256(VGG163、VGG194)
- Max Pooling → 2828256
- Conv3 : FN=512(VGG163、VGG194)
- Max Pooling → 1414512
- Conv3 : FN=512(VGG163、VGG194)
- Max Pooling → 77512
- 77512 をFlatten → Affineで4096 → Affineで4096 → Affine + Softmaxで1000
- 入力 : 2242243ch
-
精度とポイント
-
精度:6.8%
-
ポイント
- 3*3 Convだけでこの精度
- 奥の階層が汎用的な特徴を獲得しているから
転移学習、ファイン・チューニング
(いずれも 深層学習のテクニックの該当節を参照)に利用できる。
-
Residualブロックにおける残差学習の導入により、
152層の深いネットワークの学習を可能にした
-
歴史(深層学習(deep learning)の該当節を参照)
- Microsoft Research, 2015
- 初めて人間のエラー率 5% を上回る精度を達成。
- Residualブロックにおける残差学習の導入により、より深いCNNの学習方法を提案
- ある層で求める最適な出力を学習するのではなく層の入力を参照した残差関数を学習。
- 入力層から出力層まで伝播する値と入力層の値を足し合わせたモデルで入力層まで、
勾配値がきちんと伝わり、今では1000層といったかなり深い構造でも学習が可能となった。
-
論文(16)
- 勾配消失(ニューラルネットワークの該当節を参照)の話は全く触れていない。
- 劣化問題の問題から、どのようにResNetへ辿り着いたか?
- 18、34、152、1202層のものを評価して劣化問題が発生しないことを確認している。
- 1202でも学習可能でAlexNetよりパラメタ数が少ない(汎化性能は152の方が良い)。
- あとは、Heの初期値とバッチ正規化
(いずれも 深層学習のテクニックの該当節を参照)などによって
劣化問題からの最適化問題に取り組んでいる。
-
タスク
ILSVRC -
アーキテクチャ
-
構造の説明
-
<ResNet-34>
・入力 : 2242243ch(256256をデータ拡張)
・Conv : FN=64, FHW=77, S=2
・Max Pooling : 3*3, S=2
・Residualブロック(全部のConvのFN= 64, 先頭ConvだけS=2)を3層
・Residualブロック(全部のConvのFN=128, 先頭ConvだけS=2)を4層
・Residualブロック(全部のConvのFN=256, 先頭ConvだけS=2)を6層
・Residualブロック(全部のConvのFN=512, 先頭ConvだけS=2)を3層
・Global Average Pooling
・...をFlatten → Affine + Softmaxで1000 -
<ResNet-152>
・入力 : 2242243ch(256256をデータ拡張)
・Conv : FN=256, FHW=77, S=2
・Max Pooling : 3*3, S=2
・ResidualブロックA(先頭ConvだけS=2)を3層
・ResidualブロックB(先頭ConvだけS=2)を8層
・ResidualブロックC(先頭ConvだけS=2)を36層
・ResidualブロックD(先頭ConvだけS=2)を3層
・Global Average Pooling
・...をFlatten → Affine + Softmaxで1000
-
-
精度とポイント
-
精度:3.57%
-
ポイント:Residualブロック
-
-
WideResNet
-
概要
- 層の深さを減らし幅(フィルタ数)を増やす。
- 結果としてパラメタ数は増えるが高精度かつ高速。
-
Residualブロックの改良
表現力を向上させる方法は以下の3つが考えられる。- ブロックにより多くの畳み込み層を加える。
- より多くの特徴マップを加えることで畳み込み層を広げる。
- 畳み込みフィルターサイズを大きくする。
-
検証結果、フィルター数を大きくするのが効果的。
- 小さいフィルターの方が効率的と研究では明らかになっている。
- パラメタk:フィルタ数を k 倍する(パラメタ数と計算量は k の 2乗)
- シート中のk=1 のとき、元のResNetと同じで、k>1のときWideResNet。
-
-
HighwayNets (2015)
- ただ持ち越すだけで良いか?
- 持ち越す割合を重みとして一緒に学習する。
- f(x)+x → f(x)+wx
-
DenseNet (2016)
- 全層間をスキップ接続する
- 複数のスキップが合流する所は足し算じゃないよね?
-
Google, 2019
- シンプルな CNN モデルを効率的(Efficient)にスケーリング
- スケーリングとは計算リソースを大きくすることで精度向上を目指す意味
- パラメタは関係しあっているためバランスをとりながらスケーリングする。
-
パラメタ
-
深さ:層の深さ、α^φ
層を深くすることで- 複雑な特徴を捉えられる
- その分学習コストがかかる
- 勾配消失問題により精度向上に限界がある
-
幅:フィルタ数、β^φ
広さ(フィルタ数)を広げることで- 細かい特徴を捉えられる
- 広さに対して深さが浅いと複雑な特徴を捉え辛い
-
解像度:入力画像の大きさ、γ^φ
解像度が高いほうが細かい特徴を捉えられる
-
-
FLOPSは (αβ^2γ^2)^ϕに従って増えてしまうため
αβ^2γ^2 ≒ 2に制限することで増え方を 2^ϕ で増えるようにした。 -
αβγを グリッド・サーチで求める(φはパラメタ)
スマホ用CNNで、ボトルネックの畳み込みの分割で計算量を減らす。
-
CNNはパラメタ数が多過ぎるのでパラメタ数削減を考える。
-
空間方向とチャネル方向の畳み込みを別々に行いパラメタの数を減らす。
- 各チャネルを独立に畳み込み、チャネル方向を大きさ1のカーネルを用いて畳み込み。
- パラメタ数 = FHFWFNCH → = FHFWCH + 11CHFN = FHFWCH + CH*FN
物体識別以外の応用。
-
コンテンツへのリンク - OSSコンソーシアム
https://www.osscons.jp/joho108j0-537-
深層学習についてのレポート(CNN編)
https://1drv.ms/p/s!Amfs5caPP9r5jlAZEt6cg2zg_2cU -
機械学習・深層学習についてのNotebook
https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path
-
-
O'Reilly Japan - ゼロから作るDeep Learning
(ニューラルネットワークの該当節を参照)
(Pythonで学ぶディープラーニングの理論と実装)
深層学習(deep learning)の該当節を参照。
- 高校数学からはじめる深層学習入門
(畳み込みニューラルネットワークの理解)
https://www.youtube.com/watch?v=xzzTYL90M8s
深層学習(deep learning)の該当節を参照。
-
深層学習概論
深層学習(deep learning)の該当節を参照。
-
CNN紹介動画
https://www.youtube.com/playlist?list=PLhDAH9aTfnxIGIvLciL1CtE59VGrEx4ER -
深層学習 ディープラーニングの世界(中にCNNも含まれる)
https://www.youtube.com/playlist?list=PLhDAH9aTfnxKXf__soUoAEOrbLAOnVHCP- 畳み込み層の本当の意味、あなたは説明できますか?
https://www.youtube.com/watch?v=vU-JfZNBdYU - プーリング層 - シンプルだけど大きな役割を担う層
https://www.youtube.com/watch?v=MLixg9K6oeU
- 畳み込み層の本当の意味、あなたは説明できますか?
- 畳み込みニューラルネットワークの最新研究動向 (〜2017)
https://qiita.com/yu4u/items/7e93c454c9410c4b5427
TensorFlow・Kerasの該当節を参照。
移行メモ
- 「特定物体検出」の YOCLACT は YOLACT の誤記と判断し正した。
- ResNet の論文の評価対象「18、34、154、1202層」および 「汎化性能は154の方が良い」の 154 は、本ページ自身が 152層と述べていることから 152 に正した。
- AlexNet の全結合層「20242」は 20482(合計4096)に正した。 あわせて conv4 / conv5 のフィルタ・サイズが 55, P=2 となっていたものを、 AlexNet の実際の構成である 33, P=1 に正した(出力サイズ 13*13 は変わらない)。
- LeNet-5 の Avg Pooling は S=1 では 1414 / 55 にならないため S=2 に正し、 2つ目の Avg Pooling の出力 556 を、直前の Conv の FN=16 に合わせ 5516 に正した。 「MINST」は「MNIST」、「(SDGの)局所解」は「(SGDの)局所解」に正した。
- 「Residualブロック」のパラメタ削減の項で「33 Conv」のリンク先が 11 畳込の節を指していたため、畳み込み層の節に張り替えた。
- 「適当した場合」は「適用した場合」に正した(計4箇所)。
- 閉じ括弧が欠けていた箇所(VGG163、VGG194/HighwayNets (2015/DenseNet (2016/ k の 2乗/xは恒等写像/中にCNNも含まれる)を補った。
- ILSVRC の進展の表は、元の PukiWiki でセル内に画像が置かれていたため、 GitHub Wiki の表内に画像を配置する形とした。
Tags: 移行, 人工知能, 深層学習, ニューラルネットワーク, CNN, 畳み込み, 画像認識, ILSVRC
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。

