ニューラルネットワークとは、人間の脳の働きを大雑把に真似た、データから学んでコンピュータプログラムを作り上げるテクニックです。まず、"ニューロン"という単位機能の集合体が定義され、それぞれが互いにメッセージをやり取りできるように結合されます。次に、その集合体(ネットワーク)に繰り返し問題を与え、解かせますが、その度に正解を導いた結合間の強さを強め、誤答を導いた結合間の強さを弱めます。より詳細なニューラルネットワークの導入はMichael NielsenのNeural Networks and Deep Learningを参考にすると良いでしょう。また、より詳細な技術的な概要は、Ian Goodfellow、Yoshua Bengio、Aaron CourvilleによるDeep Learningを見てください。
自由に使えます。我々はニューラルネットワークの学習の簡易化に少しでも貢献出来ることを願って、PlaygroundをGitHubにてオープンソース化しています。そのため、Apache Licenseに従ってさえいればどんな方法でも無料で利用できます。また、もし追加や改善などの提案があれば、是非我々に連絡を下さい。
Playgroundをカスタマイズできるいくつかの制御を以下に提供しています。表示・非表示を下記のチェックボックスで決めたら、このリンクを保存するか、ページを更新してください。
オレンジと青はネットワークの可視化において、ほとんどの場合、それぞれ負値(オレンジ)と正値(青)を表します。
小さな丸で表される学習データ群は、初めにオレンジか青の色をしていて、それぞれは正負のどちらかに一致しています。
隠れ層において、各層間の線は重みによって色づけられています。青い線による結合は正の重みを表し、その結合はネットワークへの入力に対する出力に使われています。オレンジの結合は負の重みに相当します。
出力層において、各点は元の値に応じてオレンジか青に色付けされ、背景の色はネットワークによって導き出される結果を表します。色の濃さは結果の信頼度を表します。
このサイトでは、2次元の値を入力値として与えると1次元の値を出力するニューラルネットワークを可視化している。各パーセプトロン間の線の色は各結合重みを表し、データの色は。青は正の値/重みを表し、オレンジは負の値/重みを表す。
| | ---|---|--- 入力値(2次元) | 各点の座標(X1, X2)(ただし、-6 < X1,X2 < +6)| 出力値(1次元) | -1 or 0 or +1 = オレンジ or 白 or 青 |
教師データは、「座標とその点の色(オレンジ(-1) or 青(+1))」のセット。
- ネットワークに「座標(2次元)」を入力する。
- 出力された色と、教師データの色と比べる。
- 合っていたら各パーセプトロンの結合を強め(係数を増やす)、間違っていたら結合を弱める(係数を減らす)。
- 1〜3を繰り返す。
| | ---|---|--- 入力値(多次元) | 前層の出力値 * 結合の重み = -1〜+1| 出力値(1次元) | -1 or 0 or +1
座標値を元に、出力(-1 or +1)が決まり、その出力に結合重み(-1〜+1)が乗算されて次の層へ渡される。また、各パーセプトロンの平面は、「ネットワークへの入力(2次元値)に対するそのパーセプトロンの出力(1次元値)」を表してる。
このサイトでは用意されている7種類のパーセプトロンを使用できる。当然単純なものが用意されており、これらの出力と結合重みを乗算した値が次の層の入力の1つになる。
どのようなアルゴリズムで更新されているのかは分からないが、更新ごとに修正を繰り返すことで最終的にそれぞれのパーセプトロンは今までの更新の流れでは最適な解(?)に収束する。(ただしその収束結果が最適とは限らない?)
入力値に対する最終的な出力値。平面が色ごとに領域分けされており、平面のとある点(座標)を入力とすると、その点の背景色が出力値を表してる。
我々はこの学習用の可視化の需要に応える小さなニューラルネットワークのライブラリを書きました。現実世界でのアプリケーションのためには、TensFlowライブラリを考えてみてください。
本ソフトはDaniel SmilkovとShan Carterによって作られました。また、本ソフトはとりわけAndrej Karpathyによるconvnet.jsのデモ、Chris Olahによるニューラルネットワークについての記事など、過去に渡る多くの人々による努力の延長上にあります。そして、オリジナルのアイディアの助けとなったD. Sculley、多くのフィードバックと指導を頂いたFernanda Viégas、Martin Wattenberg、そしてその他のthe Big PictureとGoogle Brain teamsにもこの場を借りて御礼申し上げます。