講演資料
講義資料スライドの表紙です。スライド画像、または下の要約文中の青いページ番号リンクをクリックすると、別のタブで無駄なノイズのない、純粋なPDFビューア画面が起動し、指定されたページへ直接ジャンプして快適に閲覧できます。
全体概要
本セミナーは、ディープラーニングにおける二つの根幹的なモデル——DNN(Deep Neural Network / Full Connect FeedForward Network)とCNN(Convolutional Neural Network)——の構造的差異を、数学的基礎から丁寧に紐解くことを中心的なテーマとして据えています [p.1], [p.2]。
ディープラーニングの「Hello World」とも称されるMNIST手書き数字認識を実践的な題材として用いながら [p.2]、単なるハンズオンの手順説明に留まらず、「なぜCNNが必要とされたのか」という技術史的な問いに正面から向き合います。1980年代から90年代にかけて隆盛したFull Connect型ネットワークは、画像認識という課題に対して二つの根本的な限界を抱えていました。一つはパラメーター数の爆発的増大であり、もう一つは画像が本来持つ局所的・空間的な構造を活かせないという問題です [p.77], [p.78], [p.84]。CNNは、この二つの問題に対する明確な回答として設計されており、「局所的受容野」と「パラメーターの共有」という二つのアーキテクチャー上の革新がその核心をなします [p.91], [p.98]。
すべての議論の出発点は、一つのニューロンの動作を表す極めてシンプルな式、φ(W・X + b) にあります [p.2], [p.57]。一つのニューロンの発火条件も、複数ニューロンからなる層の出力も、行列演算によってこの同一の形式で表現できるという数学的な統一性が、本講義全体を貫く美しい骨格となっています [p.38]。TensorFlowのグラフ表現はこの抽象化を可視化するツールとして位置づけられ、実際のプログラムコードの中にφ(X・W + b)の形を発見するという演習を通じて、理論と実装の橋渡しが図られます [p.65], [p.67]。
さらに、CNNの要であるConvolution演算を「3次元立体から3次元立体への変換」として丁寧に図解し、フィルターがデータ上をスライドしながらActivation Mapを生成するプロセスを段階的に解説することで、AlexNetやLeNetの図中に現れる直方体や四角錐の意味が初めて明確に理解できる構成となっています [p.102], [p.169], [p.184]。CNNの可視化研究の紹介によって、低次層フィルターがエッジや模様を、高次層フィルターが「眼」や「車輪」といった意味的特徴を抽出するという、階層的表現学習の実態が示され、CNNの設計思想の正しさが視覚的に裏付けられます [p.257], [p.258]。
講義のロードマップ
■ Part 1: ニューロンの基本動作とφ(W・X + b)の導出
- この部の核心:
ヘッブの法則に着想を得た生物学的ニューロンのモデルから出発し [p.14]、シナプスの重み・バイアス・活性化関数という三要素が揃って初めてニューロンの動作が記述できることを示します。一つのニューロンから複数ニューロンの層へと議論を拡張し、すべてのケースが行列演算によりφ(W・X + b)という単一の形式に統合されることを導出します [p.38], [p.56], [p.57]。これがDNNおよびCNN全体を貫く最重要の数式です。
- 論理展開:
- シナプスの重みWによる「加重多数決」モデルとバイアスbの発火閾値としての役割を直感的に説明 [p.21], [p.24]。
- 単一ニューロンの発火条件W・XT + b > 0を、ベクトルの内積として表現 [p.30], [p.31]。
- 複数ニューロンの層では、WとXが行列・ベクトルに拡張されても同じ形式が保持される [p.37], [p.38]。
- sigmoid、ReLU、tanhといった主要な活性化関数の特性を整理 [p.53], [p.54], [p.55]。
■ Part 2: DNNのアーキテクチャーとTensorFlowグラフ表現
- この部の核心:
複数の層を深く積み重ねたFull Connect型DNNの全体構造を、TensorFlowのグラフ表現(変数ノード・演算ノード・プレースホルダー)によって簡潔に可視化する方法を示します [p.40], [p.41]。旧来の「ニューロンの粒」レベルのグラフより、層単位のブロック図の方が構造を直感的に把握しやすいことを強調します [p.48]。実際のTensorFlowコードの中にφ(X・W + b)の形を発見する演習により、理論と実装が接続されます [p.67], [p.69]。
- 論理展開:
- 一層の処理φ(X・W + b)は「積→和→φ適用」の三ノードグラフで表現される [p.40], [p.47]。
- 784入力→15→10の二層DNNから、Hidden1・Hidden2・Linear層を持つ多層DNNまで、グラフ表現が一貫して適用できる [p.50], [p.74]。
- mnist_softmax.pyおよびmnist.pyの具体的なコードでtf.matmul、tf.nn.relu、tf.nn.softmaxがφ(X・W + b)に対応することを確認 [p.67], [p.65], [p.69], [p.73]。
- softmax関数の「全ノードの出力の和が1」という確率的性質とOne-Hot-Vectorの役割を整理 [p.59], [p.63], [p.64]。
■ Part 3: DNNの問題点とCNNによる解決
- この部の核心:
Full Connect型DNNが画像認識に適用された際の二つの本質的問題——パラメーター数の爆発と空間的局所性の無視——を定量的・概念的に明示します [p.78], [p.84]。MNISTの784次元からImageNetの196,608次元に至るパラメーター増大の深刻さを示した後 [p.79], [p.80]、CNNが「局所的受容野」と「パラメーターの共有」によってこれらを根本的に解決する論理を展開します [p.91], [p.98]。
- 論理展開:
- 6入力のFull Connectではパラメーター数42に対し、局所的受容野(幅3)+パラメーター共有ではわずか4となることを具体例で示す [p.92], [p.98]。
- 異なるフィルター(WB、WC…)を追加しても、各フィルター内でパラメーター共有が効くためパラメーター総数の増大を抑制できる [p.99]。
- Pooling層が微細な位置ずれや乱れを捨象し、解像度を段階的に落とす役割を担う [p.89], [p.113], [p.114]。
- Full ConnectからCNNへの移行は「完全二部グラフの見直し」+「入力データへの空間構造の付与」として整理できる [p.89], [p.90], [p.91]。
■ Part 4: CNNの3次元ボリューム構造とConvolution演算の詳解
- この部の核心:
CNNの資料に頻出する「直方体」と「四角錐」の図形が何を意味するのかを丁寧に解説します [p.169], [p.176], [p.179]。32×32×3の入力に5×5×3のフィルターを適用してActivation Mapを生成し、複数フィルターの適用によって出力が3次元ボリュームへと変換される全プロセスを、「面から点→立体から点→立体から面→立体から立体」という4段階の計算として体系化します [p.184], [p.186], [p.191], [p.198], [p.221]。
- 論理展開:
- フィルターは常に入力と同じ「深さ(depth)」を持ち、スライドしながら各位置で内積+バイアスを計算してActivation Mapの1点を生成する [p.105], [p.106], [p.107]。
- K個のフィルターを適用するとK枚のActivation Mapが積み重なり、出力の深さ=フィルターの個数となる [p.109], [p.251]。
- 具体的な数値例(5×5×3入力×2フィルター)でConvolutionの計算過程を逐次的に追跡 [p.141]〜[p.168]。
- Pooling層はx-y方向のみ縮小し、深さ方向には変化を与えない [p.114]。
■ Part 5: CNNの可視化とハンズオン課題の構造解説
- この部の核心:
ZeilerらのCNN可視化研究を引用し、CNNの低次層フィルターが「エッジ・グラデーション・波紋」のような単純なパターンを、高次層フィルターが「眼・花・車輪・文字」のような意味的特徴を抽出していることを示します [p.257], [p.258]。これにより、CNNの階層的特徴学習という設計思想が実証的に裏付けられます。続いてハンズオン課題のネットワーク構造(2段のConvolution+MaxPooling+2段のFull Connect)を図と対応させながら解説します [p.261]。
