機械学習の概論|はじめてのパターン認識1章~2章 #1

f:id:lib-arts:20190107172430p:plain

機械学習の入門書としてですが、PRMLは少々ごつい本なので、『はじめてのパターン認識』はそこまで分量も多くなくざっと読むには良いのではと思います。レベル感としても理工系の大学3,4年向けくらいでそこまでハードルも高くないです。とはいえ細部の記述がいい加減だったり逆に不要なところを強調し過ぎたりなどもあり、うまく読み飛ばしができないと苦戦しているというお話も聞きます。
したがって、5回シリーズを通して『はじめてのパターン認識』の読み方の解説や諸々の補足ができればと考えています。

 

#1では、機械学習の概要ということで、1章〜2章の内容を取り扱います。
以下、目次になります。


1. 1章内容(はじめに)
1.1 パターン認識とは(1.1)
1.2 特徴の型(1.2)
1.3 特徴ベクトル空間と次元の呪い(1.3)
2. 2章内容(識別規則と学習法の概要)
2.1 識別規則と学習法の分類(2.1)
2.2 汎化能力(2.2)
3. まとめ&補足


1. 1章内容(はじめに)

『はじめてのパターン認識』の1章では、基本的な概念や言葉の整理を行ってくれています。冒頭部分でも言葉をいくつか整理してくれているのでまとめます。

◆ 用語整理
・識別/識別規則
-> 入力データ(Input)が何かを判断することを識別と言います。例えば、500円玉の重みや厚さなどの情報が与えられた時に、500円玉だと判断するということに相当します。また、識別規則はこの際の判断する規則(仕組み)のことです。

・特徴抽出
-> 識別のところで述べた入力(Input)を特徴量と言います。この特徴量を抽出することを特徴抽出と言います。例えば、実際の500円玉から重さや厚さを計測して数値化するなどが特徴抽出の例になります。

・学習
-> 識別のための規則をデータから作ることを学習と呼んでいます。具体的には、500円玉の重さと厚さの平均を計測しておき、入力(Input)の重さと厚さがその平均に近ければ500円玉だと認識するなどがこれに当てはまります。

また、1章の論旨としては、特徴量(X)とクラス(y)から識別規則を作るにあたっての周辺の言葉の整理を行ってくれています。規則の学習とはどういうイメージなのかについて注意しながら読むと良いのではと思います。


1.1 パターン認識とは(1.1)

 論旨としてはP.2の図1.1が理解できれば十分です。ここでは、冒頭部で解説していない用語について解説します。

・特徴量/特徴ベクトル
-> 特徴抽出のところでも述べましたが、500円玉においては重さや厚さが特徴を表す量ということで特徴量となります。特徴量は500円玉の例でも重さ、厚さ、色など様々あり複数の値を扱う必要があるため、ベクトルの形で表すことで、特徴ベクトルと呼ぶこともあります。

・学習データ
-> 学習データは特徴量(X)とクラス(y)のペアで与えることが多いです。規則を作るにあたって使用するデータのことになります。

・汎化能力
-> 汎化能力は学習データに基づいて生成された規則が、それ以外のデータにも適用できることを言います。


1.2 特徴の型(1.2)

特徴量について色々とまとまっています。

・定性的特徴(定性データ)/定量的特徴(定量データ)
・ダミー変数

重要なのは上記の二点です。尺度は紛らわしい割に理解するメリットはさほどないので無視しても大丈夫だと思います。まず一つ目の定性データ/定量データですが、定性データは質的変数とも言いますが、住所や単語など数字で表せないデータだと理解しておくと良いです。一方で、定量データは量的変数とも言いますが、気温や広告出稿料、家賃など数字で表せるデータだと理解しておくと良いです。
量的変数はそのまま取り扱うことができるケースが多いですが、質的変数はそのまま取り扱えないケースの方が多いので、ダミー変数を用いて数値化する必要があります。具体的には表1.2のようになりますが、実際は(カテゴリ数-1)個の変数しかいらない(全て0でも一つ表せる)ので、本の表記はあまりよくないかもしれません。

 

