NNのレポートが終わったよー

NNについてのレポートを書いた。
その過程でいろいろ分かったことのメモ。

バックプロパゲーション最急降下法とほぼ同じ。
違いは慣性項の部分のみ。
シグモイド関数とかヘビサイド関数とかの微分ができれば、基本的にはごくごく簡単な変化量を求めて更新を行うアルゴリズムになる。


実は慣性項もいらない?かもしれない。
事実レポートで解いた問題では慣性項の係数を0にしても解は求まった。


学習係数と慣性項の係数は収束までの時間に大きな影響を及ぼす。


入力データが似ているとそもそも学習が収束しない。
これかなり重要。
ここで僕はこけた。
つまり入力データの表現形式と、それによってどれくらいデータが表現できるかは意外と重要。
もう1つ重要なのが出力層の数。
出力層をクラスごとに1つとかしとくと問題はだいぶ簡単になる。


収束する限界まで中間層の数は少なくすべき。
過学習の問題があるからね。
でも、やはりNNは汎化性能に難有り、といった感がいなめない。


学習に使ったデータについては、学習後のNNにおいて多少ノイズを含んだ状態で入力しても正しく識別されるので、学習したものについてはロバスト性がかなり保証されていると考えていいかも。


以上、普段SVMを使っているけど、多クラスの識別問題ならNNも悪くないなと思った。
さっくりと実装できるのがよいですね。
ただ、学習回数が必要なのでCとかJavaで実装するのがよろし。
手軽さをかってPythonで実装したので、収束まで時間かかりすぎてワロタ。