二次形式の微分とデザイン行列|ベクトル解析を確認する #3

f:id:lib-arts:20210616180614p:plain

ベクトル解析(vector calculus)の基本的なトピックを確認するシリーズです。
#1では簡単に概要の把握について、#2では二次形式の微分について取り扱いました。

#3では二次形式(quadratic form)の微分の応用例の確認にあたって、回帰分析を考える際に出てくるデザイン行列(design matrix)の二次形式の微分について取り扱います。

以下が目次となります。
1. デザイン行列(design matrix)とは
2. デザイン行列の二次形式の微分
3. まとめ


1. デザイン行列(design matrix)とは
1節ではデザイン行列(design matrix)に関して取り扱います。

f:id:lib-arts:20210616180718p:plain

Design matrix - Wikipedia

デザイン行列は上記のように回帰分析のような処理を行う際に用いる行列です。「(予測値)=(それぞれのサンプルにおける変数)×(係数、パラメータ)」のような形式で基本的に表されます。上記のWikipediaの例では「(予測値)=(それぞれのサンプルにおける変数)×(係数、パラメータ)+(誤差項)」を取り扱っていると考えて良いかと思います。これを行列表記すると、y = X\beta + \epsilonのように表すことができます。
また、このとき抑えておくと良いのが、変数の値を表す行列のXの1列目を1にすることで\beta_0を定数項と見なせることです。

このように表すことで、重回帰分析の際などに現れる複雑な式を一つの行列演算でほぼ表すことができるので非常に有用です。ここまででデザイン行列の概要について確認できたので2節ではデザイン行列の二次形式の微分について取り扱います。


2. デザイン行列の二次形式の微分
2節ではデザイン行列の二次形式の微分について取り扱います。この関連で出てくる話で抑えておきたいのが、重回帰分析のパラメータを求める際の正規方程式(normal equation)です。
いきなりデザイン行列を用いた表記から確認すると大変なので、先に\displaystyle \hat{y}_i = \beta_1 x_i + \beta_0を元に流れの確認を行います。

\displaystyle \hat{y}_i = \beta_1 x_i + \beta_0
\displaystyle E(a,b) = \sum_{i=1}^{n} (y_i-\hat{y}_i)^2
  \displaystyle = \sum_{i=1}^{n} (y_i-(ax_i+b))^2

上記で定義したE(a,b)ab偏微分し、0に一致するabを求めるというのが基本的な流れです。

以下、重回帰分析のパラメータを求める話をデザイン行列を用いて表記することを考えます。

f:id:lib-arts:20210616180614p:plain

上記を\hat{y}=X\betaと表し、\hat{y}に対応する実測値をy、最小二乗和誤差関数をE(\beta)とするとE(\beta)は下記のように表すことができます。

E(\beta) = (y-\hat{y})^{T}(y-\hat{y})
   = (y-X\beta)^{T}(y-X\beta)
   = y^{T}y-y^{T}X\beta + (X\beta)^{T}y-(X\beta)^{T}X\beta
   = y^{T}y-y^{T}X\beta + \beta^{T}X^{T}y-\beta^{T}X^{T}X\beta

ここで\Sigmaが出てこないのは行列の積で和を表すことができるからです。これを\betaに関して微分(E(\beta)のgradientを計算するのに一致)すると、下記のように計算できます。

\nabla E(\beta) = -2X^{T}y + 2X^{T}X\beta = 0
2X^{T}X\beta = 2X^{T}y
X^{T}X\beta = X^{T}y
\beta = (X^{T}X)^{-1}X^{T}y

このようにデザイン行列を用いることで、回帰分析にあたってのパラメータを二次形式の微分を考えることで求めることが可能です。


3. まとめ
#3ではデザイン行列における二次形式の微分について取り扱いました。
#4以降でも関連のテーマについて取り扱います。