ゼロからAI理論を再構築する

ー 文系エンジニアがAIの内部構造をゼロから理解する記録 ー

多層パーセプトロン:層を重ねると何が変わるか

前回、線形計算と活性化関数の組み合わせでモデルが分類をできるようになるという話を書きました。ただ、あれは1層だけの話です。現実の問題、たとえば入り組んだ境界線を持つデータの分類や画像認識は、1層では表現力が足りません。

今回は、この層を複数重ねた多層パーセプトロン(MLP)がなぜ強力なのかを整理します。

構造はシンプルな繰り返し

多層パーセプトロンの構造は、前回の「線形計算+活性化関数」を縦と横に並べたものです。

\[ h = \sigma(W_1 x + b_1) \] \[ \hat{y} = \sigma(W_2 h + b_2) \]

\( h \) は隠れ層(Hidden Layer)の出力です。最初の層が入力 \( x \) を別の空間 \( h \) に変換し、次の層がその \( h \) から予測を出します。

たとえばコーヒーの味を予測するなら、第1層が「豆の香りと色から焙煎度合いを判断する」、第2層が「焙煎度合いと温度から味を予測する」というように、段階的に情報を加工しているイメージです。

1層でも理論上は十分、でも深いほうが効率的

万能近似定理(Universal Approximation Theorem)という定理があって、十分な数のニューロンを持つ隠れ層が1層あれば、どんな連続関数でも近似できるとされています。

ただ、1層で済ませようとすると必要なニューロン数が爆発的に増えます。層を深くしたほうが少ないパラメータで同じ関数を表現できることが多い。

深層化の効果を画像認識で考えると、第1層がエッジや色の変化を捉え、第2層がそれらを組み合わせて形を捉え、第3層が形の組み合わせから物体を認識する、という具合に抽象度が段階的に上がっていきます。各層が前の層の出力をさらに抽象化するので、浅いネットワークでは大量のニューロンが必要な表現を、深いネットワークでは少ない計算で実現できます。

パラメータが増えすぎる問題

層を増やしてニューロンを増やすほど、最適化すべき重み \( W \) の数は膨大になります。

表現力が上がること自体はいいのですが、上がりすぎるとモデルが訓練データのノイズまで丸暗記してしまう。過学習(Overfitting)です。訓練データでの損失は下がるのに、未知のデータでの性能が伸びない状態で、学習曲線を見ると訓練と検証の損失が途中から乖離し始めるのでわかります。

過学習の対策(正則化やドロップアウトなど)については後の記事で扱いますが、モデルを複雑にするほど「訓練データに適応しすぎる」リスクが上がるという点は、ここで押さえておく必要があります。

まとめ

多層パーセプトロンは、線形計算と活性化関数を積み重ねて複雑なパターンを表現するモデルです。層が深いほど少ないパラメータで高い表現力が得られますが、パラメータの総数は増え、過学習も起きやすくなります。

層を深くするとさらに別の問題も出てきます。勾配が層を遡るうちに消えたり爆発したりする現象です。次回はこの勾配消失・勾配爆発の問題と、ReLU関数や重みの初期化による対処について書きます。


参考文献