5.3 フィルタリングと特徴抽出

前章では、データを多項式やスプラインで変換する方法を学びました。このセクションでは、その考え方をさらに一般化します。「生のデータ」をそのまま使うのではなく、「意味のある特徴」に変換してから学習させる——これがフィルタリングと特徴抽出の核心です。

ウェーブレット変換やニューラルネットワークなど、現代の機械学習で広く使われる手法の基盤となる考え方を見ていきましょう。

なぜ「生のデータ」では不十分なのか

画像認識を考えてみましょう。

100×100ピクセルの画像があるとします。これは10,000個の数値(各ピクセルの明るさ)として表現できます。でも、この10,000個の数値をそのまま使って「猫かどうか」を判定するのは、効率が悪いと思いませんか?

人間が画像を見るとき、個々のピクセルを見ているわけではありません。「輪郭」「模様」「形」といった特徴を捉えています。

機械学習でも同じ発想が使えます。生のデータ $x$ をそのまま使うのではなく、意味のある特徴 $x^*$ に変換してから学習させる。これがフィルタリングの基本的なアイデアです。

生データから特徴抽出への変換を示すアニメーション

基底行列による線形フィルタリング

フィルタリングを数学的に表現してみましょう。

例えば、5つの数値で表されるデータ $x$ があるとします。これを3つの新しい数値 $x^*$ に変換したい。最もシンプルな方法は、行列を使った変換です。

行列とは、数を長方形に並べたものです。ここでは $H$ という行列を使います。$H$ の各列は「どの入力をどれだけ重視するか」を表すパターン——つまりフィルターです。

例えば、画像処理でよく使われる「エッジ検出フィルター」は、隣り合うピクセルの差を強調します。明るい部分と暗い部分の境目(輪郭)を見つけるフィルターですね。

行列による線形変換の視覚化

重要なのは、変換後の数値の個数は自由に決められるということです。

前章で学んだ多項式やスプラインも、実はこの「行列による変換」の一種です。

$$\mathbf{x}^* = \mathbf{H}^T \mathbf{x}$$

ここで、

非線形フィルタリングへの拡張

しかし、行列を使った変換だけでは限界があります。

例えば、「この部分に角があるかどうか」「急激な変化があるかどうか」といった特徴は、単純な足し算とかけ算の組み合わせでは捉えにくいのです。そこで登場するのが非線形フィルタリングです。

一般的な形で書くと、変換関数 $g$ を使って $x^* = g(x)$ と表せます。

この $g$ はどんな関数でも良いのですが、実用上重要なのは以下の2つです:

  1. ウェーブレット変換: 信号や画像の「局所的な変化」を捉える
  2. ニューラルネットワーク: データから自動的に有用な特徴を学習する
非線形変換による特徴空間の歪みを示すアニメーション

特にニューラルネットワークは、どんな特徴が有用かをデータ自体から学習できる点で革命的でした。人間が「どんな特徴を使うか」を設計する必要がなくなったのです。

$$\mathbf{x}^* = g(\mathbf{x})$$

ここで、$g$ は非線形変換関数です。例として、ウェーブレット変換やニューラルネットワークなどがあります。

ウェーブレット変換の直感

ウェーブレットという名前は「小さな波」を意味します。

信号を分析する古典的な方法に「フーリエ変換」があります。これは「信号全体を通じてどんな周波数が含まれるか」を調べる手法です。一方、ウェーブレット変換は「どの位置に、どんな変化があるか」を捉えます。

なぜこの違いが重要なのでしょうか?

画像を考えてみてください。猫の写真で重要なのは「滑らかな毛並み」ではなく、「目や耳の輪郭」——つまりエッジです。ウェーブレットは、こうした局所的な急激な変化(ジャンプやエッジ)を効率的に検出できます。

ウェーブレットによるエッジ検出を示すアニメーション

本書では、ウェーブレット変換でまず特徴を抽出し、その後ニューラルネットワークで分類するアプローチが紹介されています。2つの手法を組み合わせることで、お互いの長所を活かせるのです。

ドメイン知識の重要性

ここまで、データを自動的に変換する方法を見てきました。でも、忘れてはいけないことがあります。

ドメイン知識——つまり、その分野に特有の専門知識——は、依然として強力な武器です。

例えば、音声認識では、人間の聴覚特性に基づいて設計された特徴量が長年使われてきました。生の音声波形よりも、「人間が聞き分けやすい違い」を強調した表現の方が、機械にとっても学習しやすいのです。

医療画像診断では、放射線科医の知見を取り入れた前処理が精度を大きく向上させます。

ドメイン知識による特徴設計の効果を示すアニメーション

ニューラルネットワークが「特徴を自動学習できる」とはいえ、良い特徴を与えれば学習はより効率的になります。データと向き合い、その構造を理解することの価値は、今も変わりません。

まとめ

このセクションで学んだことを振り返りましょう。

  1. フィルタリングの本質: 生データ $x$ を、より意味のある特徴 $x^*$ に変換する
  2. 線形フィルタリング: 行列 $H$ を使った変換 $x^* = H^T x$
  3. 非線形フィルタリング: より複雑な関数 $g$ による変換 $x^* = g(x)$
  4. ウェーブレット: 局所的な変化(エッジ)を捉える変換
  5. ニューラルネットワーク: データから特徴を自動学習
  6. ドメイン知識: 適切な特徴設計で学習効率を向上
フィルタリングから学習までの全体フローを示すアニメーション

フィルタリングと特徴抽出は、機械学習の「入り口」を担う重要なステップです。データが学習アルゴリズムに入る前に、適切な形に整えておく——これだけで、より少ないデータで、より高い精度を達成できるようになります。

次章では、「カーネル法」という少し魔法のようなテクニックを学びます。特徴を明示的に計算しなくても、高次元空間での類似度を効率よく求める方法です。