STEP 2:パーセプトロンの仕組み

🧠 STEP 2: パーセプトロンの仕組み

ニューラルネットワークの最も基本的な構成要素を理解しよう

📋 このステップで学ぶこと

  • パーセプトロンとは何か(基本イメージ)
  • 重みとバイアスの役割
  • 活性化関数(ステップ関数)
  • AND、OR、NANDゲートの実装
  • XOR問題とパーセプトロンの限界

🎯 1. パーセプトロンとは何か?

1-1. パーセプトロンの歴史

パーセプトロン(Perceptron)は、1958年にアメリカの心理学者フランク・ローゼンブラットが発明した、ニューラルネットワークの最も基本的な構成要素です。

📖 パーセプトロンの位置づけ

パーセプトロンは「人工ニューロン」とも呼ばれ、人間の脳の神経細胞(ニューロン)の働きを数学的にモデル化したものです。

ディープラーニングの「ディープ(深い)」は、このパーセプトロンを何層も重ねることを意味します。
つまり、パーセプトロンを理解することが、ディープラーニングを理解する第一歩です。

1-2. パーセプトロンの基本イメージ

パーセプトロンを一言で表すと、「複数の入力を受け取り、1つの出力を返す装置」です。

💡 例え話:スイッチのようなもの

パーセプトロンは、複数の条件を考慮してON(1)かOFF(0)を決めるスイッチのようなものです。

【例:買い物に行くかどうかの判断】

あなたが「買い物に行くかどうか」を決めるとき、いくつかの条件を考えますよね:

  • 条件1:天気は良いか?(良い=1、悪い=0)
  • 条件2:お金はあるか?(ある=1、ない=0)

そして、これらの条件を総合的に判断して「行く(1)」か「行かない(0)」を決めます。
→ これがパーセプトロンの動作イメージです!

1-3. パーセプトロンの構造を図で理解する

以下の図は横スクロールできます。

【パーセプトロンの構造図】 入力 重み 計算 出力 ───────── ───────── ───────── ───────── x₁ ────────────→ × w₁ ─┐ ├─→ 合計 ─→ 活性化関数 ─→ y(0 or 1) x₂ ────────────→ × w₂ ─┤ │ バイアス b ──┘ 【各要素の説明】 ・x₁, x₂ : 入力(Input)- 外から受け取る値 ・w₁, w₂ : 重み(Weight)- 各入力の重要度 ・b : バイアス(Bias)- 判断の閾値を調整 ・y : 出力(Output)- 最終的な判断結果(0か1)
🎯 パーセプトロンの3つの要素
  • 入力(Input):外から受け取る複数の値(x₁, x₂, …)
  • 重み(Weight):各入力がどれくらい重要かを表す値(w₁, w₂, …)
  • バイアス(Bias):出力が1になるハードルの高さを調整する値(b)

⚖️ 2. 重みとバイアスの役割

2-1. パーセプトロンの計算式

パーセプトロンは、以下の手順で計算します。

📐 パーセプトロンの計算式

ステップ1:入力と重みを掛け算して、バイアスを足す

合計 = w₁×x₁ + w₂×x₂ + b

ステップ2:合計が0より大きいかどうかで出力を決める

y = 1 (合計 > 0 のとき)
y = 0 (合計 ≤ 0 のとき)

【記号の意味】 x₁, x₂ : 入力(Input) → 外から与えられる値 w₁, w₂ : 重み(Weight) → 各入力の重要度(学習で調整される) b : バイアス(Bias) → 判断の閾値を調整(学習で調整される) y : 出力(Output) → 最終的な判断結果(0 または 1)

2-2. 重み(Weight)とは?

重みは、各入力が結果にどれくらい影響するかを表す値です。

⚖️ 重みは「重要度」を表す

【例:買い物に行くかどうかの判断】

あなたにとって、「天気」と「お金」のどちらが重要ですか?

