教師あり学習の問題設定とそれを解く手順
機械学習の主要なテーマの一つとして「教師あり学習」があります。これは、データと正解のペアからパターンを学習し、新たなデータの正解を当てることを目標とする研究テーマです。実際の応用例としては幅広く、例えば以下のようなものが挙げられます。
- 画像認識
- 顔認識、物体認識、手書き文字認識
- 音声認識
- 音声からテキストへの変換、話者の判別
- 迷惑メール判定
これらの技術の基礎は共通しています。つまり、背景にある理論を理解することで様々な分野に応用することが可能となります。
そこで本記事では、様々なモデル・手法を体系的に整理することを見据えて、教師あり学習について書いてみたいと思います。一見遠回りに見えますが、体系的に整理することで今話題の「ニューラルネットワーク」や「ディープラーニング」についても理解が深まります。
教師あり学習の問題設定
まずは教師あり学習の問題設定をできるだけ一般的な形で表します。問題設定自体は至ってシンプルです。
ノーテーション
:観測データが取りうる値の集合
:ラベルデータが取りうる値の集合
:訓練データ数
:個目の観測データ
:個目のラベルデータ
上記ノーテーションを用いて、既知データと未知データは以下のように書くことができます。
既知データ
:訓練データの集合
:新たな観測データ
未知データ
:のラベルデータ
教師あり学習の目的は、既知データから未知データを予測することです。
教師あり学習の問題設定はこれだけです。この時点では、確率もパラメータも出てこないことに注意しておきましょう。
具体例1(身長と体重)
身長から体重を予測する問題を考えたい場合、
:身長が取りうる値の集合
:体重が取りうる値の集合
とすればOKです。
このようにが連続である場合を、回帰と呼びます。
具体例2(手書き数字認識)
28×28ピクセルの画像(256階調グレースケール)からどの数字か(0〜9)を予測する問題を考えたい場合は以下のようにします。
このようにが離散である場合を、分類と呼びます。
問題を解く手順
以上で教師あり学習の問題設定を表すことができました。それではこの問題をどのように解けば良いでしょうか?問題を解く手順は以下の3ステップに分けることができます。
- モデル化
- 学習
- 推論
ここでも各ステップをできるだけ一般的な形で表してみます。
モデル化
モデル化とは、との関係を数式で表現することです。ここでは特にパラメータで特徴づけられる確率分布を仮定することにし、これを確率モデルと呼ぶことにします。以降モデル化として確率モデルのみを考えます。
確率モデルによるモデル化は以下の2つに分けることができます。
- 識別モデル
- 生成モデル
識別モデル
識別モデルは以下のように表されます。
つまり、観測データが与えられたもとでのラベルデータの確率分布をモデル化したものが識別モデルです。
生成モデル
生成モデルは以下のように表されます。
つまり、ラベルデータが与えられたもとでの観測データの確率分布をモデル化したものが生成モデルです。
学習
モデル化ができたら、次は学習です。学習とは、訓練データからモデルのパラメータを計算することです。学習は以下の3つに分けることができます。
最尤推定
最尤推定は、訓練データを生成する尤もらしいパラメータを推定値とします。推定値をとすると、以下のように書くことができます。
ここで、識別モデルの場合を書きましたが、生成モデルの場合はとを逆にするだけです。以降のMAP推定、ベイズ推定も同様に識別モデルの場合のみを書きます。
推論
最後に仮定したモデルと学習したパラメータを用いて新たな観測データのラベルデータを推論します。以下の場合に分けて考えます。
識別モデルで点推定の場合
識別モデルではの確率分布を直接計算できます。また点推定のため、求めたパラメータを用いれば良いので、とてもシンプルです。
生成モデルで点推定の場合
生成モデルの場合、の確率分布は直接計算できないので、ベイズの定理を用いて事後確率を計算します。点推定で求めたパラメータはそのまま代入します。
まとめ
以上で教師あり学習の問題設定とそれを解く手順の整理ができました。本記事で整理した枠組みから捉えると、教師あり学習の各種手法が何をしているのか見通しが良くなります。次回はこの枠組みを用いて「ニューラルネットワーク」について書いてみたいと思います。