この問題のテーマ・前提知識
- テーマ: Fused Lasso・L1トレンドフィルタリング・階差ペナルティ
- 前提知識: L1正則化(Lasso)のスパース性 / 有限差分(1次・2次・3次階差)の意味
問題の概要
時系列データに対して正則化最小二乗法を適用する問題。[1] では、隣接する推定値の差分に L1 ノルムペナルティをかけた目的関数(Fused Lasso)を最小化したとき、推定値のグラフがどのような形状になるかを選ぶ。[2] では、別の正則化式を適用した結果として「連続な折れ線」状のグラフが得られたとき、そのペナルティが何次の階差に対するものかを選ぶ。
解説
解法の方針:[1] 1次階差に L1 ペナルティをかけると多くの箇所で差分がゼロになるスパース性が働き、グラフが階段状になることを確認する。[2] 連続な折れ線(区分的に線形)は「傾きの変化」をゼロにする 2次階差ペナルティに対応することを確認する。
[1]
\[\hat{\beta} = \arg \min_{\beta \in \mathbb{R}^{217}} \frac{1}{2} \sum_{i=1}^{217} (y_i – \beta_i)^2 + \lambda \sum_{i=1}^{216} |\beta_{i+1} – \beta_i|\]
この式は、以下の2つの要素のバランスを取っている。
- 第1項(データへの適合度): 推定値 \(\beta_i\) が元のデータ \(y_i\) に近いほど小さくなる。
- 第2項(ペナルティ項): 隣り合う推定値の差 \(|\beta_{i+1} – \beta_i|\) の合計。
第2項には、絶対値を用いた \(L_1\) ノルムが使われている。\(L_1\) ノルムによる最適化には、「多くの値をちょうど $0$ にする」という性質(スパース性)がある。
Fused Lasso の場合、隣り合う値の「差分」に \(L_1\) ペナルティをかけているため、多くの箇所で \(\beta_{i+1} – \beta_i = 0\) となる。
- 差分が 0 ということは、隣り合うデータが全く同じ値になることを意味する。
- その結果、グラフは「一定の値が続く平坦な部分」と「値が跳ね上がる変化点」で構成される階段状(区分的に定数)の形になる。
選択肢の中で、階段状のグラフになっているのは ④ のみである。
[2]
別の手法を適用した結果のグラフ( [2] の図)を見てみる。このグラフには以下の特徴がある。
- 連続である:[1] の Fused Lasso(グラフ④)のような「垂直なジャンプ(不連続点)」が存在しない。
- カクカクした折れ線である:いくつかの区間では「直線(一定の傾き)」になっており、その接合点で「カクッ」と曲がっている(傾きが急に変わっている)。
1. 差分の次数とグラフの形の関係
\(L_1\) ノルム(絶対値)のペナルティをかける対象(階差の次数)によって、結果の形状は数学的に決まる。
- 1次階差 \(|\beta_{i+1} – \beta_i|\):隣り合う値の「差」を 0 にしようとする。
その結果、値が一定の区間(水平な線)ができ、スパース性が効く場所で「値のジャンプ」が起きる。 - 2次階差 \(|\beta_{i+2} – 2\beta_{i+1} + \beta_i|\):これは「傾きの変化」を 0 にしようとする。
傾きの変化が 0 ということは、その区間は「直線(一定の傾きを持つ線)」になる。
スパース性が効く場所でのみ「傾きが変化」するため、グラフは連続な折れ線(区分的に線形)になる。 - 3次階差 \(|\beta_{i+3} – 3\beta_{i+2} + 3\beta_{i+1} – \beta_i|\):これは「曲率の変化」を 0 にしようとする。
その結果、グラフは滑らかな曲線(区分的に2次式)になり、接合点でも傾きが連続になるため、カクカクした角(かど)は現れない。
2. 選択肢の検討
提示されたグラフは「連続な折れ線」であり、明確な角(カクッとした部分)を持っている。よって、2次階差のペナルティを与えている式が正解となる。
- ①・②:\(\beta_i\) そのものへのペナルティであり、時系列的な「つながり(滑らかさ)」を生む構造になっていない。
- ③:通常の Lasso(\(\sum |\beta_i|\))であり、各 \(\beta_i\) を 0 に近づけるだけなので、このようなトレンド線は描かない。
- ④:\(\sum |\beta_{i+2} – 2\beta_{i+1} + \beta_i|\)(2次階差)。これが「折れ線状」のトレンド($L_1$ トレンドフィルタリング)を生成する式である。
- ⑤:3次階差。これを用いると、グラフから角が消えてもっと滑らかな曲線になるため、図とは合致しない。
よくある質問
Q. Fused Lasso と通常の Lasso はどう違うのですか?
通常の Lasso は \(\sum |\beta_i|\) のように各係数の絶対値にペナルティをかけ、係数そのものをゼロに近づける。Fused Lasso は隣接する係数の差分 \(\sum |\beta_{i+1} – \beta_i|\) にペナルティをかけるため、差分がゼロ(=隣の値と等しい)になりやすく、結果として推定値が「区間ごとに一定の値をとる階段状」になる。
Q. 2次階差ペナルティがなぜ折れ線状になるのか直感的に説明してください。
2次階差 \(|\beta_{i+2} – 2\beta_{i+1} + \beta_i|\) は「傾きの変化量(加速度に相当)」を測っている。L1 ペナルティのスパース性により、この加速度がゼロになる区間が多くなる。加速度がゼロの区間は「一定の傾きを持つ直線区間」を意味し、傾きが変化するのはスパース性が効かない少数の点のみとなるため、連続な折れ線が現れる。
Q. 階差の次数を上げるほどグラフはどう変わりますか?
次数を上げるほど滑らかさの「種類」が変わる。1次階差で階段状(区分定数)、2次階差で折れ線状(区分線形)、3次階差で滑らかな曲線(区分2次)となる。問題のグラフに「角(不連続な傾き変化)があるか・ないか」を見て次数を判断するのが実践的な解き方である。



コメント