あそぶ・実験

ニューラルネットが学ぶ瞬間 シミュレーター

ChatGPTも画像認識も、根っこは同じ「ニューラルネットワーク」。ここでは小さな本物のネットワークをブラウザ内で学習させ、赤と青を分ける境界線が少しずつ育っていく様子を見られます。ニューロンの数や学習率を変えると、賢くなる速さも、行き詰まり方も変わります。

🧪 多層パーセプトロン(誤差逆伝播法・確率的勾配降下法)
学習回数(エポック)
正解率
誤差(損失)
パラメータ数

点=学習データ(赤・青の2種類)。背景色=ネットワークの現在の判断(濃いほど自信あり)。右=各ニューロンが担当している“見え方”。

ポイント:ニューラルネットワークは、ランダムな重みから始めて「間違えたら、間違いが減る方向に重みを少し動かす」を何万回も繰り返すだけで、渦巻きのような複雑な境界を自力で見つけます。賢さは設計者が教えたのではなく、データと誤差から“育った”ものです。

この画面の中で起きていること

ステップ内容
1. 順伝播入力(x, y座標)に重みを掛けて足し、活性化関数(tanh)を通す。これを層の数だけ繰り返して「赤か青か」を出力
2. 誤差の計算出力と正解のずれ(交差エントロピー)を計算
3. 誤差逆伝播各重みが誤差にどれだけ影響したか(勾配)を出力側から逆にたどって計算
4. 更新勾配と逆方向に、学習率の分だけ重みを動かす

1986年にラメルハート、ヒントン、ウィリアムズが広めたこの「誤差逆伝播法」は、現在のあらゆる深層学習の中核です。本ページのネットワークは数百パラメータですが、ChatGPTのようなモデルは同じ原理を数千億〜数兆パラメータで動かしています。

スライダーで分かる「AIの性格」

操作起きること
ニューロンを減らす(2〜3個)直線に近い境界しか引けず、渦巻きは学べない(表現力不足)
ニューロンを増やす(16〜32個)複雑な境界を学べるが、ノイズまで覚えてしまうことがある(過学習)
学習率を上げすぎる重みが振動して正解率が上下に暴れる、または発散する
学習率を下げすぎる正しい方向に進むが、いつまでも到達しない
層を増やす少ないニューロンでも複雑な形を表現できる=“深層”学習の利点

右側の小さな図の見方

右側は最初の隠れ層の各ニューロンが「入力空間のどこで発火するか」を示しています。1つ1つは単純な直線的なパターンですが、それらを重ね合わせることで、出力層は渦巻きのような複雑な形を作ります。ニューラルネットワークが「特徴を分担して覚える」様子です。

引用・転載について

本ページのシミュレーション結果・数値は、出典を明記いただければブログ・ニュース記事・SNS・授業や社内資料への引用を歓迎します。事前連絡は不要です。

推奨クレジット表記:出典:シミュラボ「ニューラルネットが学ぶ瞬間 シミュレーター」 https://shimulabo.com/sims/neural-play/

よくある質問

これは本当にAI? 見せかけではない?
本物です。JavaScriptで多層パーセプトロンを実装し、誤差逆伝播で毎フレーム重みを更新しています。ライブラリも通信も使っていません。ページのソースコードを見れば数十行の学習ループが確認できます。
渦巻きが学べないときは?
ニューロン数を16以上・層を2〜3にして、学習率0.05〜0.1でしばらく待ってください。乱数の初期値によっては局所解にはまるので、リセットして再挑戦するのも本物の機械学習と同じ流儀です。
正解率100%にならないのは?
ノイズがあるとデータ自体に矛盾(赤の領域に混ざった青点)があるため、100%は原理的に不可能です。ノイズを0にすれば、十分なニューロンで100%近くに達します。

💡 こんなシミュも見てみたい?

あなたの「これ数字で見たい」を送ってください。投票で人気の案から実際に作ります。

リクエストする →
🗳️ みんなのリクエストに投票する →