パターンA:天気を重視する人

  • 天気の重み w₁ = 1.0(天気が良ければ行きたい!)
  • お金の重み w₂ = 0.3(お金はあまり関係ない)

パターンB:お金を重視する人

  • 天気の重み w₁ = 0.3(天気は気にしない)
  • お金の重み w₂ = 1.0(お金がないと行かない!)

重みが大きいほど、その入力が結果に大きく影響します。

💡 重みのポイント
  • 重みが大きい:その入力が結果に強く影響する
  • 重みが小さい:その入力はあまり結果に影響しない
  • 重みが0:その入力は完全に無視される
  • 重みがマイナス:その入力が大きいほど、出力は小さくなる(抑制効果)

2-3. バイアス(Bias)とは?

バイアスは、出力が1になるハードルの高さを調整する値です。

🎚️ バイアスは「判断の閾値」を調整する

【例:買い物に行くかどうかの判断】

慎重派の人(バイアス = -1.0)

  • 条件がかなり良くないと「行く」とは言わない
  • 入力の合計が1.0を超えないと出力が1にならない

行動派の人(バイアス = 0.5)

  • ちょっとでも条件が良ければ「行く」と言う
  • 入力の合計が-0.5を超えれば出力が1になる

バイアスが大きいほど、出力が1になりやすい(ハードルが低い)
バイアスが小さい(マイナス)ほど、出力が1になりにくい(ハードルが高い)

2-4. 具体的な計算例

実際に数値を入れて計算してみましょう。

📊 計算例:w₁=0.5, w₂=0.5, b=-0.7 の場合

【入力 (x₁=1, x₂=1) の場合】

合計 = 0.5×1 + 0.5×1 + (-0.7)
   = 0.5 + 0.5 – 0.7
   = 0.3

0.3 > 0 なので、出力 y = 1

【入力 (x₁=1, x₂=0) の場合】

合計 = 0.5×1 + 0.5×0 + (-0.7)
   = 0.5 + 0 – 0.7
   = -0.2

-0.2 ≤ 0 なので、出力 y = 0

💡 重みとバイアスの重要性

ディープラーニングでは、この重みとバイアスを「学習」によって自動的に調整します。

正解データを大量に与えることで、パーセプトロンは自分で最適な重みとバイアスを見つけ出します。
これがディープラーニングの「学習」の本質です!

🔀 3. 活性化関数(ステップ関数)

3-1. 活性化関数とは?

活性化関数(Activation Function)とは、パーセプトロンの計算結果を「最終的な出力」に変換する関数です。

💡 なぜ活性化関数が必要なのか?

重みと入力の計算結果(w₁×x₁ + w₂×x₂ + b)は、-∞ から +∞ までの任意の値になります。

しかし、パーセプトロンの出力は「ON(1)かOFF(0)」のような明確な判断であってほしいですよね。

そこで、活性化関数を使って、計算結果を0か1に変換します。

3-2. ステップ関数の仕組み

単純パーセプトロンでは、ステップ関数(Step Function)を使います。

📐 ステップ関数の定義

step(x) = 1 (x > 0 のとき)
step(x) = 0 (x ≤ 0 のとき)

計算例:

  • step(0.5) = 1 (0.5は0より大きいので)
  • step(-0.3) = 0 (-0.3は0以下なので)
  • step(0) = 0 (0は0以下なので)
  • step(100) = 1 (どんなに大きくても1)
  • step(-100) = 0 (どんなに小さくても0)

3-3. ステップ関数のグラフ

📊 ステップ関数のグラフ

以下の図は横スクロールできます。

出力 1 ┤ ●━━━━━━━━━━━━ │ │ │ │ │ │ 0 ┤━━━━━━━━━━○ │ └──────────┼──────────→ 入力 0 ● : その点を含む(1になる) ○ : その点を含まない(0のまま) ポイント: ・入力が0より大きければ、出力は1 ・入力が0以下なら、出力は0 ・まるでスイッチのON/OFFのような動き!

