よしだのブログ

サブタイトルはありません。

勉強メモ - パターン認識 - その1

ども!ご無沙汰しております。最近、機械学習の勉強をはじめました。その最初の入口として、パターン認識を勉強しています。今回は勉強メモを公開しようと思います。なお、裏テーマは数学の分からないエンジニアでもわかる機械学習です。

勉強中なので、間違いがあるかもしれませんので、他の情報と照らしあわせてご覧いただければ幸いです。また、間違いを見つけた場合は是非ご指摘ください!

パターン認識

パターン認識とは、有象無象の入力データを、あらかじめ定められた分類に振り分ける処理を指します。パターン認識の取り扱う課題は、分類を識別する基準が明確にはわからなかったり、時間や対象とともに変化したりするケースを取り扱っています。

具体的な例としては、参考書籍にもあるような音声認識システムや手書き文字認識システムです。人が聞けば簡単に識別できますが、コンピューターにやらせようとした時に、音の高低なのか、波形なのか、ゆっくり喋った時や違う人が喋った場合など、パラメータや閾値を簡単に定めることができません。

パラメータの選定は人間が行う必要があり、課題をとりまくドメイン知識に依存し、簡単に選定する方法はありません。一方で、パターン認識の分野では、識別の精度を評価する方法を用意しており、トライ&エラーが可能です。

パターン認識のアルゴリズムが解決してくれるのは、閾値の決定です。できるだけ誤認識を少なくする閾値を決定する手助けをしてくれます。

用語

クラス

パターン認識において、任意の入力データを分類したい結果のことを指します。例えば、天気予報の場合、クラスは「晴れ」「雨」「曇」などを指し、入力データは、湿度や風向、気温、季節、地域、海中温度、雲の分布などを指します。

特徴ベクトル

パターン認識においては、全てのデータをベクトルにして扱います。データの特徴を端的に示すパラメータを、ベクトルの要素として選択し、正規化した上でベクトルとします。このデータのことを特徴ベクトルと呼びます。

プロトタイプ

クラスの代表値として選択されるデータベクトルのこと。

線型分離可能

複数のクラスを一本の直線(もしくは超平面)で分離できることを指す。

Nearest Neighbor 法 (NN法、最近傍法)

概要

クラスに属する学習データのなかから、そのクラスを代表するデータを予め1つだけ選定しておきます(=プロトタイプ)。識別対象のデータである特徴ベクトルと、全てのクラスのプロタイプの距離を計算し、最も近いものをそのデータのクラスとして識別結果を出力します。距離の近さは主にユークリッド距離で図ります。

メリット

  • 簡単
  • 保持しておかないといけない、元データ(この場合プロトタイプ)が少なくて済む

デメリット

線型分離可能な場合にのみ(つまり、グラフにした時一本の直線で分割できる場合にのみ)、適用できます。しかし、一般にやってみないと線型分離可能かどうかはわかりません。

特徴

プロトタイプの位置によって、クラスを区分する超平面の位置が変わる(=識別結果が変わる)ため、プロトタイプの選定が最も重要です。最も単純な選定方法としては、クラスに属する学習データの重心をプロトタイプとする方法ですが、データが散っていたりすると、重心が一部のデータから大きく離れるため誤認識の元になります。

このプロトタイプの選定方法を学習データを利用することで、精度を上げる方法が「学習」であり、具体的なアルゴリズムがパーセプトロンやSVMです。

続くかも

  • パーセプトロン
  • 区分的線型識別関数
  • k-NN法
  • Widrow-Hoff(ウィドロウ・ホフ)の学習規則
  • SVM
  • ニューラルネットワーク

フリーソフトでつくる音声認識システム - パターン認識・機械学習の初歩から対話システムまで

フリーソフトでつくる音声認識システム - パターン認識・機械学習の初歩から対話システムまで

わかりやすいパターン認識

わかりやすいパターン認識