Lab/Neural Playground

機械学習・可視化公開中2026

依存ライブラリなしの自前ニューラルネットが2次元分類を学習する様子を、決定境界と重みのライブ描画で観察できます。

サイトを開く
ニューラルネット可視化プレイグラウンド

Screenshots

ニューラルネット可視化プレイグラウンド スクリーンショット 1

Overview

概要

2次元の分類問題をブラウザ内の小さなニューラルネットが学習していく過程を、決定境界のヒートマップ・各ニューロンの活性化マップ・重みの太さと色でリアルタイムに可視化するプレイグラウンドです。TensorFlow Playgroundへのオマージュでありながら、行列演算・順伝播・逆伝播をすべて自前のTypeScriptで実装し、実行時の依存パッケージはゼロ。日本語UIと用語解説つきで、学習の中身が透けて見える実験台です。

How to use

遊び方・使い方

データセット(同心円・XOR・2ガウシアン・スパイラル)と、隠れ層の構成・学習率・活性化関数・バッチサイズ・ノイズを選んで実行します。中央のネットワーク図で各ニューロンの活性化と重みの変化を、右の決定境界ヒートマップと損失曲線で学習の進み具合を観察。特徴量(x1²・sin x1など)のトグルや1ステップ実行で、モデルがどう境界を引いていくかを手で確かめられます。

Tech stack

技術スタック

TypeScriptNext.js 16React 19Canvas 2D / SVGTailwind CSS v4

TensorFlow.jsやチャートライブラリを使わず、NN本体・可視化(SVG+Canvas)・データ生成まで自前実装。ミニバッチSGDでseed固定により決定的に再現でき、ネットワーク構成はlocalStorageに保存(重みは非保存)します。

Highlights

工夫した点

  • 全結合フィードフォワードの順伝播と逆伝播をFloat64Array行列で解析的に直書き(delta伝播・dW算出・L2正則化つき更新)。重み初期化はXavier/He、乱数はmulberry32で決定的
  • 決定境界は60x60点をバッチ推論しImageDataを拡大して描画、活性化マップは中間活性を再利用して追加計算ゼロ。重みエッジはSVGのpathで太さと符号色(正=青/負=橙)を表現
  • 学習はrAF1フレームあたり最大10エポック・8ms予算超で打ち切る適応制御で、UIの応答性を維持。ヒートマップは2フレームに1回に間引き

To improve

改善したい点

  • 計算はメインスレッドで行うため、大きめのネットワークでは重くなる(Web Worker化は今後)
  • 分類2次元・回帰なしの範囲で、扱える問題の種類に伸びしろ
  • おまけの手書き数字デモは拡張段階で作り込み余地がある

What's next

今後の展望

  • 畳み込み層や、より大きなネットワークのWorker実行
  • 回帰問題や多クラス分類への対応
  • 学習過程の記録・再生や、設定の共有

Category

3D・実験

Genre

機械学習・可視化

Year

2026

Status

公開中