【連載】

機械の目が見たセカイ -コンピュータビジョンがつくるミライ

15 コンピュータビジョン分野における機械学習(3) - 識別器

15/35

今回は、顔検出、人検出などで用いる識別器についてもう少し詳しく解説したいと思います。ニューラルネットワーク(Neural Network)、サポートベクターマシーン(SVM:Support Vector Machine)、ランダムフォレト(Random Forest、またはRandomized Trees)、AdaBoostなどがあります。今回は、SVM、Random Forest、AdaBoostについてご紹介します。ニューラルネットワークは、大流行中のDeep Learningで用いられています。Deep Learningについては、次回解説しようと思います。

SVM

2クラス識別では、特徴量ベクトルxから推定値yを求める問題として解くことになります。SVM(正確には線形SVM)では、y=wTxbとなります。識別境界のパラメータベクトルwTとバイアスbを学習時に求め、学習済みのwTbを用いて未知のデータの推定値yを求めます。そして、推定値yが閾値以上であれば顔、閾値未満であれば顔以外といった具合に判定します。

ここで、パラメータベクトルwTとバイアスbをどのように求めるかが問題になるのですが、SVMではマージン最大化という考え方を用います。具体的には図1のように、学習データの中で他クラスに最も近いサンプル(サポートベクトル)を基準とし、サポートベクトルと識別境界の距離(マージン)が最大となるようにwTbを求めます。

今回は、最もシンプルな線形識別について説明しましたが、SVMはカーネルトリックと呼ばれるテクニックにより非線形な識別器を構成することもできます。

図1 SVMによる2クラス識別

AdaBoost

AdaBoostは、N個の弱識別器(h1(x), h2(x), h3(x), …, hN(x))の重み付き多数決により、最終的な推定結果を得る手法です(図2)。各弱識別器は、たとえば、特徴量ベクトルX=(x1, x2, …, xN)の特徴量x5のみを用いて、x5>αを満たすか否かを判定する関数です。AdaBoostは、各弱識別器が苦手なデータを補完し合い、全体として高精度な識別器を構成するという仕組みです。「三人寄れば文殊の知恵」の機械学習版ですね。

図2 AdaBoostによる2クラス識別

Random Forest

Random Forestは、複数の決定木を用いて、識別する手法です。Random Forestの処理は、「学習データから、ランダムサンプリングによりB組のサブサンプルを生成し、そのサブサンプルを用いてB個の決定木を生成する」、「特徴量のうちm個をランダムに選択し、選択された特徴量のうち、学習データを最も良く分類できる特徴量とその閾値を求める」というように、学習時にランダムな処理が用いられるためRandom Forestと呼ばれています。

Random Forestは、図3の例に示すように、x5>αを満たすかまず判定し、次にx3>βを、といった具合に各特徴量の値と閾値をもとに決定木を辿っていき、各決定木ごとに顔か顔以外かを判定します。そして、各決定木の推定結果の多数決により最終的な結果を得ます。

図3 Random Forestによる2クラス識別

SVM、AdaBoost、Random Forestのどれを使えば良いの? という疑問を持たれる方は少なくないかと思います。現時点ではこれを使えば良いというデファクトスタンダードはありません。自分が解こうとしている問題には、どの識別器が適していそうかを考え、複数の識別器を試してみると良いと思います(識別器のパラメータも変えながら)。ちなみに、筆者は、SVM、Random Forest、次回解説予定のDeep Learningを良く用います。

どの識別器を用いるかよりも、どのような特徴量を用いるかの方がより重要です。特徴量空間でそれぞれのクラスが分離できていないと、どの識別器を用いても精度良く識別することはできません。解きたい問題に合った特徴量を選択、設計するようにしましょう。

著者プロフィール

樋口未来(ひぐち・みらい)
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。

現在は、日立製作所を退職し、東京大学大学院博士課程に在学中。一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。また、大学院での研究の傍ら、フリーランスとしてコンピュータビジョン技術の研究開発に従事している。

専門:コンピュータビジョン、機械学習

15/35

インデックス

連載目次
第35回 領域分割(2) - Mean Shift法を用いたImage Segmentation
第34回 領域分割(1) - 概要編
第33回 見えないものを観る(3) - 目に見えない光「赤外線」を観る
第32回 見えないものを観る(2) - 絵画の下書きを観る
第31回 見えないものを観る(1) - 映像から音を復元する
第30回 動く人・物を追跡する(4) - OpenCVのトラッキング手法(後編)
第29回 動く人・物を追跡する(3) - OpenCVのトラッキング手法(中編)
第28回 動く人・物を追跡する(2) - OpenCVのトラッキング手法(前編)
第27回 動く人・物を追跡する(1) - OpenCVによるトラッキング
第26回 インターネット上の画像群からTime-lapse映像を自動生成する手法の概要
第25回 一人称視点(3) - Social Saliency
第24回 一人称視点(2) - Social Interaction
第23回 一人称視点(1) - 概要
第22回 行動認識(3) - Two-stream ConvNets
第21回 行動認識(2) - 動きの特徴量(HOF、MBH)
第20回 行動認識(1) - Dense Trajectories
第19回 視線計測(3) - カメラのみを用いた視線計測
第18回 視線計測(2) - 近赤外の点光源を用いた視線計測
第17回 視線計測(1) - 導入編
第16回 コンピュータビジョン分野における機械学習(4) - Deep Learning
第15回 コンピュータビジョン分野における機械学習(3) - 識別器
第14回 コンピュータビジョン分野における機械学習(2) - 顔検出・人検出
第13回 コンピュータビジョン分野における機械学習(1) - 導入編
第12回 コンピュータビジョン分野の市場分析(1) - 自動車編
第11回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(2)
第10回 カメラを用いた3次元計測(4) - Structure from Motion
第9回 カメラを用いた3次元計測(3) - サブピクセル推定
第8回 カメラを用いた3次元計測(2) - ステレオカメラ
第7回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(1)
第6回 カメラを用いた3次元計測(1)
第5回 意外と知らないカメラキャリブレーション
第4回 ハードウェアの基礎知識
第3回 コンピュータビジョンの要素技術と応用範囲(後編)
第2回 コンピュータビジョンの要素技術と応用範囲(前編)
第1回 普及期に入ったコンピュータビジョン

もっと見る



人気記事

一覧

イチオシ記事

新着記事