機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

カーネル法

今回からカーネル法を勉強していきます。カーネル法とはカーネル関数を使う機械学習手法の総称です。Wikipediaによれば「ノンパラメトリック統計でカーネルと呼ばれるものとは一般に異なる」とのことですので、カーネル密度推定法で出てきたカーネルとは異なります。(参考:カーネル (統計学) - Wikipedia

機械学習におけるカーネル関数は、特徴ベクトルの内積


k(\mathbf{x},\mathbf{x}^{\prime}) = \phi(\mathbf{x})^{T} \phi(\mathbf{x}^{\prime})  \tag{1}

として定義されます。定義から明らかなように


k(\mathbf{x},\mathbf{x}^{\prime}) = k(\mathbf{x}^{\prime},\mathbf{x})  \tag{2}

が成り立ち、\mathbf{x}\mathbf{x}^{\prime}の類似度を測る指標として用いられます。内積は、\mathbf{x}\mathbf{x}^{\prime}が同じときに大きな値をとり、直交していれば0ですので、確かに類似度を測る指標になっていそうです。

カーネル関数は、以下のような様々な考察から導出され、線形モデルがカーネル関数を用いて表現できることが確認できます。

特徴ベクトルを明示的に定義せずとも、一定の条件を満たしていればカーネル関数を設定することができます。例えばガウスカーネルは無限次元の内積ですが、実際の計算では無限の特徴ベクトルを扱うわけではなく、ガウスカーネルだけ計算すれば無限次元を扱ったのと同義になります。線形回帰や線形識別では、解析者が任意に多項式モデルやガウス基底を選択し、入力を適当な特徴ベクトルに変換していました。*1 一方カーネル法では無限次元の特徴ベクトルを使うわけですから、極めて表現能力が高いことが期待できます。

カーネル法の目次