Wide ResNet (G検定)

Wide ResNet

1. 定義と概要

Wide ResNetとは、画像認識で広く使われるCNN(畳み込みニューラルネットワーク。画像の特徴を捉えるのに適したディープラーニングの代表的な手法)の一種で、ResNetを発展させたものです。ResNetが持つ残差ブロック(入力をそのまま出力に足し合わせる仕組みで、層を深くしても学習の信号が伝わりやすくなります)を保ったまま、層数、すなわち深さを減らします。そのかわりに各層のチャンネル数(画像から特徴を取り出す部品の枚数で、多いほど一度に見られる特徴のパターンが増えます)、つまり幅を増やすことで、精度と学習効率を高めています。

2016年に英国で開かれたコンピュータビジョン分野の学会BMVCで、Sergey Zagoruyko氏とNikos Komodakis氏が論文「Wide Residual Networks」の中で提案しました。幅の広げ方はwidening factor kと呼ばれる係数(元のResNetに対して幅を何倍に広げるかを決める指標)で調整します。この論文では、16層のWide ResNetが1000層を超える従来のResNetと同等以上の精度を、より高速に達成できることを示しました。

ResNet登場以降、層を深くするほど精度が上がるという発想のもとで、ネットワークはさらに深い方向へ発展してきました。しかし、層数を倍にしても精度の向上はわずかにとどまり、学習に要する時間ばかりが増大するという課題が明らかになりました。Wide ResNetはこの課題への回答として、深さを追求する路線から一度離れ、層数を絞り込むかわりに各層を広くするという設計転換を示した点に意義があります。

2. 試験対策ポイント

まず整理しておきたいのは、層の深さと精度の関係をめぐる論点です。ResNet以降、層を深く積み重ねるほど精度が向上するという発想が広がりましたが、層数を倍にしても精度の伸びはわずかで、学習時間ばかりが増えるという課題が指摘されるようになりました。Wide ResNetは、この課題に対して層数を減らし幅を広げるという設計転換で応じました。

幅を広げると学習パラメータ(学習によって調整される重みの数)が増えるため、過学習(訓練データに適応しすぎて、初めて見るデータへの精度がかえって落ちてしまう現象)が生じやすくなります。Wide ResNetは、残差ブロック内にある2つの畳み込み層の間にドロップアウト(学習の途中で一部のニューロンをわざと無効にして、特定の経路に頼りすぎるのを防ぐ手法)を導入しています。この工夫により、幅を広げたことで生じやすい過学習を抑えています。

注意したいのは、ドロップアウトの配置です。通常のResNetでは、入力をそのまま出力に足し合わせる経路にドロップアウトを入れると精度が落ちるため採用されていませんでした。配置場所を変えて取り入れた点も、両者の違いとして取り違えやすい点です。

幅を広げるアプローチは、GPU(多数の計算を同時並行でこなせる演算装置)による並列計算処理と相性が良いという特性を持ちます。層を深くして小さな演算を逐次実行する設計に比べ、幅を広げて大きな行列の演算をまとめて並列処理する設計のほうが、GPUの計算資源を有効に使えます。学習と推論(学習済みモデルを使って結果を出す処理)の両方の速度で有利になります。

成果の面も押さえておきたい点です。Wide ResNetは、画像分類のベンチマークであるCIFAR-10・CIFAR-100(画像分類モデルの性能を比べるためによく使われる小さな画像の集合であるデータセット)で高い精度を達成しました。半教師あり学習(ラベル付きデータとラベルなしデータを組み合わせて学習する手法)の研究でも、土台として使われている点が活用例として取り上げられます。

3. 関連概念との比較・相違点

ResNetとの最大の違いは、深さを追求するか幅を広げるかという設計方針にあります。ResNetは層を深く積み重ねることで表現力を高めるのに対し、Wide ResNetは層数を減らすかわりにチャンネル数を増やして表現力を高めます。

