ITエンジニアのための機械学習理論入門メモ(序章と回帰分析)

ITエンジニアと機械学習理論入門という本を読んでいる。

機械学習の理論がとてもわかり易く書かれており、各理論にサンプルプログラムが付随している。

サンプルプログラムはPython2で書かれているが、基本はPython3でも動く(print文は治す必要があるが)。
ので、以前構築したPython3環境のJupyter Notebookで試している。

以下、自分用の雑なメモ。解釈間違ってるかも!

1章
機械学習とは、過去のデータを元にして未来の予測に役立つ「判断ルール」を導くもの

機械学習アルゴリズムは与えられたデータを元にして、何らかの判断ルールを生み出す。
ex) ロジスティック回帰は、数学的な手法としては数値を予測する回帰分析に含まれるが、一般には分類ルールを生み出すことを目的としている

分類:クラス判定を行うアルゴリズム
決定木、パーセプトロン、ロジスティック回帰
ex)不正なクラス、不正じゃないクラスを作り、クラス判定を行う
不正である確率20%

回帰分析:数値を予測するアルゴリズム
最尤推定、ベイズ推定
回帰分析では、与えられたデータがどのような関数から生み出されたかという関数関係を推測する
同じ課題に対して複数の手法を適用し、本質に近づく

クラスタリング:教師なしのグループ化を行うアルゴリズム
上記2つは教師あり学習、これは答えが与えられていない
大量のデータから人間がラベルをつけていくのは難しいため、類似性を基に10種類のグループに分けて分類する。この時の類似性を、新たなデータの判定に使える
それぞれのグループの特徴を確認していく
→特徴ベクトルを発見する手法としても使われる

パラメトリックモデルの3つのステップ
(1)パラメータを含むモデル(数式)を設定
(2)パラメータを評価する基準を定める
(3)最良の評価を与えるパラメータを決定

2章
最小二乗法:多項式の関数関係があるものと仮定し、多項式から得られる予測値と実際の観測データの誤差を最小にするように、多項式の係数を決定

計算される値と実測値を比較し、差の2乗を合計したものをこの推定における誤差と定義、二乗誤差と呼ばれる
この値が最小になるよう多項式の係数を決定する
数学的に言うと最小値問題

過程は、M次多項式の関係がある

データ数(N)よりもパラメータの個数(M)が多い場合、意味を成さない
誤差関数を最小にする条件に、M<N(M+1<=N)

統計モデル
何らかの現象について、統計学的な手法を用いて、それを説明、あるいは予測するモデル(数式)を作り出すこと
今回は、パラメトリックモデルと呼ばれる手法をつかう

パラメトリックモデルを定義する手順
1.パラメータを含むモデル(数式)を設定
→現象を説明・予測するモデルを作る、何らかの仮定をおいて数式の形を決める(M次多項式など)、係数が未知のパラメータであり、この値を変化させモデルをチューニングしていく
多項式の次数を増やすということは、探索する範囲を広げるということ
2.パラメータを評価する基準の定める
→最小二乗法では二乗誤差が最小になるもの、判断基準を決めるのが難しい
3.最良の評価を与えるパラメータを決定
→機械学習はトレーニングセットとして与えられたデータに基づき最適なパラメータを決定する仕組み
多項式の次数を上げる(パラメータを増やす)とトレーニングセットをより正確に再現できてしまう(オーバーフィッティング、過学習)
→仮説・検証をおこなう
トレーニングセットの他にテスト用のデータ(テストセット)を用意しておき、係数決定後にトレーニングセットとテストセット両方で検証、さらにクロスバリデーションなんか使う

未知のデータに対する予測能力をモデルの汎化能力と呼ぶ
テストセットの目的はモデルの汎化能力を検証すること
トレーニングセットに含まれるデータをテストセットに混ぜてはダメ

クロスバリデーション(交差検証):
データをパート1〜5に分けて、どれか1つをテストセットとして用いる手法、オーバーフィッティングが発生しない最適な次数Mを見つけ出すため
機械学習のために収集したデータを無駄なく利用し適切な検証を行うためにを行う
※学習結果・検証結果ともに5パターン得られる
3章
最尤推定法:
あるデータが得られる確率設定し、最良のパラメータを決定していく方法
ex)最小二乗法では多項式近似で得られた関数は誤差による散らばりの中心部分を表すと考えられており、次に得られるデータの予測値はその中心部分の値と答えれば、予測が大きくハズレる可能性はない
→このデータが持つ誤差(散らばり具合)の大きさは?
どの程度の範囲で予測が外れそうか
関数関係に加えてデータに含まれる誤差を併せて推定する

回帰分析ではデータの背後にある関数関係を推測する
より正確に未来を予測するにはどの程度の誤差を持つのかを含めて分析する

過程
M次多項式の関係があり、さらに標準偏差σの誤差が含まれている
観測点xにおける観測値tは、f(x)を中心としておよそf(x)±σの範囲に散らばる

μを中心としておよそμ±σの範囲で散らばる乱数は平均μ、分散σ^2の正規分布で表すことができる
→釣鐘型の確率で観測値tが散らばると考えられる
モデルはM次多項式と正規分布の数式
※正規分布もあくまで過程
それ以外にもt分布・ロジスティック分布、一様分布などがある

過程の決め方
あらゆる可能性にこだわっていては先に進めない
まず何か1つかs津を立てて結果を検証する
確実に計算を進められる手法を適用し、検証を行い有用性を判断
有用な結果を得られない理由を分析することも必要

最尤推定法とは
全ての観測点でデータが得られう確率 N(t | f(x), σ^2)とし、全ての観測点について合わせて考える
つまりトレーニングセットのデータが得られる確率Pは、それぞれの確率の積である
このようにトレーニングセットのデータが得られる確率をパラメータの関数とみなしたものを尤度関数と呼ぶ
確率P=尤度関数P

ex)過程として、観測されたデータ(トレーニングセット)は、最も発生確率が高いデータに違いない
→この仮説が正しいとして、計算される確率Pが最大になるようパラメータを決定する手法を最尤推定法と呼ぶ

数学的に、尤度関数の最大値問題

オーバーフィッティング
対象となるデータが得られる確率、すなわち尤度関数の値の変化みる
尤度関数は値が大きく変動するため、グラフを見やすくするよう対数値で計算

参考

ITエンジニアと機械学習理論入門

コメント

タイトルとURLをコピーしました