ディープラーニングの基礎となるXOR問題と多層パーセプトロンによる解決
こんにちは。ゆうせいです。
ディープラーニングを学習する過程で、多くの人が最初に触れる重要な概念の一つにXOR(エックスオーアール)問題があります。この問題は、ニューラルネットワークの歴史において、初期のモデルが持っていた限界と、それをいかに克服して現在のディープラーニングへと発展したかを知る上で、非常に重要な位置づけにあります。本記事では、XOR問題とは何か、そしてどのように解決されたのかを解説します。
XOR(排他的論理和)の仕組み
XOR問題のXORとは、排他的論理和と呼ばれる論理演算のことです。コンピュータの世界では、情報は0と1の組み合わせで表現されますが、論理演算はこれらの0と1を入力として受け取り、特定のルールに基づいて1つの0または1を出力します。
XORのルールは、2つの入力が異なる場合に1を出力し、同じ場合に0を出力するというものです。
これを高校の部活動に例えてみましょう。ある部活動への入部条件が、「野球部またはサッカー部のどちらか一方のみに所属していること」だとします。 入力1を野球部への所属(1なら所属、0なら未所属)、入力2をサッカー部への所属とします。
両方の部活に所属していない(0と0)場合、条件を満たさないので出力は0です。 野球部のみに所属している(1と0)場合、条件を満たすので出力は1です。 サッカー部のみに所属している(0と1)場合、条件を満たすので出力は1です。 両方の部活に所属している(1と1)場合、「どちらか一方のみ」という条件から外れるため、出力は0です。
このように、XORは単純なAND(両方1なら1)やOR(どちらか1なら1)とは異なる出力パターンを持っています。
単純パーセプトロンの限界
1950年代に登場した初期のニューラルネットワークモデルである単純パーセプトロンは、人間のように学習する機械として期待されました。このモデルは、入力データに重みと呼ばれる数値を掛け合わせ、さらにバイアスという数値を加えて合計し、その値がある基準を超えたかどうかで0か1を出力する仕組みです。
単純パーセプトロンが得意としたのは、線形分離可能な問題でした。線形分離可能とは、グラフ上にプロットしたデータを、1本の直線で完全に2つのグループに分けられる状態を指します。例えば、ANDやORの問題は、グラフ上に0と1の入力ポイントを描くと、1本の直線で出力が0のグループと1のグループを分けることができます。
しかし、XOR問題はこの線形分離が不可能です。XORの入力をグラフにプロットすると、出力が1になるポイントと0になるポイントが互い違いに配置されるため、どのように1本の直線を引いても、0のグループと1のグループをきれいに分けることができません。
このことが証明されたことにより、単純パーセプトロンへの期待は一時的に急速に萎むこととなりました。これが、人工知能の研究における「冬の時代」の一因とされています。
多層パーセプトロンによる解決
XOR問題によって明らかになった単純パーセプトロンの限界を克服したのが、多層パーセプトロン(MLP)です。これは、入力層と出力層の間に隠れ層(中間層)と呼ばれる層を追加し、ネットワークを多層化したモデルです。
多層パーセプトロンでは、複数のパーセプトロンを組み合わせることで、複雑な境界線を表現できるようになります。高校の文化祭で、クラスの出し物を決める話し合いを想像してください。1人の意見(単純パーセプトロン)では決められなくても、複数の班で話し合い(隠れ層)、その結果をまとめる(出力層)ことで、複雑な意見調整が可能になるのと似ています。
具体的には、隠れ層にある1つ目のパーセプトロンが1本の直線を引き、2つ目のパーセプトロンがもう1本の直線を引きます。そして、出力層のパーセプトロンがそれらの結果を組み合わせることで、1本の直線では不可能な、XORの複雑な配置を分類できるようになります。これは、空間を折りたたんだり歪めたりして、直線で分けられるように変換するイメージです。
このネットワークを構成する際に、活性化関数と呼ばれる関数が重要な役割を果たします。活性化関数は、各パーセプトロンの出力を非線形(直線ではない形)に変換します。これにより、多層パーセプトロンは非常に高い表現力を持つこととなります。代表的な活性化関数として、シグモイド関数やReLU関数などがあります。 例えば、シグモイド関数は次のような式で表されます。
多層パーセプトロンがXOR問題を解けることが示されたことは、現在のディープラーニング、すなわち多数の隠れ層を持つニューラルネットワークへと繋がる、非常に重要な一歩となりました。
多層化のメリットとデメリット
XOR問題を克服するために導入された多層ネットワークには、利点と欠点が存在します。
メリット
多層化することの一番の利点は、モデルの表現力が格段に向上する点です。XOR問題のような非線形な問題を解けるようになっただけでなく、層を重ねることで、画像認識における特徴量(輪郭から物体そのものへ)のように、より抽象的で複雑なパターンを学習することが可能になります。
デメリット
一方で、デメリットもあります。層が深くなるにつれて、学習に必要な計算量が指数関数的に増加し、強力なコンピュータ資源と時間が必要になります。また、学習の過程で出力側から入力側へ誤差を伝えていく際、隠れ層を通るたびに誤差が小さくなり、入力層近くの重みが適切に更新されなくなる「勾配消失問題」という課題も発生します。
まとめと学習のステップ
XOR問題は、ニューラルネットワークが直面した大きな課題であり、多層化というアイデアによって解決された歴史的な問題です。この問題と解決策を理解することは、ディープラーニングがなぜ層を重ねる必要があるのか、その本質を理解するための基礎となります。
XOR問題からディープラーニングへの理解を深めるためには、次の順序で学習を進めることをお勧めします。
- 論理回路(AND, OR, NOT, XOR)の入力と出力の関係を、真理値表を用いて正確に把握する。
- 単純パーセプトロンの数式と、グラフ上での線形分離のイメージを結びつけて理解する。
- 活性化関数の役割(非線形性の導入)を学習し、なぜ多層にすることで複雑な問題が解けるようになるのか、その仕組みを理解する。
- 簡単な多層パーセプトロンを、Pythonなどのプログラミング言語を用いて実装し、実際にXOR問題を解かせてみることで、学習の過程を体感する。
示されたステップに沿って学習を進めることで、XOR問題の本質と、ディープラーニングへの発展のロジックを順を追って身につけることができます。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。

