1
訓練データを入力しよう

📝 やること

  • キャンバスを左クリックでクラス0(青)のデータを追加
  • キャンバスを右クリックでクラス1(赤)のデータを追加
  • 2つのクラスが分離可能なパターンで配置してみましょう
  • 例:左側に青、右側に赤、またはXOR問題のように4隅に配置
  • 「クリア」でリセット、「ランダム生成」で自動作成
クラス 0 (左クリック)
クラス 1 (右クリック)

💡 ポイント: ニューラルネットワークは複雑なパターンを学習できます。XOR問題のように線形分離不可能なデータも、隠れ層があれば分類できます。

2
ネットワーク構造と学習設定

📝 やること

  • 隠れ層のニューロン数を設定します(通常3〜10程度)
  • 学習率を調整します(大きいと速いが不安定、小さいと安定だが遅い)
  • エポック数を設定します(データ全体を何回学習するか)
  • 「ネットワーク初期化」で重みとバイアスをランダムに設定します

🧮 ネットワーク構造: 入力層(2ニューロン:x,y座標) → 隠れ層(可変) → 出力層(1ニューロン:確率)の3層構造です。

📊 学習率: 重みの更新幅を決めるパラメータです。大きすぎると発散し、小さすぎると収束が遅くなります。

3
学習と予測

📝 やること

  • 「学習開始」ボタンで誤差逆伝播法による学習を開始
  • 決定境界が徐々に変化し、データを正しく分類できるようになります
  • 損失(誤差)が小さくなっていく様子を観察しましょう
  • 学習後、キャンバスをクリックすると新しい点の分類結果を予測できます

🔄 学習の流れ:

  1. 順伝播: 入力から出力まで順に計算(予測値を得る)
  2. 損失計算: 予測値と正解の差(誤差)を計算
  3. 逆伝播: 誤差を逆向きに伝播して各重みの勾配を計算
  4. 重み更新: 勾配降下法で重みとバイアスを更新

💡 ヒント: XOR問題(対角線上に同じクラス)は線形分離不可能ですが、隠れ層があれば学習できます。隠れ層のニューロン数を変えて試してみましょう。

🧠 ネットワーク情報

入力層: 2
隠れ層: -
出力層: 1
総パラメータ数: -

📊 データ情報

クラス 0: 0
クラス 1: 0
合計: 0

📈 学習状況

現在エポック: 0
損失: -
精度: -
状態: データ入力待ち

⚙️ 活性化関数

隠れ層: ReLU (Rectified Linear Unit)

出力層: Sigmoid (0〜1の確率)

ReLUは勾配消失を防ぎ、学習を高速化します。Sigmoidは2値分類の確率出力に適しています。

💡 特徴

• 非線形パターンの学習

• 誤差逆伝播法による最適化

• 柔軟な構造設計

• 大規模データへの拡張性

🎯 活用例

• 画像認識・分類

• 音声認識

• 自然言語処理

• 時系列予測