jiku log

データサイエンスの核心を掴む : 学びと発見の記録

「スモールデータ解析と機械学習」を読む ~第3章 回帰分析と最小二乗法 ⑥部分的最小二乗法(PLS2)~

はじめに

藤原 幸一 著「スモールデータ解析と機械学習」は,サンプル数が少ない状況でのモデル構築や予測精度の確保,統計的な不確実性の扱い方など,現場で直面する悩みに直結する理論と実践がコンパクトにまとまっている。製造業のデータ解析において「少ないデータだから仕方ない」と諦めるのではなく,「少ないからこそできる工夫」を身につけるためにこの本を読み,その学びをブログで共有しようと思う。

本記事は,「第3章 回帰分析と最小二乗法」における,部分的最小二乗法(PLS2)に関する読書メモである。

3.16 出力変数が複数ある場合(PLS2)

前節までは,出力変数の数が1つ出るPLS1モデルを考えてきた。本節ではこれを拡張し,出力変数が複数個( L個)ある場合でも学習できるPLS2を紹介している。

PLS2(出力変数がL個のPLS)のモデル化

PLS2では,

  • 入力データ \mathbfit{X} \in \mathbb{R}^{N \times M}
  • 出力データ \mathbfit{X} \in \mathbb{R}^{N \times L}

が与えられたもとでモデル化を行なう。すなわち,入力は M変数,出力は L変数で,ともに N個のサンプルがあるものとする。


PLS2のモデル全体は,


 \begin{align}
&\mathbfit{X} = \mathbfit{T} \mathbfit{P}^T + \mathbfit{E} \\ \\
&\mathbfit{Y} = \mathbfit{U} \mathbfit{C}^T + \mathbfit{f}\\ \\
\end{align}
となる。ただし,

  •  \mathbfit{T} \in \mathbb{R}^{N \times R} : 入力 \mathbfit{X}に関する潜在変数行列
  •  \mathbfit{U} \in \mathbb{R}^{N \times R} : 出力 \mathbfit{Y}に関する潜在変数行列
  •  \mathbfit{P} \in \mathbb{R}^{M \times R} : 入力 \mathbfit{X}に関するローディング行列
  •  \mathbfit{C} \in \mathbb{R}^{L \times R} : 出力 \mathbfit{Y}に関するローディング行列

である。すなわち,入力・出力のそれぞれについて,潜在変数行列とローディング行列を準備するというモデルになっている。

潜在変数の推定

PLS1では \mathbfit{X}の線形結合としての潜在変数 \mathbfit{t}_r \in \mathbb{R}^N(r=1,...,R)を表現した。PLS2では同様に \mathbfit{Y}の線形結合として潜在変数 \mathbfit{u}_rを考える。

第1潜在変数は,


 \begin{align}
\mathbfit{t}_1 = \mathbfit{X} \mathbfit{w}_1, \quad \mathbfit{u}_1 = \mathbfit{Y} \mathbfit{c}_1 \\ \\
\end{align}
となる。

その後,重みベクトルのノルムが \lVert \mathbfit{w}_1 \rVert^2 = \lVert \mathbfit{c}_1 \rVert^2 = 1, という制約のもと,内積 \mathbfit{t}_1^T \mathbfit{u}_1を最大化する制約付き最大化問題を解くことで,最終的に


 \begin{align}
&\mathbfit{X}^T \mathbfit{u}_1 = \mathbfit{X}^T \mathbfit{Y} \mathbfit{c}_1 = \lambda \mathbfit{w}_1 \\ \\ 
&\mathbfit{Y}^T \mathbfit{t}_1 = \mathbfit{Y}^T \mathbfit{X} \mathbfit{w}_1 = \lambda \mathbfit{c}_1 \\ \\ 
\end{align}
が得られる。

本書ではその後, \mathbfit{w}_1, \mathbfit{c}_1を繰り返し計算によって求める方法が説明されていた。

潜在変数の推定に関する補足

本書では, \mathbfit{w}_1, \mathbfit{c}_1を繰り返し計算によって求める方法が紹介されていたが,


 \begin{align}
