前回は、ニューラルネットワークとは?人間の脳を模倣したモデルと紹介しました。
【仕組み解説】全結合層をゼロから実装しよう: シリーズの全体像とロードマップ【ニューラルネットワーク入門 】(NN #1)
全結合層の実装まで、NNの基礎をゼロから学ぶための学習ロードマップを解説。シリーズ全体の道筋を明確にします。
ニューラルネットワーク入門ということで、NN(ニューラルネットワーク以下適宜略)の最小単位”全結合層”のそのまた最小単位である、パーセプトロンについて知っていこうと思います。
パーセプトロンとは?
ニューラルネットワークの全結合層では、”全“、”結合“という様に、何かしらを全部結合しています。
この何かしらというのが、ノードやパーセプトロンと呼ばれるものになります。
パーセプトロンをものすごく簡単に言うと、「いくつかの情報をもとに『Yes (1)』か『No (0)』かを決める装置」です。

パーセプトロンには、重みとバイアスという概念があります。その動きについて、簡単な例をもとに理解していきましょう。

パーセプトロンの入力
たとえば、あなたが「明日はピクニックに行くべきか?」を決めるとします。
このとき、2つの情報(入力)を考えることにしました。
- 入力1 \(x_1\): 「天気予報が晴れ」 (晴れなら1, 晴れでなければ0)
- 入力2 \(x_2\): 「宿題が終わっている」 (終わっていれば1, 終わっていなければ0)

パーセプトロンの重み
入力に対し、どちらをどのくらい考慮するかは人によりますよね、
- A君:「天気さえ良ければOK!宿題は後でやる!」
- Bさん:「宿題が終わってないと落ち着かない…。天気はその次。」
この「情報の重要度」が「重み(おもみ)」です。
A君なら、「天気」の重み \(w_1\) が大きく、「宿題」の重み \(w_2\)は小さいかもしれません。
これをパーセプトロンでは重みとして扱います。

パーセプトロンのバイアス
ピクニックに行くかどうか決めるには、そもそもどのくらいピクニックに行きたいかというのも考慮しないといけません。これをパーセプトロンのバイアスとして扱います。

パーセプトロンの出力
パーセプトロンは、これらの「入力」「重み」「バイアス」を全部集めて、こんな計算をします。
合計点 = (入力1 \(x_1\)× 重み1\(w_1\)) + (入力2 \(x_2\)× 重み2\(w_2\)) + バイアス
この合計点が、ある基準を超えたら遊びに行くと判断し、基準を超えていれば『Yes (1)』、超えていなければ『No (0)』と答えるのです。

たったそれだけ?と思うかもしれませんが、このパーセプトロンだけで論理回路を実装することができます。
パーセプトロンで論理回路を作ってみる
AND回路
ANDは「入力1 かつ 入力2 がどっちも1の時だけ、Yes (1) と答える」というルールです。
表 論理積の真理値表
| 入力1 \(x_1\) | 入力2 \(x_2\) | 答え \(AND\) |
|---|---|---|
| 0 (No) | 0 (No) | 0 (No) |
| 0 (No) | 1 (Yes) | 0 (No) |
| 1 (Yes) | 0 (No) | 0 (No) |
| 1 (Yes) | 1 (Yes) | 1 (Yes) |
これをパーセプトロンで実現するには、例えば、出力を0以上か未満かで判断するとして、「重み」を両方 \(0.5\)、「バイアス」を \(-0.7\) くらいに設定します。
- (0 × 0.5) + (0 × 0.5) – 0.7 = -0.7 (答え 0)
- (0 × 0.5) + (1 × 0.5) – 0.7 = -0.2 (答え 0)
- (1 × 0.5) + (0 × 0.5) – 0.7 = -0.2 (答え 0)
- (1 × 0.5) + (1 × 0.5) – 0.7 = +0.3 (答え 1)
ANDをパーセプトロンで実装できました。
OR
ORは「入力1 または 入力2 のどちらか一方でも1なら、Yes (1) と答える」というルールです。
これは「重み」を両方 \(0.5\)、「バイアス」を \(-0.2\) くらいに設定すれば実現できます(ぜひ計算してみてください!)。
まとめと次回:XOR問題
パーセプトロンについて理解できたと思います。次回はパーセプトロンの限界についてXOR問題を例に紹介していきます
【仕組み解説】全結合層をゼロから実装しよう:パーセプトロンで解けない-XOR問題-(NN #3)
XOR問題はなぜパーセプトロンで解けないのか?その限界に挑み、線形分離不可能な問題から非線形の必要性を理解します。
ゼロから作る全結合層
ゼロから作る全結合層シリーズでは、初心者でも理解しやすいように、 「パーセプトロンの仕組み」から「全結合層の実装」までを...
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero