昨日したこと
あいかわらずJavaScript機械学習してました。
32次元のデータを学習できないという問題がありましたが、単純に
set(0,0,datas)とするところを、set(1,1,datas)としてました。(1x1x32のデーター構造だから、0,0に値を入れないとダメ)
直前でデーター作るのにcreate(1,1,32)とか呼び出してたせいで勘違いしました。Javascriptはこういう所を気をつけないとだめですね。

さらには、繰り返し学習ができないという問題がありましたが、これまた単純にコピペで使いまわしたコードがPositiveデーターを、Negativeに登録してました。
此のへんは、トレーニングのステータスを見ればわかるはずなので、確認したいです。

Wikipedia見ながら作っていた、ローカル・バイナリー・パターンの実装ですが、Concatenate (normalized) histograms of all cells.の意味を誤解してました。
http://en.wikipedia.org/wiki/Local_binary_patterns
間違って単純に合計しただけだと、cellsに分ける意味なかったですね。おそらく32x32画素の画像をのLBP時のサンプルを8だとすると、各Cell(16x16だと最大256の)ごとに8bitのデーターができるので、これを並べてセル数が4だと32bitのデーターを作る必要があった。値の範囲は-1 - 1が望ましいので、128でわって、-1した。
これを入れると、動いた。グレイスケール画像を均一化していく方法に比べたら、精度はともかく、計算速度が物凄くはやい。これだとリアルタイムに対応できそうな速さだった。


双曲線関数(tanh)・シグモイド関数(sigmoid)・Rectified Linear Unit(relu) の違いが何となくわかった気がした。
流行り廃りとか関係なく入力されるデーターの傾向によって、使い分けるのがいいかも(少数のサンプルで全部試すのがよさそう)
今のところは、tanhは中央にデーターが集まる傾向が多い時、sigmoidは外側の時(tanhとsigmoid逆かもしれないが)、万遍ないときはRelu

レイヤーの設計で性能が大きくことなることだけは、試してわかった。

数式がわからなくて、自分で事前予測とか全くできなから、これこそ、遺伝子アルゴリズムで解きたいよね。