ブラウザ上でニューラルネットワークに触れてみよう
(壊れたりしませんから, 遠慮なく試してみて)

エポック

データ

どのデータセットを使いますか?

入力特徴量

どんな情報を入力しますか?

クリックすると重みを編集できます.
重み/バイアス0.2.
個々のニューロンからの出力です. ポインターをかざすと右に拡大表示されます.
出力は重みつきで足し合わされます. 線の幅が重みの大きさを表しています.

出力

テスト損失
訓練損失
色はデータ, ニューロン, 重みの値を表します.

えっと, ニューラルネットワークってなに?

データから学習するコンピュータープログラムを作る技法のひとつです. 人間の脳がどう働いているか (と現在考えられている仕組み) にゆるく倣っています. まず, ソフトウェア「ニューロン」を複数作って, メッセージをやり取りできるようにお互いを接続します. その後, ネットワークに問題を解くように指示します. ネットワークは問題を繰り返し解こうと試みますが, その際, 上手く解けた場合に使われた接続は強化され, 上手く行かなかった接続は弱められます. より詳しくニューラルネットワークについて知りたければ, Michael Nielsen 著 Neural Networks and Deep Learning は良い出発点です. もっと技術的な概要が知りたければ, Ian Goodfellow, Yoshua Bengio, Aaron Courville 著 Deep Learning を見ましょう.

これ, いいですね. 他の用途に使ってもいいですか?

どうぞ! ニューラルネットワークをもっと親しみやすく, 勉強しやすくしたいと思い, ソースコードを GitHub で公開しています. どんな目的でも, Apache License に従う限り自由に使って構いません. 追加・変更した方が良い点があったら教えてください.

特定のトピックや講義用にプレイグラウンドをカスタマイズできるように, ページの下の方に制御ボタンを用意しました. 表示したい機能だけ選んだら, このリンクでセーブするか, またはこのページを再読み込みしてください.

色の意味は?

可視化にはオレンジと青が使われています. 可視化対象によって意味に微妙な違いはありますが, 総じて, オレンジがマイナスの値, 青がプラスの値を表しています.

(小さい円で表示される) データ点は最初オレンジか青で表示されていますが, それぞれ「負例」, 「正例」を表します.

隠れ層では, ニューロン間の辺の色は, その辺の重みを表しています. 青は正の重みを表し, このとき前のニューロンの出力はそのまま後ろのニューロンに渡されます. オレンジの辺は, その辺が負の重みを持っていることを表します.

出力層では, 点は負例か正例かによって, オレンジあるいは青で色付けされています. 背景の色は, その領域がネットワークによってどう予測 (出力) されているかを表します. 色の濃さは, 予測の確信度を示しています.

なんというライブラリを使ってるんですか?

われわれは, 教育のための可視化を目的に, 小さなニューラルネットワークライブラリを書きました. 実用的なアプリケーションに使う場合は, TensorFlow ライブラリの方がおすすめです.

謝辞

Neural Network Playground は Daniel Smilkov と Shan Carter によって作られました. 多くの人の先行研究の中でも Andrej Karpathy の convnet.js demo と Chris Olah のニューラルネットに関する記事に特に影響を受けています. 当初のアイディア構想を手伝ってくれた D. Sculley, そして, Fernanda Viégas, Martin Wattenberg と, Big PictureGoogle Brain チームの他のメンバーがくれたフィードバックとガイダンスに感謝します.

※ これは非公式の日本語版です. 日本語化は, 千葉工業大学の講義・演習用に同大人工知能・ソフトウェア技術研究センターが行いました. なお, 意訳や講義の都合で, 必ずしも英語原文に忠実ではない箇所があります. 和訳に関する指摘はこちらにお願いします.

日本語版のソースは, オリジナル版同様 GitHub から入手できます. 利用はオリジナル版のライセンスに従ってください.