3-4. パーセプトロンの全体の流れ

🎯 パーセプトロンの動作まとめ

ステップ1:入力と重みを掛け算する

w₁×x₁ + w₂×x₂

ステップ2:バイアスを足す

w₁×x₁ + w₂×x₂ + b

ステップ3:ステップ関数で0か1に変換する

y = step(w₁×x₁ + w₂×x₂ + b)

🔧 4. 論理ゲートの実装(AND、OR、NAND)

パーセプトロンを使って、基本的な論理ゲート(Logic Gate)を作ってみましょう。
論理ゲートとは、0と1の入力に対して、特定のルールで0か1を出力する回路です。

4-1. ANDゲート

🔵 ANDゲート:「両方が1のときだけ1を出力」

日本語で言うと「AかつB」です。両方の条件が満たされたときだけ真(1)になります。

x₁ x₂ y(出力) 意味
0 0 0 両方OFF → OFF
0 1 0 片方だけON → OFF
1 0 0 片方だけON → OFF
1 1 1 両方ON → ON
📐 ANDゲートのパラメータ

以下の重みとバイアスでANDゲートを実現できます:

w₁ = 0.5, w₂ = 0.5, b = -0.7

なぜこの値で動くのか?計算して確認してみましょう:

  • (0,0): 0.5×0 + 0.5×0 – 0.7 = -0.7 ≤ 0 → 出力 0
  • (0,1): 0.5×0 + 0.5×1 – 0.7 = -0.2 ≤ 0 → 出力 0
  • (1,0): 0.5×1 + 0.5×0 – 0.7 = -0.2 ≤ 0 → 出力 0
  • (1,1): 0.5×1 + 0.5×1 – 0.7 = 0.3 > 0 → 出力 1

ANDゲートのPythonコード

以下のコードでANDゲートを実装できます。各行の意味を説明します。

📝 コードの解説

def AND(x1, x2):

「AND」という名前の関数を定義。x1とx2の2つの入力を受け取る。

w1, w2, b = 0.5, 0.5, -0.7

重みw1, w2とバイアスbに値を代入。ANDゲート用の値。

tmp = x1*w1 + x2*w2 + b

パーセプトロンの計算。入力×重みの合計にバイアスを足す。

if tmp > 0:

合計が0より大きいかどうかをチェック(ステップ関数の判定)。

return 1

0より大きければ1を返す。

else: return 0

0以下なら0を返す。

# ANDゲートの実装 def AND(x1, x2): w1, w2, b = 0.5, 0.5, -0.7 # 重みとバイアスを設定 tmp = x1*w1 + x2*w2 + b # パーセプトロンの計算 if tmp > 0: # ステップ関数 return 1 else: return 0 # 動作確認 print(“AND(0, 0) =”, AND(0, 0)) print(“AND(0, 1) =”, AND(0, 1)) print(“AND(1, 0) =”, AND(1, 0)) print(“AND(1, 1) =”, AND(1, 1))
実行結果:
AND(0, 0) = 0
AND(0, 1) = 0
AND(1, 0) = 0
AND(1, 1) = 1

4-2. ORゲート

🔵 ORゲート:「どちらか1つでも1なら1を出力」

日本語で言うと「AまたはB」です。どちらかの条件が満たされれば真(1)になります。

x₁ x₂ y(出力) 意味
0 0 0 両方OFF → OFF
0 1 1 片方ON → ON
1 0 1 片方ON → ON
1 1 1 両方ON → ON
📐 ORゲートのパラメータ

以下の重みとバイアスでORゲートを実現できます:

w₁ = 0.5, w₂ = 0.5, b = -0.2

ANDゲートとの違いは、バイアスだけ!

  • ANDゲート:b = -0.7(ハードルが高い→両方1でないと超えない)
  • ORゲート:b = -0.2(ハードルが低い→1つでもあれば超える)

