【深層学習】単純パーセプトロンと論理演算(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の分類ができています。

はるか
はるか
グラフの赤色の×が出力0、グラフの緑色の×が出力1

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問題は隠れ層を持つニューラルネットワークが必要で、線形分離不可能な問題に対して力を発揮します。

6. 関連した記事

PR