&\mathbfit{X}^T \mathbfit{Y} \mathbfit{c}_1 = \lambda \mathbfit{w}_1 \\ \\ 
&\mathbfit{Y}^T \mathbfit{X} \mathbfit{w}_1 = \lambda \mathbfit{c}_1 \\ \\ 
\end{align}
を変形すると,

 \begin{align}
  \begin{bmatrix}
    \mathbfit{O}_M & \mathbfit{X}^T \mathbfit{Y} \\
    \mathbfit{Y}^T \mathbfit{X} & \mathbfit{O}_L \\
  \end{bmatrix}

  \begin{bmatrix}
    \mathbfit{w}_1 \\
    \mathbfit{c}_1 \\
  \end{bmatrix}

= \lambda
  \begin{bmatrix}
    \mathbfit{w}_1 \\
    \mathbfit{c}_1 \\
  \end{bmatrix}
\\ \\
\end{align}
と書けるので,固有値問題になると考えられる。

ローディングベクトルの推定

PLS2モデルでは, \mathbfit{Y}の潜在変数 \mathbfit{u}_1を用いているため,このままでは \mathbfit{X}からの出力予測ができない。そこで, \mathbfit{u}_1 \mathbfit{X}の潜在変数 \mathbfit{t}_1を用いて表現する単回帰モデルを考える。


 \begin{align}
\mathbfit{u}_1 = a_1 \mathbfit{t}_1 + \mathbfit{h}_1 \\ \\
\end{align}
ここで \mathbfit{h}_1は誤差である。

回帰係数の推定

このようにモデル化すると,回帰係数 a_1は最小二乗法によって求められる。
最終的に,第1潜在変数についての出力の予測式は,


 \begin{align}
\mathbfit{Y}_1 = \mathbfit{u}_1 \mathbfit{c}_1^T = a_1 \mathbfit{t}_1 \mathbfit{c}_1^T \equiv \mathbfit{t}_1 \mathbfit{q}_1^T \\ \\
\end{align}
となる。

3.17 PLSと固有値問題・特異値分解


 \begin{align}
&\mathbfit{X}^T \mathbfit{Y} \mathbfit{c}_1 = \lambda \mathbfit{w}_1 \\ \\ 
&\mathbfit{Y}^T \mathbfit{X} \mathbfit{w}_1 = \lambda \mathbfit{c}_1 \\ \\ 
\end{align}
の第2式を \mathbfit{c}について解くと, \mathbfit{c}_1 = \lambda^{-1} \mathbfit{Y}^T \mathbfit{X} \mathbfit{w}_1となる。これを第1式に代入すると,

 \begin{align}
\mathbfit{X}^T \mathbfit{Y} \mathbfit{Y}^T \mathbfit{X} \mathbfit{w}_1 = \lambda^2 \mathbfit{w}_1 \\ \\ 
\end{align}
となり,行列 \mathbfit{X}^T \mathbfit{Y} \mathbfit{Y}^T \mathbfit{X} \in \mathbb{R}^{M \times M}の固有値問題となり, \lambda^2, \mathbfit{w}はそれぞれ固有値・固有ベクトルとなる。

さらに,固有値と特異値の関係から, \lambda \mathbfit{Y}^T \mathbfit{X}の特異値になっている。


このようにPLSは固有値問題やSVDとして解くことができ,これをSIMPLSアルゴリズムと呼ぶ。

まとめと感想

今回は,「第3章 回帰分析と最小二乗法」における,部分的最小二乗法(PLS2)についてまとめた。

製造現場の品質管理では,しばしば複数の品質特性を同時に最適化する必要がある。たとえば「強度」と「寸法精度」,「光沢」と「耐久性」といった,複数の品質KPIが同じ工程条件に依存しているケースだ。このような場面では,単一出力の PLS1 では不十分であり,PLS2 の枠組みが有効になる。

PLS2 の特徴は,入力と出力の両方の潜在構造を同時に捉える点にある。つまり「工程条件の主要な変動軸」と「複数品質特性の共通因子」とを結び付けることで,工程改善に直結する解釈が得やすい。

また,PLS2 の導出が固有値問題や特異値分解に帰着できる点は実装上のメリットも大きい。既存の線形代数ライブラリで効率的に計算でき,計算の安定性も高い。これは「サンプル数が少なく,多変量出力がある」ような製造現場データにとって非常にありがたい。

一方で,PLS2 の潜在変数は必ずしも現場の物理変数と直結するわけではないため,解釈の工夫が不可欠だ。例えば、ローディング行列を可視化して「この潜在因子は温度と圧力の組み合わせであり,寸法と強度に効いている」といった説明を付与する必要がある。


本記事を最後まで読んでくださり,どうもありがとうございました。