2016/04/02

[DL][cntk]NDLを書いてみよう (3)

まだ続いている、自分でニューラルネットのネットワークを書く話。
チュートリアルを見始めたけど、ロジスティック回帰なるものが出てきて、わからないなりにやったところまでが前回だ。

パラメータが1つの問題が線形回帰とか単純回帰とか呼んで、パラメータが増えると多重線形回帰になる。
多重線形回帰の成果というか結果というかが2値の場合を、ロジスティック回帰と呼ぶ、という認識でいる。
結果がAかAじゃないか、で、Aなら1.0、Aじゃないなら0.0、あとはよりどっちに近いかという値になる。


チュートリアルは2変数なので、回帰モデルはこうなる。

y = W_0 + W_1 x_1 + W_2 x_2

2元1次方程式、というやつですな。

散布図を見ると、左下が0のグループ、右上が1のグループのようだ。
図形的な解法だと、各グループの重心を求め、重心間に直線を引き、それと直交する直線で重心間の距離が等しくなるような直線を求めることになるだろう。

そういった求め方をせず、点のデータからその直線になるようなWを求めるのがこのチュートリアルになるはず。
この節の一番下に破線が追加された散布図があるが、この破線がそれですな。

 

うーん。
このチュートリアルでは、散布図を見ると確かに直線で分離できそうだから2元1次方程式でよいだろう。
でも、Simple2dの場合はサイン波からデータを作っているので、直線で分離するのは無理だろう。
やったとしても、x軸に平行な原点を通る直線になって、波の付近は全然ダメなはずだ。

そういう意味では、Simple2dはロジスティック回帰に適さない課題と言うことになるのか。
でも、そんなのは結果論であって、モデルがどういう風になるかわからないからディープラーニングだの何だのを使って勝手にやってもらおうとしているんじゃないか。

 

そうなると、簡単な話で「CNTKでロジスティック回帰の計算はできるけれども、ロジスティック回帰はディープラーニングとは関係がない」ということか。
ネットワーク図だって、全然層になってないし。。。
今ひとつ自信はないが、そういうことにしておこう。

 

チュートリアルのソースが、ラベルのモデルマッピングがないとかエラーが出たので、Simple2dのを付け足したものを置いておく。
一番上にあるテキストファイルは結果で、これはチュートリアルサイトの結果とも一致しているから、間違ってないのだろう。

https://drive.google.com/folderview?id=0B2_3hJpJ5Ui2Ymt0ZEM5NEtuZFE&usp=drive_web&tid=0B2_3hJpJ5Ui2QWZ5Mm5NV29USEE

さあ、次こそは自分でネットワークを書いてみたいぞ。


よそのサイトを見ていたら、面白そうなことをしていた。

Enjoy RFID: RFIDでディープラーニング その1

中身はわからないけど、私もこういう、自分で集めたデータで何かしてみたいのですよ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。