usakdsteen

ゆうさくですてぃーん

すげえ

いまさっき、

ニューラルネットワークっていうのを使った

識別プログラムをつくったんだが

すげーよ

ニューラルネットワーク

何を識別させたかというと、

ようするに

xがー10〜10

yがー10〜10

のxyを平面の座標とした時

xyの点が第何象限にあるかっていう

判定プログラムなわけだが、

普通につくるなら、

xとyがそれぞれプラスかマイナスかを判定すれば

すぐ出てくる話なのだが、

今回は、ニューラルネットワークってのを

使うのが目的だから、

この問題においては、

わざわざ、手間のかかる手段を用いているわけだが、

結果は、すごかった。

最初、中間層をたくさんにして、ニューロンをたくさんにすれば

いい結果がでると思ってやってみたのだが、

(中間層 30くらいで、ニューロン数はそれぞれ20個ずつ)

全然収束しなくて、何にも結果が出なかった。

そこで、逆に減らしてみたんだな

中間層を1つにして、そのニューロンの数を4つにしてみた。

学習が数百回程度だと、何にも結果が出なかったんだが、

1000回以上だと、そこそこいい結果がでて、

10000回を超えると、ほとんど正解の結果がでてきた。

まじ、感動した。

俺が、読んだ、学術書には、

中間層の数と、ニューロン数の選び方が載ってなくて、

困っていたんだが、意外とうまくいった。

これをもうちょっと難しい、問題に適用してみたいなと思った。

ちなみに、xyの点の範囲をー100〜100にしてみたところ

・・・

オーバーフローした・・・

たぶん、入力の値をそのまま使ったためだと思う

(つまり、−100〜100をそのままつかった)

たぶん、正規化してから、入力したほうがいいんだと思う。

これも今後、なんとかしようとおもう。

ニューラルネットワークの学術書って

うちの大学の図書館には

あまり、無いみたいだ。

インターネットだと、

関係なさそうなものまで

検出されるから、困る。