プロが教える店舗&オフィスのセキュリティ対策術

制約付き最小二乗問題に関しての質問です。

minimize |Vector(x)-Σ_[k=1,n]w_k*Vector(x_k)|^2 (変数はw_kです)
subject to Σ_[k=1,n]w_k=1
(Vector(x)の次元=Vector(x_k)の次元>n)
(w_k(1<=k<=n)はスカラーです)

上記の制約付き最小二乗問題をラグランジュで解きたいんですが、うまく解けません。
答えをclosed-formでかけるらしいのですが、導出過程がわかる方いらっしゃいましたらぜひご教授ください。
よろしくお願い致します。

A 回答 (1件)

書きやすいように、次のように定めます。


y = Vector(x)
X = (Vector(x_1), ... ,Vector(x_n))
w = (w_1, ... , w_n)'
i = (1, ... , 1)'
j_k = (0, ... , 0, 1, 0, ... , 0)' 第k要素だけが1で後はゼロ
J = |1, -1, 0, ...| (n-1)×n の行列
|1, 0, -1, ...|
|.............|
|1....., 0, -1|
とするとこの問題は
min_w {y - Xw}'{y - Xw}
s.t. w'i = 1
と書けるはずです。したがって
e = y - Xw
とおけば、
L = e'e + 2R (1-w'i)
とラグランジュ関数が書けるので、最小化から
-X'e = R i
i'w = w'i = 1
という連立方程式が書けます。したがってn+1本の方程式とn+1個の未知数ですので、この式は単一の解を持つ、つまりclosed-formで書けることが分かります。

j_g' X'e = j_h' X'e
(j_g - j_h)' X'e = 0
これをたてにn-1本並べると、
J X'e = J X'X w - J X'y = 0
と書ける。したがって
J'J X'X w = J'J X'y
w = (J'J X'X)^{-1} J'J X'y

この J のあたり、三角行列やなんかを使ってもう少し簡単に出来るような気がするが、これでどうでしょう。

この回答への補足

丁寧な回答でとても参考になりました。
ありがとございました。

とある論文を見てみると、下記のように答えをかけるみたいです。
(at9_am様の表記をお借りしてます)

G=(y*i'-X)'(y*i'-X)
w=G^{-1}*i/(i'*G^{-1}*i)

がんばって解いてみましたが、この通りでません。
こちらの導出過程もわかる方がいらっしゃいましたら、ぜひご教授ください。どうぞよろしくお願い致します。

補足日時:2007/12/20 19:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!