1.3 特徴ベクトル空間と次元の呪い(1.3)
特徴ベクトルで空間が作れることと、次元が大きくなると取り扱いが難しいということだけ抑えられていれば良いです。後半部分のd次元超立方体の話は全体論旨に影響ない一方で唐突に難しいので飛ばして大丈夫です。


2. 2章内容(識別規則と学習法の概要)

2章は機械学習の学習の基本的な仕組みを俯瞰しているので非常に重要な章になります。特に、P.9の図2.1の代表的な識別規則の構成法はこれだけで機械学習のほとんどを説明しており、秀逸な図だと思います。『はじめてのパターン認識』の読み方としては、図2.1とその他の章の対応付けで3章以降を読んでいくのが良いです。『全体⇔部分』の対応で物事を理解しようとすることで早く理解までたどり着くことができます。
2章全体の構成としては、2.1では教師あり学習/教師なし学習の話や識別規則の構成法についてまとまっています。2.2では、汎化能力ということで学習させた規則をそれ以外のケースで使用できるかについてまとまっています。

 

2.1 識別規則と学習法の分類(2.1)

2.1.1では識別規則の構成法についてまとまっています。図2.1の代表的な規則の構成法がこの本のハイライトになります。1冊を読み切るにあたって、この図を深く理解できるようになっているというのを目安に置くと良いと思います。それぞれの概要とそれ以後の章とのつながりとしては、(a)の事後確率による方法は3章でまとめられているベイズ系の話に繋がってきます。(b)の距離による方法では5章でまとめられている最近傍(NN; Nearest Neighbor)法や10章でまとめられているクラスタリングに繋がってきます。(c)の関数値による方法では、関数f(x)の値に基づいて予測を行う方法であり、6,7,8章の内容に繋がってきます。(d)の決定木は11章のランダムフォレストなどに繋がってきます。4章は(a)と(b)、9章は(b)に近いと思いますが、あくまで整理のためにまとめたので過度に対応付けない方が良いと思います。

2.1.2では教師付き(教師あり)学習、2.1.4では教師なし学習についてまとまっています。色々と書かれていますが、ざっくりと言えば教師あり学習は新しいサンプルに対する予測のために行うもの、教師なし学習はサンプル間の類似性を計算するものだと捉えておけばしばらくは問題ないかと思います。

2.1.3では回帰の概要について述べられています。

 

2.2 汎化能力(2.2)

汎化能力とは未知のデータに対する識別能力のことを指します。
2.2.1ではモデルの検証の仕方についてまとめられています。まず理解すべきなのが、再代入誤り率とホールドアウト誤り率です。

・再代入誤り率(resubstitution error)
-> 学習に用いたデータを使って評価した誤り率のことです。本の表記ではε(pL,pL)となっています。この誤り率の値を向上させることで、規則の学習が進んだとは言えるのですが、学習データに当てはまりすぎてしまう問題である過学習(overfitting)が生じてしまいます。したがって、学習にあたってのデバッグなどに使うのは良いですが、運用に当たっての精度の測定には向いていません。

・ホールドアウト誤り率(holdout error)
-> 学習に用いたデータではない検証用のデータを用いて測定した誤り率のことです。本の表記ではε(pL,pT)となっています。実運用にあたっての検証については基本的にはこのようにテストデータで検証を行います。

それぞれ上記のように捉えると良いです。基本的にはホールドアウト誤り率を用いて測定を行うのですが、テストデータをどのように用意するかでいくつか方法があり、交差確認法(cross validation)、一つ抜き法(leave-one-out)、ブートストラップ法(bootstrap)などについてまとめらています。基本的には交差検証法で良いと思いますが、ランダム抽出で7:3〜8:2くらいで5回ほど計算して平均を取るでも実用上は十分な気がします。(この辺はプロジェクトの背景によりますので、状況に合わせて判断するで良いと思います)

2.2.2は若干各論な気はするので初見の際は読み流しで大丈夫だと思います。

 

3. まとめ&補足

とにかく図2.1を抑えたいところです。それと、再代入誤り率とホールドアウト誤り率も掴んでおく方が良いと思います。
また、キーワードを抑えるための本として考えると良いので、太字になっているものは基本的に言葉の定義を確認し、覚えておくとよいと思います。