機械学習の数式とそろそろ向き合いたいよね
というわけでシリーズ化していこうかと。
まずは、序章「機械学習のそもそもの概念」についてまとめます。
ご安心ください。本記事の内容はまだ数学ではありません。
対象読者
結局のところ、機械学習って何やねん!の民に向けて。
機械学習とは
一言でいうと「データに潜むパターンを見つけ出す」こと。
ややこしい言い方をすれば、計算機アルゴリズムを通じて、データの中の規則性を自動的に見つけ出し、さらにその規則性を使ってデータを異なるカテゴリに分類することです。
数字認識の例を挙げて
以下のような手書き文字の認識を例に挙げて考えてみましょう。
ここでいうベクトル x とは、28×28 の各数字のピクセル画像からなる、784 次元の実数値であることに注意。
やりたいこと
ベクトル x を入力として受け取り、それが 0~9 のどの数字を表すのかを出力する機械を作ること。
機械学習のアプローチ
入出力について
訓練集合(training set)と呼ぶ N 個の手書き数字の大きな集合
\lbrace {x}_{1}, ... , {x}_{N} \rbrace
画像 x のそれぞれに対して、あらかじめ人間が手で 1 つ 1 つの数字に対応するカテゴリを設定した目標ベクトル(target vector)t が対応する。
機械学習のアルゴリズムによって得られるのは関数 y(x) 。
→ 入力:数字の画像 x
出力:目標ベクトルと符号化の仕方が等しい出力ベクトル y
訓練データを用いて、関数 y(x) の詳細な形を求める段階は、訓練(training)段階または学習(learning)段階と呼ばれています。
学習を行うと
テスト集合(test set)= 新たな入力 に対してカテゴリを決めることができるようになります。
訓練時に使用したものとは異なる、新たな事例を分類する能力は汎化(generalization)と呼ばれます。
実際の応用
もともとの入力変数は前処理(preprocessing)によって新たな変数に変換されます。問題をより解きやすくするためです。この前処理の段階は特徴抽出(属性抽出 ; feature extraction)とも呼ばれます。
なお、新たなテストデータにも、訓練データと同様の前処理を行う必要があります。
数字認識の例では
数字画像の平行移動、拡大縮小によって、固定した大きさの箱に収まるように変換します。数字の場所と大きさを揃えることで、各数字クラスの多様性が大きく減少し、前処理後にクラスを識別するのが格段に易しくなるためです。
教師あり学習(supervised learning)
訓練データが入力ベクトルとそれに対応する目標ベクトルの事例で構成される場合に用います。以下、例。
-
クラス分類(classification)問題
各入力ベクトルを有限個の離散カテゴリの1つに割り当てる。 -
回帰(regression)
求める出力が1つないしそれ以上の連続変数であるような場合。
具体的には、反応物の濃度や温度・圧力などを入力とした、化学プラントにおける生成物の量の予測など。
教師なし学習(unsupervised learning)
訓練データが入力ベクトル x のみで、対応する目標値が存在しないパターン認識問題に用います。以下、例。
-
クラスタリング(clustering)
類似した事例のグループを見つける。 -
密度推定(density estimation)
入力空間におけるデータの分布を求める。
具体的には、視覚化(visualization)のために高次元のデータを2個あるいは3個の次元に射影するなどである。
強化学習(reinforcement learning)
ある与えられた状況下で、報酬を最大にするような適当な行動を見つける問題に用います。次の動作を繰り返します。
-
探査(exploration)
新しい種類の行動がどれくらい有効であるかを示す。 -
知識利用(exploration)
高い報酬が得られることがわかっている行動をとる。
参考文献
「パターン認識と機械学習 ベイズ理論による統計的予測」
C.M.ビショップ 著
元田 浩/栗田 多喜夫/樋口 知之/松本 裕治/村田 昇 監訳
また、本記事では大まかな概念のみ紹介したが、画像認識の詳しいソースコードは以下を参照されたい。
ゼロから作るDeep Learning