計算して確認:

  • (0,0): 0.5×0 + 0.5×0 – 0.2 = -0.2 ≤ 0 → 出力 0
  • (0,1): 0.5×0 + 0.5×1 – 0.2 = 0.3 > 0 → 出力 1
  • (1,0): 0.5×1 + 0.5×0 – 0.2 = 0.3 > 0 → 出力 1
  • (1,1): 0.5×1 + 0.5×1 – 0.2 = 0.8 > 0 → 出力 1
# ORゲートの実装 def OR(x1, x2): w1, w2, b = 0.5, 0.5, -0.2 # バイアスがANDより大きい(ハードルが低い) tmp = x1*w1 + x2*w2 + b if tmp > 0: return 1 else: return 0 # 動作確認 print(“OR(0, 0) =”, OR(0, 0)) print(“OR(0, 1) =”, OR(0, 1)) print(“OR(1, 0) =”, OR(1, 0)) print(“OR(1, 1) =”, OR(1, 1))
実行結果:
OR(0, 0) = 0
OR(0, 1) = 1
OR(1, 0) = 1
OR(1, 1) = 1

4-3. NANDゲート

🔵 NANDゲート:「ANDの逆(両方1のときだけ0を出力)」

NANDは「Not AND」の略です。ANDの結果を反転させたものです。

x₁ x₂ y(出力) ANDとの比較
0 0 1 ANDは0 → 反転で1
0 1 1 ANDは0 → 反転で1
1 0 1 ANDは0 → 反転で1
1 1 0 ANDは1 → 反転で0
📐 NANDゲートのパラメータ

以下の重みとバイアスでNANDゲートを実現できます:

w₁ = -0.5, w₂ = -0.5, b = 0.7

ANDゲートとの違い:符号が全部逆!

  • ANDゲート:w₁=0.5, w₂=0.5, b=-0.7
  • NANDゲート:w₁=-0.5, w₂=-0.5, b=0.7

重みがマイナスの意味:

入力が大きいほど、合計が小さくなる(抑制効果)。
つまり、両方の入力が1だと、合計が最も小さくなり、0を出力します。

# NANDゲートの実装 def NAND(x1, x2): w1, w2, b = -0.5, -0.5, 0.7 # 重みがマイナス(入力を抑制) tmp = x1*w1 + x2*w2 + b if tmp > 0: return 1 else: return 0 # 動作確認 print(“NAND(0, 0) =”, NAND(0, 0)) print(“NAND(0, 1) =”, NAND(0, 1)) print(“NAND(1, 0) =”, NAND(1, 0)) print(“NAND(1, 1) =”, NAND(1, 1))
実行結果:
NAND(0, 0) = 1
NAND(0, 1) = 1
NAND(1, 0) = 1
NAND(1, 1) = 0
💡 重要なポイント

AND、OR、NANDゲートは、パーセプトロンの構造は全く同じで、重みとバイアスの値を変えるだけで実現できます!

これは非常に重要な発見です。
パーセプトロンはパラメータ(重みとバイアス)を調整することで、様々な問題を解けるということです。

ディープラーニングは、この「パラメータの調整」を自動で行う技術です!

❌ 5. XOR問題とパーセプトロンの限界

5-1. XORゲートとは?

🔴 XORゲート:「2つの入力が異なるときだけ1を出力」

XORは「Exclusive OR(排他的論理和)」の略です。「どちらか一方だけ」という意味です。

x₁ x₂ y(出力) 意味
0 0 0 同じ(両方0)→ 0
0 1 1 異なる → 1
1 0 1 異なる → 1
1 1 0 同じ(両方1)→ 0
⚠️ 問題:単純パーセプトロンではXORを実現できない!

どんな重みとバイアスの値を試しても、単純パーセプトロンではXORゲートを作ることができません。
これは1969年にマービン・ミンスキーとシーモア・パパートによって数学的に証明されました。

この発見は、AI研究の「冬の時代」を引き起こす原因の1つとなりました。

5-2. なぜXORは実現できないのか?

これを理解するために、グラフで視覚的に考えてみましょう。

📊 視覚的に理解する:線形分離可能性

単純パーセプトロンは、1本の直線で「0を出力するグループ」と「1を出力するグループ」を分けることしかできません。

以下の図は横スクロールできます。

【ANDゲート:直線で分けられる ✅ 線形分離可能】 x₂ 1 ┤ ○ ● ← (1,1) だけが1 │ ╲ │ ╲ │ ╲ 0 ┤ ○ ○ ← (0,0), (0,1), (1,0) は0 │ └────┬────┬────→ x₁ 0 1 ○ : 出力が0のポイント ● : 出力が1のポイント ╲ : 分類する直線 → 1本の直線で ○ と ● を分けられる!
【XORゲート:直線で分けられない ❌ 線形分離不可能】 x₂ 1 ┤ ● ○ ← (0,1)は1、(1,1)は0 │ │ ??? │ 0 ┤ ○ ● ← (0,0)は0、(1,0)は1 │ └────┬────┬────→ x₁ 0 1 ○ : 出力が0のポイント((0,0)と(1,1)) ● : 出力が1のポイント((0,1)と(1,0)) → どう直線を引いても ○ と ● を分けられない!   ●が対角線上にあるため、1本の直線では分離不可能
💡 線形分離可能とは?

線形分離可能:1本の直線(または平面)で2つのグループを分けられる状態
線形分離不可能:1本の直線では分けられない状態

単純パーセプトロンは線形分離可能な問題しか解けないという限界があります。
XORは線形分離不可能なので、単純パーセプトロンでは解けません。

5-3. XOR問題の解決策:多層パーセプトロン

では、XOR問題はどうすれば解けるのでしょうか?
答えは、パーセプトロンを多層に重ねることです!

💡 多層パーセプトロンでXORを実現

XORは、実はNAND、OR、ANDの組み合わせで表現できます。

XOR(x₁, x₂) = AND( NAND(x₁, x₂), OR(x₁, x₂) )

以下の図は横スクロールできます。

【多層パーセプトロンの構造】 第1層(隠れ層) 第2層(出力層) ───────────── ───────────── x₁ ──┬──→ NAND ──→ s₁ ──┐ │ ├──→ AND ──→ y(出力) x₂ ──┼──→ OR ──→ s₂ ──┘ │ └───────────────────────────────── 【動作の確認】 入力(0,0): NAND=1, OR=0 → AND(1,0)=0 ✅ 入力(0,1): NAND=1, OR=1 → AND(1,1)=1 ✅ 入力(1,0): NAND=1, OR=1 → AND(1,1)=1 ✅ 入力(1,1): NAND=0, OR=1 → AND(0,1)=0 ✅ → XORが実現できた!
📊 計算の詳細(入力 x₁=1, x₂=0 の場合)

ステップ1:第1層の計算

  • NAND(1, 0) = 1(片方だけ1なので、出力は1)
  • OR(1, 0) = 1(片方でも1なら、出力は1)

ステップ2:第2層の計算

  • AND(1, 1) = 1(両方1なので、出力は1)

最終出力:1 ← XORの正解と一致!

# 多層パーセプトロンでXORを実装 def XOR(x1, x2): # 第1層(隠れ層) s1 = NAND(x1, x2) # NANDゲートの出力 s2 = OR(x1, x2) # ORゲートの出力 # 第2層(出力層) y = AND(s1, s2) # ANDゲートの出力 return y # 動作確認 print(“XOR(0, 0) =”, XOR(0, 0)) print(“XOR(0, 1) =”, XOR(0, 1)) print(“XOR(1, 0) =”, XOR(1, 0)) print(“XOR(1, 1) =”, XOR(1, 1))
実行結果:
XOR(0, 0) = 0
XOR(0, 1) = 1
XOR(1, 0) = 1
XOR(1, 1) = 0
🎯 パーセプトロンの限界と多層化の必要性
  • 単層パーセプトロン:線形分離可能な問題しか解けない(AND、OR、NANDなど)
  • XOR問題:線形分離不可能 → 単層では解けない
  • 解決策:パーセプトロンを多層に重ねる → 複雑な問題も解ける!
  • これが多層パーセプトロン(MLP: Multi-Layer Perceptron)
  • そして、多層パーセプトロンをさらに発展させたものがディープラーニングです!

📝 STEP 2 のまとめ

✅ このステップで学んだこと
  • パーセプトロンは、入力・重み・バイアスから出力を計算する基本単位
  • 重みは各入力の重要度を表し、バイアスは判断の閾値を調整する
  • ステップ関数で計算結果を0か1に変換(ON/OFFスイッチのイメージ)
  • AND、OR、NANDゲートはパラメータを変えるだけで実現可能
  • XOR問題は単層では解けない → 多層化が必要
💡 覚えておきたいポイント

パーセプトロンは単純ですが、ディープラーニングの基礎となる重要な概念です。

単層パーセプトロンには線形分離可能な問題しか解けないという限界がありますが、
層を重ねる(多層化)ことで、XORのような複雑な問題も解けるようになります。

次のSTEP 3では、多層パーセプトロン(MLP)を学び、
複雑な問題を解く仕組みを理解しましょう!

📝 練習問題

問題1 やさしい

パーセプトロンの構成要素

パーセプトロンの説明として正しくないものを選んでください。

  • A. 複数の入力を受け取ることができる
  • B. 重みは各入力の重要度を表す
  • C. バイアスは出力の閾値を調整する
  • D. 出力は必ず0から1の間の小数になる
正解:D

なぜDが間違いなのか?

単純パーセプトロンはステップ関数を使用するため、出力は0か1の2値のみです。
0.3や0.7のような小数にはなりません。

他の選択肢の解説:

Aが正しい理由:
パーセプトロンはx₁, x₂, x₃…のように複数の入力を受け取ることができます。
入力の数は2つに限らず、任意の数に対応できます。

Bが正しい理由:
重み(w)は各入力がどれくらい結果に影響するかを表します。
重みが大きいほど、その入力が結果に強く影響します。

Cが正しい理由:
バイアス(b)は、出力が1になるハードルの高さを調整します。
バイアスが大きいと出力が1になりやすく、小さいと1になりにくくなります。

補足:0〜1の連続値を出力したい場合

後のステップで学ぶシグモイド関数を使うと、0〜1の連続的な値を出力できるようになります。
これは「確率」を表現したい場合などに便利です。

問題2 やさしい

ANDゲートの計算

ANDゲートのパーセプトロン(w₁=0.5, w₂=0.5, b=-0.7)に、
x₁=1, x₂=0 を入力したとき、出力はいくつになりますか?

  • A. 0
  • B. 1
  • C. 0.5
  • D. -0.2
正解:A(出力は0)

計算の手順を追ってみましょう:

ステップ1:入力と重みの掛け算、バイアスを足す

合計 = w₁×x₁ + w₂×x₂ + b = 0.5×1 + 0.5×0 + (-0.7) = 0.5 + 0 – 0.7 = -0.2

ステップ2:ステップ関数で判定

合計 = -0.2
-0.2 ≤ 0 なので、出力は0

なぜCとDが間違いなのか?

C(0.5)が間違い:単純パーセプトロンはステップ関数を使うため、出力は0か1の2値のみです。0.5のような中間値にはなりません。

D(-0.2)が間違い:-0.2は「ステップ関数に入力する前の値(合計)」です。最終出力ではありません。

