E[N(0,σ^2)N(0,σ^2)]
がどう求まるのかわからん!

http://case.f7.ems.okayama-u.ac.jp/statedu/lispstat-book/node85.html
を参考に。

Matlabで
lo=corrcoef(X,X);相互相関係数。
R=[X_bar(1)^2+sigma(1)^2 X_bar(1)*X_bar(2)+sigma(1)*sigma(2)*lo;
X_bar(1)*X_bar(2)+sigma(1)*sigma(2)*lo X_bar(2)^2+sigma(2)^2];
P=[d*X_bar(1) d*X_bar(2)]';
X_star=inv(R)*P;
endnote web
というのがある。

そのうちにやらねば。
http://www.thomsonscientific.jp/products/enw/
どれくらいズレるかを数式化可能なことがわかった。

とりあえず一次の場合で、
適応信号処理PDFの(4-3-16)式に代入して計算したら、
①W*=dX/(X^2+σ^2)
となった!

これは収束点を普通に計算したときの
②W*=d/Xとは違うし、

プログラムによる検証でも①の方が確からしいことが判明。

ズレ分は計算で出せる!!


σ=1
H"の研究ブログ-20091012LMSズレ補正①


σ=5
H"の研究ブログ-20091012LMSズレ補正②


σ=10
H"の研究ブログ-20091012LMSズレ補正③




メモ

1-2μx^2>1
だと発散する。

1-2μx^2<1
という条件が必要。
下図のようなモデルを使って

H"の研究ブログ


やると
だいたい上手くいく↓

H"の研究ブログ


ように見えるんだけど、

収束点がやっぱりちょっとズレる。


H"の研究ブログ
H"の研究ブログ


分散が大きいほどズレるっぽい。
そしてこの値は(0 0)に収束する。

なんでだぁぁぁぁあああああ!?
dが変化していくときにwが追従していくかっていう実験。

人の適応によって目的のwが変化していくときにどうやってBCIが追従するか。
そいういうためのテスト。
成功。

途中で適応すべき関数が変わってもちゃんと追従する。

H"の研究ブログ-20091009LMSalg追従①
H"の研究ブログ-20091009LMSalg追従②
デフォのモデルと制約条件

$H"の研究ブログ-20091006①



制約条件を含み再構築されたモデル

H"の研究ブログ-20091006②


上記と同値だが一次元で捉えたモデル

H"の研究ブログ-20091006③





という感じで解いてみたものの、
なぜか、X分散が増えるほど実収束値が理論上の収束値からシフトする。
しかも決まった位置にシフトする。
なんじゃそりゃああぁぁぁぁあああ!?!?

緑線:d
マゼンタ*:理論上の収束値
青・:wの実値
赤+:実収束値

H"の研究ブログ

$H"の研究ブログ




to be continue...
明日は理想値dを変化させたときの追従性について調べて、
次にdと同時にxも動かしたときもみる。

おまけ
テスターでpanaのノートPCのアダプタをチェック。
デフォルト。AAsample1

いま考えてる条件
W:2*1:初期値は(-10~+10,-10~+10)の一様分布で適当に出してあとは更新
X:2*1:(3,5)'を中心に乱数で散らす
d:1*1:11
u:1*1:適当。0.0001とか。
N:1*1:1000回くらい

更新式は
W(k+1)=W(k)+2*u*ε(k)*X(k)
ε(k)=d-W'*X(エラーのこと)


【制約条件について】

w1+w2=1などの制約条件を加える場合に、

①普通に更新しつつ、Wを正規化していく方法。
②w1,w2のいずれか一次元において更新しつつ、もう一方は計算により求める方法。

が考えられる。

①の試験。AAsample2
変なところにはまり込んで失敗。
よく考えれば当たり前。
正規化前の段階の値を収束させようとしているのに、収束されてしまう。

②の試験。AAsample3
まぁ苦労したけど成功。
2つ捉え方があるのでまとめとく。
「過去のいくつかの試行が最も上手くいくように次の重みを決める。」
ということ?

〇Control of two-dimension...

The Adaptive Algoritym

...(That is, the LMS algotithm determined the weights for the linear functions that would have given the best results had they actually been used for past trials.)

???

PDFで読んだ"LMS adaptive algorithm"とだいぶ異なる。


どういうこと?
①本当に上記のままのものを実装している。
②PDFに載っている方のLMS adaptive algotithmもよくよく考えると同様のことをしている。


確かめる手段
①"LMS adaptive algorithm"についてwebでもう少し調べる。
②wadsworth signal processingを読む。
③PDFに載ってるシステムを検証してみる。

①⇒「適応アルゴリズム」で検索したらたくさん出た。奥が深そう。PDFの4-2げと。実用例を少し勉強した方が良さそうだ。
②⇒移動量計算式に付いてるそれぞれの係数が何を基にどんなアルゴリズムで更新しているのかわかった。

mean
proportion of mean
std
proportion of std
weight

の5パラメータが更新されているが、とにかくwは
Dependence:Defference between targe position and cursor position
を教師信号として、
FeedbackでLMS Algorithmを用いて調整しているようだ。

と、いうことで4-2読んでみます。


⇒要は、最急降下法を用いて、ちょっとずつ最適のWを学習させることで、
「過学習にならない」且「過去データ蓄積の機能」を果たしている、ようだ。

BCIにおいては、最適解(人の状態)が一定でなく動くため、過学習ということが起こりうる。
これを考えると、Wをゆっくり学習させることが必要である、このことが重要。
通常の適応フィルタはそこまで考える必要ないので、一定の最適値に早く適応させることだけ考えればいい。(on-line)
↑あってる?


適応フィルタの仕組みはわかってきたが、多電極のとき(fがたくさんあるとき)はWを適応させるLMSアルゴリズムはどうなるの?っていうか、タップ数はいくつくらいがいいの?あと本当にこのイメージで合ってるの?

①Wadsworth SPを詳しく読む
②↑のReferenceを引いてみる。

③4-2の実例をもう少し詳しく読む。


①②⇒wのsumが定数ということしかわからん。
③⇒適応フィルタのできる主な仕事はトラッキング

結局特徴量f1,f2に対して

モデル:「w1f1+w2f2」によってyが出力され、
そのw1,w2をLMSアルゴリズムで最適化するということ?

あ、できた。

明日はdを変えていくことで適応しよ。

あ、あとwの拘束条件入れなきゃ。
①論文読みつつ、適応フィルタの試験。

論文
〇control of ...をチェック
〇取り寄せたヤツ。wadsworth の signal processingの方。
〇BCI2000関連のものを探す。

適応フィルタの試験
〇とりあえずmatlabで普通のヤツを
〇徐々にBCI用のモデルに。


〇ネットオークションのやり方。
気になったのはやはり

〇BCI2000
〇The Graz BCI

とりあえずBCI2000から行くか?