両者に共通するのは、入力をそのまま出力に足し合わせる残差ブロック、すなわちスキップ結合という仕組みを持つ点です。この共通点があるからこそ、両者は同じ系譜に位置づけられます。深さと幅のどちらを優先するかという対比は、設計思想の違いを理解するうえでの中心的な論点です。

同じくResNetの発展形とされるDenseNet(各層の出力をそれ以降のすべての層に直接つなぎ、特徴を使い回すことで効率を高めたCNN)とは、精度や効率を高める手段が異なります。DenseNetは、各層の出力を後続のすべての層に密に結合し、特徴を再利用することで、比較的少ないパラメータ数で高い性能をねらう設計です。

三者の関係は、表現力を高める手段の違いとして整理できます。

モデル 表現力を高める手段 設計上の特徴
ResNet 層を深く積み重ねる 残差ブロックを持つ
Wide ResNet 各層のチャンネル数(幅)を増やす 残差ブロックを保ったまま層数を減らす
DenseNet 各層の出力を後続のすべての層に密に結合する 特徴の再利用で少ないパラメータ数をねらう

結合の仕方を工夫するDenseNetと、層の幅を広げるWide ResNetという違いは、取り違えやすい点です。

4. ビジネス・実務での活用シナリオ

画像認識モデルの研究開発の現場では、限られたGPUの計算資源で数多くの候補を試行錯誤することが求められます。層を減らして幅を広げたWide ResNetは、同じ計算資源でも学習にかかる時間が短く、より多くの実験サイクルを回せるという利点を持ちます。

製造業の外観検査でも、Wide ResNetは土台の候補になり得ます。工場の外観検査AIのように、比較的小規模なデータセットを対象に高精度なCNNを短時間で再学習し続ける必要がある現場では、層が浅く学習が安定しやすいWide ResNetの特性が生きます。

半教師あり学習の研究分野でも、Wide ResNetは特徴を抽出するバックボーン(特徴抽出を担う土台となるネットワーク構造)として広く使われています。論文中ではWRN-28-2のように、層数と幅の倍率を組み合わせた型番で呼ばれます。ラベル付けされたデータが少ない状況でも実験の再現や反復がしやすい点が、研究者にとっての利点となっています。

5. 要点まとめ

  • Wide ResNetは、ResNetの残差ブロックを保ったまま層数を減らし、各層のチャンネル数(幅)を増やすことで精度と学習効率を高めたCNNモデルです。
  • 幅を広げることで生じる過学習は、残差ブロック内へのドロップアウトの導入によって抑えられ、幅を広げる設計はGPUの並列計算処理と相性が良いという特性を持ちます。
  • 同じくResNetの発展形であるDenseNetは、密結合による特徴の再利用でパラメータ効率を高める方向のアプローチであり、幅を広げるWide ResNetとは手段が異なります。

6. 確認問題

問1Wide ResNetは、ResNetの層数を減らす代わりに各層のチャンネル数、すなわち幅を増やすことで精度向上を図ったモデルである。

解答・解説をみる

○ 正しい

Wide ResNetの核心的な設計転換にあたります。残差ブロックは保ったまま、層を深くする方向ではなく幅を広げる方向を優先した点がポイントです。

問2Wide ResNetは、幅を広げるにあたって層数もResNetよりさらに増やしている。

解答・解説をみる

× 誤り

正しくは、層数を減らす方向です。Wide ResNetは16層程度の浅いネットワークでも、1000層を超える通常のResNetと同等以上の精度を達成しており、層数を増やすという記述は逆向きの誤りです。

問3Wide ResNetでは、幅を広げたことで生じる過学習を抑えるため、残差ブロック内にある畳み込み層の間にドロップアウトが導入されている。

解答・解説をみる

○ 正しい

通常のResNetでは、入力をそのまま出力に足し合わせる経路にドロップアウトを入れると精度低下を招くため採用されていませんでした。Wide ResNetは配置場所を変え、畳み込み層の間に導入することでこの課題に対処しています。