【深層学習】単純パーセプトロンと論理演算(AND、OR、XOR)について



1. 単純パーセプトロン
単純パーセプトロン(Perceptron)は、機械学習の基本的なアルゴリズムで、簡単な二項分類(0または1、YesまたはNoのような2つのクラスへの分類)を行うモデルです。この単純な構造を使って、パーセプトロンは入力データの線形分類を行うため、直線で区別できるデータに対して適しています。単純パーセプトロンの出力$y$は、以下のように表せます。
\[ y = \begin{cases} 1 & \left( \displaystyle\sum_{i=1}^{n} w_i x_i + b \geq 0 \right) \\ 0 & \left( \displaystyle\sum_{i=1}^{n} w_i x_i + b < 0 \right) \end{cases} \]
- \( x_1, x_2, \dots, x_n \) : 入力値(特徴量)
- \( w_1, w_2, \dots, w_n \) : 各入力に対する重み
- \( b \) : バイアス項
1.1. 単純パーセプトロンと論理演算
単純パーセプトロンで論理演算を解くことを考えてみましょう。論理演算では、入力として、二つの入力を受け取り、0か1の値を出力を返すとします。つまり、数式では次のように書くことができます。
\[ y = \begin{cases} 1 & \left( w_1 x_1+w_2x_2 + b \geq 0 \right) \\ 0 & \left( w_1 x_1+w_2x_2+ b < 0 \right) \end{cases} \]
つまり、この分類問題はxy平面上では、直線の分類になります。
2. AND問題
まず、AND(論理積)について考えてみましょう。ANDゲートは、二つの入力がともに「1」である場合にのみ「1」を出力し、それ以外の組み合わせでは「0」を出力する論理演算です。
入力1 | 入力2 | 出力(AND) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
ANDゲートのデータ集合 \( D_{AND} \) は、入力と出力が以下のように定義されます。
\[ D_{AND} = \{ ((0, 0), 0), ((0, 1), 0), ((1, 0), 0), ((1, 1), 1) \} \]
これをニューラルネットワークで解くには、2つの入力ノードを持つシンプルなモデルを使用します。AND問題は直線で分離できるため、1層のパーセプトロンで解決可能です。重み(それぞれの入力の重要度)とバイアス(出力を調整するための値)を適切に設定すれば、ニューラルネットワークはAND問題に対して正しい出力を返すようになります。
赤い領域が0、緑の領域が1を表しており、ANDの分類ができています。

3. OR問題
次にOR(論理和)についてです。ORゲートは、どちらかの入力が「1」であれば出力も「1」となります。
入力1 | 入力2 | 出力(OR) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
ORゲートのデータ集合 \( D_{OR} \) は、入力と出力が以下のように定義されます。
\[ D_{OR} = \{ ((0, 0), 0), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1) \} \]
OR問題もANDと同様、1層のパーセプトロンで解決できます。ニューラルネットワークが適切な重みとバイアスを持つことで、入力をうまく処理し、OR演算の結果を再現できます。
ORの分類が同様にできていることを確認できます。
4. XOR問題とニューラルネットワーク
最後に、XOR(排他的論理和)について説明します。XORゲートは、二つの入力が異なる場合にのみ「1」を出力する演算です。
入力1 | 入力2 | 出力(XOR) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
4.1. XOR問題のデータ集合 \( D_{XOR} \)
XORゲートのデータ集合 \( D_{XOR} \) は、入力と出力が以下のように定義されます。
\[ D_{XOR} = \{ ((0, 0), 0), ((0, 1), 1), ((1, 0), 1), ((1, 1), 0) \} \]
4.2. 問題
XOR問題は、ANDやORとは異なり、1層のパーセプトロンでは解決できません。XORの特性として、出力が「0」と「1」の境界を単純な直線で区切ることができないため、これを「線形分離不可能」と呼びます。そのため、XOR問題を解決するには、隠れ層(hidden layer)を含む2層以上のニューラルネットワークが必要です。

5. まとめ
- AND問題とOR問題は1層のパーセプトロンで解決可能。
- XOR問題は隠れ層を持つニューラルネットワークが必要で、線形分離不可能な問題に対して力を発揮します。