全体概要

本セミナーは、2016年5月13日に丸山不二夫氏が主宰するMaruLabo(マルレク)にて実施された「Convolutional Neural Network(CNN)入門講座」の講義資料です。Deep Learningの中核技術であり、画像認識を中心に目覚ましい成果を上げているCNNとはそもそも何者であるのか、という問いに正面から向き合い、できる限り多くの技術者がその本質を理解できるよう構成されています [p.5]。

本講義が提起する中心的なテーマは、「なぜFull Connectなニューラル・ネットワークでは不十分なのか、そしてCNNはその問題をいかにして解決したのか」という問いです。CNN以前のニューラル・ネットワークは、隣り合うすべての層が完全二部グラフで結合されているため、パラメーター数が入力サイズに比例して爆発的に増加するという構造的欠陥を抱えていました [p.45, p.46]。加えて、Full Connectな構造では入力層のノードが「順序を持たない集合」として扱われるため、画像データが本来持つ空間的・局所的な構造情報を正確に反映できないという根本的な問題もありました [p.26, p.31]。

CNNはこれらの問題に対し、「局所的受容野」「パラメーターの共有(重みの共有)」「Pooling層による解像度の縮小」という三つのアーキテクチャー上のアイデアを組み合わせることで応答しました [p.58, p.91]。入力データを幅×高さ×深さ(RGB)の三次元ボリュームとして扱い、層を経るごとに三次元ボリュームを別の三次元ボリュームへと変換する「画像認識専用ニューラルネット」として自らを位置づけています [p.75, p.76]。

技術史的な観点では、CNNのアーキテクチャーはHubelとWieselによる1960〜70年代の大脳視覚野研究、特に単純型細胞の「局所的受容野」の発見に直接インスパイアされており [p.70, p.74]、1990年代のLeCunらの研究から連続する進化の延長線上にあります [p.223, p.224]。それでもなお、ImageNetコンテスト2012年での圧倒的な勝利まで、CNNはコンピュータービジョンの主流コミュニティからほとんど無視されていたという歴史的事実は、技術普及の本質を考えさせる重要な示唆を含んでいます [p.3, p.227]。

本資料は前半の理論解説と後半の計算体験・可視化・応用紹介から構成されており、巻末にはLeCun & Bengio(1995年)[p.195]、Hinton, LeCun, Bengio(2015年)[p.213]、Karpathy et al.(2016年)[p.231] という三本の基本文献の日本語抄訳が収録されています。

講義のロードマップ

ここでは、セミナーの講演資料がどのようなパートから構成されているかを示します。また、それぞれのパートのポイントを紹介します。

■ Part 1: CNN以前のニューラル・ネットワーク — Full Connectの本質と限界

CNN登場以前の通常のニューラル・ネットワーク(Full Connect)の仕組みを丁寧に振り返り、その構造的な本質を明らかにします。特に、入力層のノードの並びが「順序を持つ配列」ではなく「構造を持たない集合」として扱われているという見落とされがちな事実を詳細に論証し、これが画像認識における根本的な限界の源泉であることを示します [p.26, p.30, p.31]。

■ Part 2: CNN以前のネットワークの二つの問題

Full Connectなネットワークが画像認識において抱える二つの根本的な問題を具体的なデータとともに明示します。第一はパラメーター数の爆発、第二は画像データの局所的・空間的構造を正しく捉えられないという問題です。これらが、CNNというアーキテクチャーの必然性を動機づけます [p.44]。

■ Part 3: CNNのアーキテクチャー — 三つの革新的アイデア

Full Connectの問題を克服するためにCNNが採用した、三つの本質的なアーキテクチャー上のアイデアを解説します。「局所的受容野」「パラメーターの共有」「Poolingによる解像度縮小」の組み合わせが、どのようにパラメーター爆発を抑制し、かつ画像の空間的構造を尊重するかを、具体的な数値比較を交えて論証します [p.58, p.65, p.67]。

■ Part 4: CNNの三次元ボリューム描像 — 全体構造の把握

CNNの各層は「幅×高さ×深さ」の三次元ボリュームを受け取り、別の三次元ボリュームへと変換するという全体像を確立します。LeNetやAlexNetの図に登場する直方体・四角錐が何を表しているかを解読し、フィルターの「深さ」がどのように入力の「深さ」と対応し、出力の「深さ」がフィルター枚数と一致するかという重要な関係を整理します [p.75, p.77, p.78, p.147]。

■ Part 5: Convolutionの計算を体験する — 具体的な数値演習

スタンフォード大学CS231nの教材データを用いて、Convolutionの計算を実際の数値で一ステップずつ体験します。抽象的な説明にとどまりがちなConvolutionの演算が、「対応する要素同士の積和+バイアス」という具体的な計算として成立していることを、詳細な数値展開を通じて体感的に理解させることがこの部の目的です [p.93, p.94]。

■ Part 6: Convolutionの働きを見る — 可視化と直感的理解

Convolutionという演算が「何をしているのか」を直感的に把握するため、GIMPの画像処理フィルターとの対比、学習済みフィルターの可視化、そしてCNN各層が検出する特徴の階層性という三段構えで解説します。CNNの低位フィルターは単純なパターンに、高位フィルターは「眼」「花」「車輪」「文字」といった意味的な概念に反応するという驚くべき事実がここで示されます [p.155, p.172, p.173]。

■ Part 7: CNNの応用 — コンピュータービジョンの諸課題

CNNが実際にどのような問題領域に適用されているかを概観します。画像分類・位置推定・オブジェクト検出・インスタンス切り出しという四段階のコンピュータービジョン課題の整理から始まり、顔認識・動画認識・医療画像解析・交通標識認識・手書き漢字認識・関節動作認識・強化学習ゲームプレイまで、CNNの応用領域の広さを示します [p.178, p.183, p.184, p.185]。

■ Part 8: 参考文献 日本語抄訳 — CNNの理論的基盤

本講義の理論的支柱となる三本の重要文献の日本語抄訳が収録されています。1995年のLeCun & Bengioの論文、2015年のHinton・LeCun・Bengioによる”Deep Learning”、そしてStanford CS231nの教材テキストです。CNNの誕生から現在に至る技術的蓄積を一次資料レベルで追体験できる構成になっています [p.194, p.195, p.213, p.231]。