Help us understand the problem. What is going on with this article?

カーネルとは直感的に説明するとなんなのか?

More than 3 years have passed since last update.

How to intuitively explain what a kernel is?に対する回答がわかりやすかったので和訳


まずは質問の意図から。
質問者は、「カーネルとは直感的に説明するとなんなのか?」を聞いています。それに対する回答のひとつが、上記のリンク先です。

和訳

カーネルとはふたつのベクトル $\boldsymbol{x}$ と $\boldsymbol{y}$ の内積を(たいていはとても高次元の)特徴空間で計算する方法であり、これがカーネル関数が時々「一般化内積」と呼ばれる理由です。

$\mathbb{R}^n$ 上にあるベクトルをなんらかの特徴空間 $\mathbb{R}^m$ へ写す写像 $\varphi:\mathbb{R}^n \rightarrow \mathbb{R}^m$ があるとします。すると、その空間での $\boldsymbol{x}$ と $\boldsymbol{y}$ の内積は $\varphi(\boldsymbol{x})^\top\varphi(\boldsymbol{y})$ です。カーネルとはこの内積に対応する関数 $k$ で、つまり $k(\boldsymbol{x}, \boldsymbol{y}) = \varphi(\boldsymbol{x})^\top\varphi(\boldsymbol{y})$ です。

どうしてこれが便利なのか?カーネルは、特徴空間が何なのか、そして $\varphi$ が何なのかを知ることなしに、その特徴空間上で内積を計算する方法を提供します。

例えば、$\boldsymbol{x}, \boldsymbol{y}\in\mathbb{R}^2$ について、単純な多項式カーネル $k(\boldsymbol{x}, \boldsymbol{y}) = (1 + \boldsymbol{x}^\top \boldsymbol{y})^2$ を考えます。これはどんな写像 $\varphi$ にも対応しているようには見えず、単に実数を返す関数です。
$\boldsymbol{x} = (x_1, x_2), \boldsymbol{y} = (y_1, y_2)$ とおいて、上の式を展開してみます:
$$
\begin{align*}
k(\boldsymbol{x}, \boldsymbol{y}) &= (1+\boldsymbol{x}^\top\boldsymbol{y})^2 \\
&= (1+x_1 y_1 +x_2 y_2 )^2 \\
&= 1+x_1^2 y_1^2 +x_2^2 y_2^2 +2x_1 y_1 +2x_2 y_2 +2x_1 x_2 y_1 y_2
\end{align*}
$$
これは次のふたつのベクトルの内積以外の何者でもないことに注意してください:
$(1, x_{1}^2, x_{2}^2, \sqrt{2}x_{1}, \sqrt{2}x_{2}, \sqrt{2}x_{1}x_{2})$ と
$(1, y_1^2, y_2^2, \sqrt{2}y_1, \sqrt{2}y_2, \sqrt{2}y_1y_2)$、そしてこのとき、
$\varphi(\boldsymbol{x}) = \varphi(x_1, x_2) = (1, x_1^2, x_2^2, \sqrt{2}x_1, \sqrt{2}x_2, \sqrt{2}x_1x_2)$ です。
だから、カーネル $k(\boldsymbol{x}, \boldsymbol{y}) = (1+\boldsymbol{x}^\top\boldsymbol{y})^2 = \varphi(\boldsymbol{x})^\top\varphi(\boldsymbol{y})$ は、6次元空間での内積を計算していることになります。明示的にその空間を訪れずに。

もうひとつの例はガウシアンカーネル $k(\boldsymbol{x}, \boldsymbol{y}) = \exp(-\gamma||\boldsymbol{x}-\boldsymbol{y}||^2)$ です。この関数をテイラー展開すると、これが無限次元への写像 $\varphi$ に対応することがわかるでしょう。

最後に、カーネルに基づいた手法のよい導入として、Yaser Abu-Mostafa教授のオンライン講義"Learing from Data"をおすすめします。特に、"Support Vector Machines", "Kernel Methods", "Radial Basis Functions"がカーネルについてのレクチャーとなっています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした