Open3

読者コミュニティ|機械学習・データサイエンス勉強ノート

ぱるまぱるま

こんにちは。Google検索で 「Chapter 05 カーネルリッジ回帰(Kernel Ridge Regression)」を見つけて読んでたのですが、少し気になった部分があったので指摘させてください。

以下の部分で「Gram行列 K が対称行列で、かつ正定値行列(行列の固有値がすべて正)になることと等価である。」とありますが、「半正定値行列(行列の固有値がすべて非負)になることと等価である。」が正しいかと思います。

一般に実数を成分に持つn\times nの行列

A = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ a_{n1} & a_{n2} & \cdots & a_{nn}\\ \end{pmatrix}

が対称行列であるとき、

  • A が半正定値であることは、任意の c=(c_1,c_2,\ldots, c_n)^\mathrm{T} \in \mathbb{R}^n に対して、c^\mathrm{T} Ac = \sum_{i,j=1}^n c_ic_ja_{ij} \geq 0 である。 (A の固有値がすべて非負であることと同値)
  • A が正定値であることは、任意の c=(c_1,c_2,\ldots, c_n)^\mathrm{T} \in \mathbb{R}^n\setminus\{0\} に対して、c^\mathrm{T} Ac = \sum_{i,j=1}^n c_ic_ja_{ij} > 0 である。 (A の固有値がすべて正であることと同値)

と定義されます。

カーネルの正定値性の定義にある「任意の c_1,c_2,\ldots c_n\in \mathbb{R} に対して \sum_{i,j=1}^n c_ic_j k(x_i,x_j) \geq0」をGram行列 K で表した場合は「Kが半正定値行列である」となるはずです。

この正定値カーネルは確かに半正定値カーネルって呼ばれてもいいものなのですが、分野の習慣で正定値カーネルと呼ばれるみたいです。(参考: 福水「カーネル法入門」)


あともう一つですが、以下の部分について、Gram行列 K が正則とは限らないのでK^{-1}は取れないと思います。
\nabla f(\alpha) = 0 となる \alpha を1つ見つければいいと思うのですが、その場合は K が正則でなくても \alpha = (K+\lambda I_N)^{-1}y\nabla f(\alpha) = 0 を満たすので特に問題はないかと思います。

Josh NobusJosh Nobus

ご指摘いただきありがとうございます!

該当箇所を修正の上、Acknowledgement にお名前を記載させていただきました(問題ありましたら削除しますがぜひ記載させてください)。今後ともよろしくお願いいたします。