1. 概要
特徴抽出(Feature extraction)とは,元の観測データの特徴ベクトルから,変換処理や選択処理を経て予測に有用な特徴をつくったり,あるいは可視化されてデバッグしやすいプリミティブな特徴を抽出することを指す.
$N$個の$d$次元特徴ベクトルから構成される学習用データセットに対して,元の$d$次元空間の分布を損なわずに低次元空間でそれをなるべく誤差が少なく再現/再構成できる特徴ベクトルに線形・非線形写像を学習して低次元部分空間上へ射影したりたり,特定の有用な次元の特徴だけ「特徴選択」したりすることで(圧縮された低次元ベクトルとして)特徴抽出することが多い.
画像処理・画像認識の界隈分野では(手作り)Hand-craftedに設計された「画像特徴ベクトル(記述子)」を抽出することは「特徴記述子の計算」と呼ばれる.SIFT keypoint からのSIFT descriptorを計算したり,画像グリッドの各セルにおいてのHOG記述子の計算など).ただし,これらは手作りの特徴なので,特徴抽出したわけでない.
一方,その画像上の特定領域から計算した(局所)記述子のベクトル(SIFT記述子,HOG記述子)から,次元削減などを通じて特徴抽出することはある.たとえば,(著者もかつて博士課程で行っていたように)人物ROI領域内で計算したHOG特徴量を連結した人物領域全体を表現する特徴ベクトルに対して,データセット全体からPCAなどの次元削減手法を用いて,低次元に圧縮したベクトルを特徴抽出する.
機械学習を用いるコンピュータサイエンス全般では,前者の「データセット全体のデータ構造を用いた写像の獲得」という機械学習による特徴の圧縮作業の「次元削減」を特徴抽出,あるいはその一部を次元削減と呼ぶ (※ 特徴抽出は次元削減により行うとは限らない点に注意).
2. Feature Extraction の分類
以下の3つのサブカテゴリーに特徴抽出の手法を分類して,各節でそれぞれ概要のみ紹介したい:
- 1. 線形次元削減 :昔ながらの線形の統計的な線形部分空間への射影による次元削減手法(PCA, ICAや LDA, NMFなど).
- 2. 非線形次元削減 :多様体学習や1の非線形版アルゴリズムなど
- 3. クラスタリングや辞書化・特徴集約など
2.1 線形次元削減
1の「線形次元削減」は,PCAに代表されるように,データ中心化済みのデータサンプル群から,固有値分解など元の特徴ベクトル空間より少数の次元で元の空間のサンプルを再構成できるような空間に射影を行うような「生成モデル的」で「行列分解的」アプローチである.PCAのように「特徴次元同士相関情報からそれらの無相関化を行うことで,各特徴(変数)の独立性をあげたり,少数の特徴のみへ元のデータセットの情報を圧縮させることを狙う」手法が多い.
2.2 線形次元削減
「非線形次元削減」では,射影後の空間での線型性を取り去ることで,非線形な各手法で1よりも更に低次元な空間に射影を行うことを狙う.その際に,「元の高次元の特徴ベクトルが「次元削減後の低次元空間では低次元の多様体 (manifold) に埋め込み可能である」と仮定することで,学習データサンプル群をそのまま多様体の形状とみなし,低次元空間側へunroll(展開)して,以降は元の次元での分布と同じ距離感を持った低次元多様体上にて,低次元ベクトルとしてサンプルを捉えることができる.
2.3 その他,クラスタリングや辞書化など
上記の2つ以外に,クラスタリング (k-meansやGMMなど) を用いた特徴ベクトルの辞書化・特徴集約(例:bag-of-visual-wordsやFisher Vectorなど) が,特徴ベクトル抽出の手法として挙げられる.クラスタリングによるクラスター中心(centroid)を仮のクラスとみなして発見して,もとの特徴ベクトル群を識別クラス化する.またk-meansで辞書化したものをワードとみなし,ワードの頻度をベクトル化するBag-of-wordsによる辞書ベースの頻度カウント手法も,この系統に分類できる.
3. ディープラーニング時代の,特徴抽出や次元削減
前節までの通り,Deep Learning流行以前は,特徴ベクトルのみを用いて教師無し学習によりそのデータから(意味のある,予測性能が高い)特徴を抽出することが主流であった.すなわち,「特徴出処理」そのものが単体のモジュールとして存在して,予測モデルとは切り離して独立に学習する構成が,以前は標準的な機械学習システムの設計であった.
それがDeep Neural Network時代に入ると,データ・ドリブンに「特徴抽出ネットワーク」と「予測ネットワーク」を同時にEnd-to-Endで学習するのが普通となったので,Deep以前よく頼っていた線形次元削減手法などあまり使わなくなった.低次元表現への射影や,低次元表現からの復元は,AutoEncoder的なネットワーク全体のEncoder-Decoder構造や,ResNetブロック内のボトルネック構造などを通じて,一緒くたに学習されることも多い.つまりは,ディープラーニングだと学習中に特徴抽出Encoderやデータ復元Decoderが,低次元の中間表現も同時につくってくれるわけである.
※ ただし,ここ数年ではself-supervisedやunsupervised学習も発展しており,教師無しでデータセットだけからモデルを学習することも多い
一方近年の認識ネットワークでは,オプティカルフロー推定CNN結果のフロー場や,人物姿勢推定CNN結果のボーンのように,「中間的な特徴情報」を,認識ネットワークの入力に用いることも近年は多い.そして,その入力中間特徴を先に推定するためのCNNの入力は「生画像」である.よって,HOGやSIFTは使わず,これらのCNNが画像特徴抽出の機能を果たしているので,データ・ドリブンな学習ベースのCNNによる画像特徴抽出が主流になっていると言える.
画像入力ではないが,音響処理などの分野で短時間フーリエ変換したスペクトログラムなどを入力とする際に伝統的に使われてきた人間も知覚しやすい特徴までは先にHand-crafted特徴抽出を行い,そのあとDNNにさらなるEncodingをお任せするという設計方針も,音声音響分野だと昨今では当たり前となっている(もちろん,WaveNetのように,生の音波形を,いきなり入力したり生成したりすることもある).
DNNのEnd-to-End学習では,ネットワーク中のどこまでが特徴抽出に相当してどこからが予測器に相当するかは厳密には区別しづらい.
特にオートエンコーダを技術的基盤とする,Encode-Decoder構造のディープニューラルネットワークでは,中間のbottleneck層の表現$\bm{z}$の次元は入力よりかなり低次元空間に圧縮される.ただ,Encoder-Decoderでは,教師ラベルを条件的クラスとして使いながら,クラス識別も同時に行ったりもするので,その場合は古典的な教師なし学習の次元削減とは様相が違う点に注意.また,1×1 畳み込みをで,部分的に次元削減することも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.