質問: 最小二乗法の重みづけについて教えてください。 簡単のため、説明変数tと、目的変数xが、共に実数(スカラー)とします。 また、フィッティング関数 f=f(t,a,b,c) も、簡単のため3変数または4変数のスカラー値関数とし、フィッティングパラメータa,b,cも実数(スカラー)とします。また、fがフィッティングパラメータを2つしか持たない場合(fが3変数の場合)には、 f(t,a,b)と読み替えて考えることにします。 また、データ、即ち説明変数と目的変数の実測値の組 (t_{i},y_{i})がn個あるとする。 また、以下の4種類の評価関数を考えます。 a:所謂2ノルム a(a,b,c)=σ|{y}_{i}-f({t}_{i},a,b,c)|^2 b:n個の正数w_{i}を用いて、重みづけ b(a,b,c)=σ(w_{i}|{y}_{i}-f({t}_{i},a,b,c)|^2) c:単調(非退化、つまり任意の点で微分がバニッシュしない)な関数φを用いて変換 c(a,b,c)=σ|φ({y}_{i})-φ(f({t}_{i},a,b,c))|^2 d:所謂1ノルム d(a,b,c)=σ|{y}_{i}-f({t}_{i},a,b,c)| (q1)このとき、以下の命題のうち、同値な命題はどれとどれですか? p「(a,b,c)がaの極値点である」 q「(a,b,c)がbの極値点ある」 r「(a,b,c)がcの極値点ある」 s「(a,b,c)がdの極値点である」 (q2)重みづけの意味について: *実際、最急降下法のプログラムを作ってみると、 dの場合で、直線に近い形状になるように変換した場合(たとえばシクモイドの場合logをφに取る)。 cの場合で、変化が緩慢なiに重みをつけた場合。 aの場合。 の順に速度が速く、いずれの場合もだいたいの場合には、まあまあ(10000回ぐらい再起計算すれば) まあ、見た目に近いグラフが出てきます。 だとしたとき、wやφというのは、何を意味しているのでしょうか? ここで、最急降下法は、以下の意味で考えている 最急降下法の初期パラメータを(a_0,b_0,c_0)とし、 k回目の計算値を({a}_{k},{b}_{k},c_{k})と記載する。 このとき、({a}_{k},{b}_{k},c_{k})は、以下の漸化式を再帰的に数値計算することで求める。 (a_{k+1},b_{k+1},{c}_{k+1})=(a_{k},b_{k},{c}_{k})-ε*grad(j(a,b,c)) 但し。jは、a,b,cいずれかの評価関数で、εは充分小さい正定数 (q4)εのテンソル化: というほど大げさなものではありませんが、εを正値の対角行列にした場合 収束が早いことがあります。この場合εの異方性がフィッティングパラメータの収束性 どのように作用しているのでしょうか?また、こんなことをしてもいいのでしょうか?
回答: 残差ε ε[i] = y[i]-f(t[i],a,b,c) を「小さく」する、という話でしょう。 評価関数a a(a,b,c) = σ(|ε[i]|^2) を最小にする(a,b,c)を求めるのは最小二乗法ですね。特に、もしfがa,b,cについて線形なら線形最小二乗法です。 b(a,b,c) = σ(wi) (w[i]≧0) を最小にするなら重み付き最小二乗法。 δ[i] = φ(y[i])-φ(f(t[i],a,b,c) c(a,b,c)=σ|δ[i]|^2 を最小にするのも最小二乗法で、データの尺度をφで変換したもの。特に、もしφ(f)がa,b,cについて線形なら線形最小二乗法です。 これらに比べて d(a,b,c)=σ|ε[i]| を最小化するのはかなり毛色が違います。 (q1) 残差ε[i]が全て0になる解(a,b,c)が存在するなら命題p~sは同値ですが、さもなければ命題p~sは一般に(i.e., 特殊なタマタマを除いて)同値ではないことは明らかでしょう。 (q2) w[i]の意味する所は「サンプルiにおいて残差を相対的にどの程度小さくしたいか」です。w[i]が大きいほど、他のサンプルにおける残差が大きくなるという犠牲を払ってでも、サンプルiでの残差を小さくしたい、ということ。 サンプルごとにデータyに含まれる誤差が従う確率分布が異なる場合に用います。残差があまり大きくないうちは、w[i]=(分散の平方根の逆数)にするのが最適です。こちらもご参考に→ http://oshiete.goo.ne.jp/qa/3557287.html 非線形変換φの意味する所は(仰る所の「目的変数」の)尺度の変更です。一つには非線形の問題を線形の問題に(あるいは非線形性の少ない問題に)変換するための手段として、wと組み合わせて使われます。たとえば f(t,a,b,c) = a (t^b) exp(-ct) で、データyが常に正である場合、φ=ln を使って ln(f(t,a,b,c)) =ln(a) + b ln(t) - ct のように変換して残差を η[i] = ln(y[i])-ln(f(t,a,b,c)) とします。もしε[i]が従う分布がiに依らないなら、この変換をすると当然、η[i] が従う確率分布がサンプルごとに異なることになるので、これを補正してやるために重みw[i]が必要になります。すなわち η[i]=-ln(f(t,a,b,c)/y[i])=-ln(1-ε[i]/y[i])≒ε[i]/y[i] (|ε[i]/y[i]| <<1のとき) であるから、重みw[i] = y[i]^2を使えば、aの意味での最小二乗法に近い結果を線形最小二乗法で計算できることになります。その他の処方についてはたとえば→ http://oshiete.goo.ne.jp/qa/198558.html 逆にまた、サンプルごとに誤差が従う確率分布が異なっていて、しかもその分散がサンプルyの値に依って決まる場合に、どのサンプルでも誤差が従う確率分布が同じになるようにするための手段として、非線形変換φを使うこともあります。(この手段を使うのは、最小二乗法に限ったことではありませんが。)→ http://oshiete.goo.ne.jp/qa/5190616.html > dの場合で、直線に近い形状になるように変換した場合(たとえばシクモイドの場合logをφに取る)。 はてさて、dにはφが入っていませんよ?もしかして、cの話でしょうか。それにしても、「直線に近い形状」「シクモイドの場合」とは、何と何の関係について仰っている? もしかして、tとyとの関係でしょうか?だとすれば、そんなのφの選択とは無関係です。φは「説明変数」t についてではなく、「目的変数」の変換ですからね。(もちろん、tについて何かの変換をしてもよくて、それはモデルfを変更した、ということに他なりません。) > cの場合で、変化が緩慢なiに重みをつけた場合 これはbの場合について仰っているのでしょうかね。しかし、「変化が緩慢なi」とは一体どういう意味なのでしょうか。iの番号の付け方はどうであっても構わないわけで、結果にも途中経過にも全く影響がないことは、式を見れば明らかでしょう。 (q4)εのテンソル化 (非線形最小二乗法に限らず)非線形の極値問題の数値解法では、要するに極値を探して動き回る。その時に「素直に最急降下方向に動かずに、どっち向きに動くかにバイアスを与える」というのが、おそらく「εのテンソル化」と仰る意味でしょう。 最急降下法は「遅くてもいいから簡単な計算式・プログラムで済ませたい」という時に使われます。しかし、「(最急降下方向の情報も場合によっては利用するけど)もっと他の情報を利用して、動く方向と量を決める」というもうちょっと知恵を使った手法がいろいろあります。たとえばmarquardt法等を参照なさると参考になるかも。 ところで、(ご存知かも知れませんが)非線形極値問題では、出発値の選び方が悪いとlocal minimimに落ち込んで誤った結果に収束してしまうことはしばしばあります。(最急降下法を含め)ちょこっとずつ動いてみるというやり方では(局所しか見ていないので)この問題は避けられません。これを(なるべく)避けるには、上記φによる変換などの手法で問題を線形化して適切な出発値を計算するか、あるいは「焼き鈍し法」などのlocal minimumを抜け出すメカニズムを入れる必要があります。