確認:ANDゲートの真理値表と一致している?

ANDゲートは「両方が1のときだけ1を出力」するので、
(1, 0) の場合は 0 を出力するのが正解です ✅

問題3 ふつう

論理ゲートの実現

次のうち、単純パーセプトロン(1層)で実現できないものを選んでください。

  • A. ANDゲート
  • B. ORゲート
  • C. XORゲート
  • D. NANDゲート
正解:C(XORゲート)

なぜXORゲートは単層で実現できないのか?

XORゲートは「線形分離不可能」な問題だからです。

線形分離可能とは?

「1本の直線で、出力が0のグループと1のグループを分けられるか」ということです。

【XORの真理値表をグラフにすると】 x₂ 1 ┤ ● ○ ← (0,1)は1、(1,1)は0 │ 0 ┤ ○ ● ← (0,0)は0、(1,0)は1 └────┬───┬───→ x₁ 0 1 ● と ○ が対角線上に配置されている! → どう直線を引いても、分けられない

他の選択肢はなぜ実現できるのか?

AND、OR、NANDは全て線形分離可能です。
つまり、1本の直線で0と1を分けることができます。

【ANDゲート】(1,1)だけが1 → 1本の直線で分離可能 ✅ 【ORゲート】(0,0)だけが0 → 1本の直線で分離可能 ✅ 【NANDゲート】(1,1)だけが0 → 1本の直線で分離可能 ✅

XORを実現するには?

パーセプトロンを多層に重ねることで実現できます。
これが「多層パーセプトロン(MLP)」であり、次のSTEP 3で詳しく学びます!

問題4 むずかしい

重みとバイアスの調整

次の真理値表を実現するには、重みとバイアスをどう設定すればよいですか?

x₁ x₂ y
0 0 0
0 1 0
1 0 1
1 1 1
  • A. w₁=1.0, w₂=0.0, b=-0.5
  • B. w₁=0.5, w₂=0.5, b=-0.7
  • C. w₁=0.5, w₂=0.5, b=-0.2
  • D. w₁=-0.5, w₂=-0.5, b=0.7
正解:A(w₁=1.0, w₂=0.0, b=-0.5)

まず、真理値表のパターンを分析してみましょう

この真理値表を見ると、x₁が1のときだけ出力が1になっています。
x₂の値は結果に影響していません。

つまり、これは「x₂を無視して、x₁だけを見る」パーセプトロンです。

選択肢Aで計算して確認

w₁=1.0, w₂=0.0, b=-0.5 (0, 0): 1.0×0 + 0.0×0 – 0.5 = -0.5 ≤ 0 → 0 ✅ (0, 1): 1.0×0 + 0.0×1 – 0.5 = -0.5 ≤ 0 → 0 ✅ (1, 0): 1.0×1 + 0.0×0 – 0.5 = 0.5 > 0 → 1 ✅ (1, 1): 1.0×1 + 0.0×1 – 0.5 = 0.5 > 0 → 1 ✅ すべて真理値表と一致!

なぜw₂=0.0なのか?

w₂=0.0にすることで、x₂がどんな値でも「0.0×x₂=0」となり、
x₂の影響を完全に無視できます。

他の選択肢が間違いの理由

B(w₁=0.5, w₂=0.5, b=-0.7):これはANDゲートです。(1,0)で0を出力してしまいます。
C(w₁=0.5, w₂=0.5, b=-0.2):これはORゲートです。(0,1)で1を出力してしまいます。
D(w₁=-0.5, w₂=-0.5, b=0.7):これはNANDゲートです。(1,1)で0を出力してしまいます。

重要な学び

重みを0にすることで、特定の入力を完全に無視できます。
これは、ディープラーニングで「どの特徴が重要か」を学習する際の基本原理です!

学習の過程で、重要でない入力の重みは0に近づいていきます。

📝

学習メモ

ディープラーニング基礎 - Step 2

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE