📝 やること
- キャンバスを左クリックでクラス0(青)のデータを追加
- キャンバスを右クリックでクラス1(赤)のデータを追加
- 2つのクラスが分離可能なパターンで配置してみましょう
- 例:左側に青、右側に赤、またはXOR問題のように4隅に配置
- 「クリア」でリセット、「ランダム生成」で自動作成
💡 ポイント: ニューラルネットワークは複雑なパターンを学習できます。XOR問題のように線形分離不可能なデータも、隠れ層があれば分類できます。
📝 やること
- 隠れ層のニューロン数を設定します(通常3〜10程度)
- 学習率を調整します(大きいと速いが不安定、小さいと安定だが遅い)
- エポック数を設定します(データ全体を何回学習するか)
- 「ネットワーク初期化」で重みとバイアスをランダムに設定します
🧮 ネットワーク構造: 入力層(2ニューロン:x,y座標) → 隠れ層(可変) → 出力層(1ニューロン:確率)の3層構造です。
📊 学習率: 重みの更新幅を決めるパラメータです。大きすぎると発散し、小さすぎると収束が遅くなります。
📝 やること
- 「学習開始」ボタンで誤差逆伝播法による学習を開始
- 決定境界が徐々に変化し、データを正しく分類できるようになります
- 損失(誤差)が小さくなっていく様子を観察しましょう
- 学習後、キャンバスをクリックすると新しい点の分類結果を予測できます
🔄 学習の流れ:
- 順伝播: 入力から出力まで順に計算(予測値を得る)
- 損失計算: 予測値と正解の差(誤差)を計算
- 逆伝播: 誤差を逆向きに伝播して各重みの勾配を計算
- 重み更新: 勾配降下法で重みとバイアスを更新
💡 ヒント: XOR問題(対角線上に同じクラス)は線形分離不可能ですが、隠れ層があれば学習できます。隠れ層のニューロン数を変えて試してみましょう。
🧠 ネットワーク情報
📊 データ情報
📈 学習状況
⚙️ 活性化関数
隠れ層: ReLU (Rectified Linear Unit)
出力層: Sigmoid (0〜1の確率)
ReLUは勾配消失を防ぎ、学習を高速化します。Sigmoidは2値分類の確率出力に適しています。
💡 特徴
• 非線形パターンの学習
• 誤差逆伝播法による最適化
• 柔軟な構造設計
• 大規模データへの拡張性
🎯 活用例
• 画像認識・分類
• 音声認識
• 自然言語処理
• 時系列予測