#NeuralNetworkを1から実装
今日は昨日の続きで、NeuralNetworkを自力で作ってみました。
昨日の記事はこちら
##流れ
昨日の記事にも書いたように、ロジスティック回帰を何個もくっつけたようなものっていうイメージです。
これまでの実装したものをさらに何層にもします。
そして、NeuralNetworkで一番?重要なのは活性化関数です。
NeuralNetworkは人の神経細胞を模しているので、ある基準値を超える数値を与えられたときに発火するようにします。その役割を活性化関数が担っています。
##コード
day4.py
バイアスは結果としてよかったものを設定してあります。
##疑問点
- 今回のように層が決まっていれば、微分の式も書くことができますし、計算できますが、sklearnやほかのライブラリに入っているNeuralNetworkはどういう感じで、入力された数に合わせて、層を作っているのか
- バイアスをランダムにするとうまくいくときもあれば、うまくいかないときもあった。これをほぼ100%うまくいくようにするには、どのようにすればいいのか
1に関しては数学的な手法がありそうだなーって勝手に思ってます。
2に関してはそれこそ世界中の人が探していることだと思うし、人間なら判断出来て、AIには判断できないこともあると思うので、理論から学んでいくと、こういうことにも興味を持てて、理論からやってよかったなーって思います。もっと調べてみます。
##4日目も終了!
明日はもう少し精度を上げれるようにするか、さっき書いた疑問のどちらかを解決できたらいいなと思います。
あと、もっと見返したときに、どんな手順で実装したかをわかりやすく書きます。