特徴抽出 (Feature extraction)

0

1 概要

特徴抽出(Feature extraction)とは,元の観測データの特徴ベクトルから,変換処理や選択処理を経て予測に有用な特徴をつくったり,あるいは可視化されてデバッグしやすいプリミティブな特徴を抽出することを指す.

$N$個の$d$次元特徴ベクトルから構成される学習用データセットに対して,元の$d$次元空間の分布を損なわずに低次元空間でそれをなるべく誤差が少なく再現/再構成できる特徴ベクトルに線形非線形写像を学習して低次元部分空間上へ射影したりたり,特定の有用な次元の特徴だけ「特徴選択」したりすることで(圧縮された低次元ベクトルとして)特徴抽出することが多い.

画像処理・画像認識の界隈分野でHand-craftedに設計された特徴を検出・抽出することも「特徴抽出」と呼ばれる(エッジ検出やSIFT keypointの検出など).これらは,我々の視覚や知覚に沿った特徴がそのまま画像上に出てくることもあり,デバッグしやすい画像認識システムにもしやすく,かつそれらのプリミティブ画像特徴は伝統的に画像認識にも有用なので,特徴として抽出されることが多い.

機械学習を用いるコンピュータサイエンス全般では,前者の「データセット全体のデータ構造を用いた写像の獲得」という機械学習による特徴の圧縮作業の「次元削減」を特徴抽出,あるいはその一部を次元削減と呼ぶ (※ 特徴抽出は次元削減により行うとは限らない点に注意).

2 特徴抽出の分類

このサイトでは,以下の3つのサブカテゴリーに分割して,典型的な特徴抽出法を,各記事で個別に紹介する:

  • 1. 線形次元削減 :昔ながらの線形の統計的な線形部分空間への射影による次元削減手法(PCA, ICAや LDA, NMFなど).
  • 2. 非線形次元削減 (多様体学習や1の非線形版アルゴリズムなど)
  • 3. 画像特徴検出:画像からのプリミティブ的特徴量やハンドメイド特徴量を抽出する.(コーナー/エッジの検出,局所キーポイントの検出,オプティカルフローの計算など)

1の線形次元削減は,PCAに代表されるように,データ中心化済みのデータサンプル群から,固有値分解など元の特徴ベクトル空間より少数の次元で元の空間のサンプルを再構成できるような空間に射影を行うような「生成モデル的」で「行列分解的」アプローチである.PCAのように「特徴次元同士相関情報からそれらの無相関化を行うことで,各特徴(変数)の独立性をあげたり,少数の特徴のみへ元のデータセットの情報を圧縮させることを狙う」手法が多い.

2の非線形手法では,射影後の空間での線型性を取り去ることで,非線形な各手法で1よりも更に低次元な空間に射影を行うことを狙う.元の高次元の特徴ベクトルが,次元削減後の低次元空間では低次元の多様体(manifold)に埋め込み可能と仮定することで,学習データサンプル群をそのまま多様体の形状とみなし,低次元空間側へunroll(展開)して,以降は元の次元での分布と同じ距離感を持った低次元多様体上にて,低次元ベクトルとしてサンプルを捉えることができる.

3は画像から各種のフィルターや最近だと学習ずみCNNなどを用いて,人間の知覚するプリミティブに近い特徴的要素(エッジやコーナー,オプティカルフローや線分など)を抽出してくる手法である.CNN以前の最も新しい物体候補検出手法で境界線(boundary)が特徴量で用いられていたり,近年のアクション識別ネットワークではOptical Flowを入力にしたりするなど,現在でもこれらの伝統的画像特徴は「認識に必要な情報のみ特徴として抽出されたもの」とみなされて,重宝されている.また,さらに古典的な画像の2値化処理なども,文字やスケッチなどの人間が書く「2色構成のテキスト・図画の画像」では引き続き有効な前処理および特徴であるも言える.

上記3つ以外でも,クラスタリング(k-meansやGMMなど)を用いた特徴ベクトルの辞書化(例:bag-of-visual-words)や,トピックモデルによるトピック混合モデル化なども,特徴抽出次元削減的要素を含む.しかし,これらは特徴抽出/次元削減の用途はむしろ応用で,本来は直接クラスタリング/トピックモデル結果から予測を推定する目的のアルゴリズム群である.これを踏まえて,(多くの機械学習テキスト同様に)本サイトでも,上記3つを純粋な特徴抽出手法として分類した.(クラスタリング,確率混合モデルなどの記事でも,特徴抽出としての活用と,直接予測を行う活用とを整理して紹介する)

3 Deep Learning時代の特徴抽出や次元削減

前節までの通り,Deep Learning流行以前は,特徴ベクトルのみを用いて教師無し学習によりそのデータから(意味のある,予測性能が高い)特徴を抽出することが主流であった.すなわち,特徴抽出処理そのものが単体でモジュールとして存在して,予測モデルとは切り離して独立に学習することが機械学習・パターン認識界隈では標準的なシステム設計であった.

それがDeep Neural Network時代に入ると,データ・ドリブンに特徴と予測器を同時にEnd-to-Endで学習するのが普通となり,Deep以前の次元削減手法はあまり使わないことが多い.その後の低次元空間への射影はEnd-to-Endで,教師あり学習の一部として特徴抽出も一緒くたに行われる.(※ただし,ここ数年ではself-supervisedやunsupervised学習も発展しており,教師無しでデータセットだけからモデルを学習することも多い)

一方,Optical Flowやエッジ画像,人物姿勢推定結果のような「一旦中間的な(画像)特徴抽出した結果」をネットワークの入力に用いることは多く,画像特徴抽出器自体もNeural Net化されデータ・ドリブンな学習ベースのものが主流になっている.画像ではないが短時間フーリエ変換したスペクトログラムなど,他分野でも伝統的に使われてきた人間も近くしやすい特徴までは抽出し,そのあとはDeep neural networkにお任せという設計方針が昨今では当たり前となっている.

Deep NeuralネットワークのEnd-to-End学習では,ネットワーク中のどこまでが特徴抽出に相当してどこからが予測器に相当するかは厳密には区別しづらいモデルなので,特徴抽出や次元削減の機能だけを切り出してそこだけ論じることは少ない.もといAuto-encoderを技術的基盤とする「Encode-Decoder」構造では,中間のbottleneck層で特徴ベクトル的な次元は一度低くなり情報は低次元空間に圧縮される.(教師ラベルを使いながら行うので,古典的な次元削減が教師なし学習で行われていたのとは様相が違う点に注意).また,1×1convolutionなどで,部分的に次元削減することもDeep Networkのバックボーン構造ではよく行われる.

4 まとめ

 画像を用いたパターン認識でよく使われる「特徴抽出」について ,(1) 特徴ベクトルの次元削減(線形および非線形),(2) プリミティブな画像特徴の抽出(エッジや線にフローなどの抽出) という2分類を元に概要を述べた.各分類の詳細は,別の記事に分けているのでそちらを参考にされたい.

また,End-to-End学習になっているDeep Learningでは,特徴抽出部分だけを明確にモジュールとして分離しなくなる一方で,データ・ドリブンでプリミティブ特徴の抽出モデルを学習したり,高速化・モデルパラメータ数削減の目的で次元削減はNeural Network内でもよく行われているという話に触れた.

References

  • “Machine Learning: An Algorithmic Perspective, Second Edition”, Stephen Marsland, Chapman and Hall/CRC ,2014.

外部リンク

0