Hatena::ブログ(Diary)

西尾泰和のはてなダイアリー

2016-04-14

TensorFlow Playgroundはニューラルネットを理解するのにおススメ

ネットワークの重みや各ニューロンがどういう入力の時に発火するのかが、学習していく過程で各時刻可視化されてとても良い教材です。 http://playground.tensorflow.org/

うずまきのデータセットに関して「中間層が1層しかないとうずまき(線形非分離な問題)は解けない」という誤解があるようなので、まずは1層でできるという絵を紹介。なお僕のタイムライン上では id:a2c が僕より先に気付いていたことを名誉のために言及しておきます。

f:id:nishiohirokazu:20160414114802p:image

で、じゃあよく言われる「線形非分離な問題が解けない」ってのはどういうことか。それはこんな問題設定。入力に適当な係数を掛けて足し合わせただけでは適切な境界を作ることができません。

f:id:nishiohirokazu:20160414115500p:image

こういうケースでは中間層を追加すると、中間層が入力の非線形な組み合わせを担当してくれるおかげで解けなかった問題が解けるようになります。

f:id:nishiohirokazu:20160414115458p:image


1つ目のデータセットでは特徴量の選択の重要さがわかります。このデータセットではx^2とy^2を入力にすると問題が線形分離になるのであっさり解けます。「x^2 + y^2 < R」ってのが「半径Rの内側」に対応するのです。

f:id:nishiohirokazu:20160414120112p:image

だけども、xとyだけでは線形には分離できません。

f:id:nishiohirokazu:20160414150301p:image

そこで中間層を追加してみると、それぞれの中間層が少しずつ分担して問題を解くのを観察できます。中間層のニューロンの個数を増やしたり減らしたりしてみても面白いでしょう。1個、2個、3個の各パターンを観察するのがおすすめ。

f:id:nishiohirokazu:20160414150259p:image

f:id:nishiohirokazu:20160414150258p:image

f:id:nishiohirokazu:20160414150255p:image

f:id:nishiohirokazu:20160414120051p:image

と、こんな感じできれいに可視化された環境でいじって試すことができるので、とても良い教材だと思います。

yukobayukoba 2016/04/14 13:42 > 中間層が1層しかないとうずまき(線形非分離な問題)は解けない

に関しては、書籍「学習とそのアルゴリズム」によると、
30個ニューロンを置けば学習できるそうです(本とは教師データ数とかが違うけど)
このサイトは8個が上限だから無理だよね。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/nishiohirokazu/20160414/1460602667