What
Chainerを利用して機械学習を学ぶにあたり、私自身が、気がついた点、リサーチした内容をまとめる記事になります。今回は、機械学習に必要な数学を抜粋して勉強します。
私の理解に基づいて記述しているため、間違っている場合があります。間違いは都度修正するつもりです、ご容赦ください。
Content
機械学習とは
お決まりのなんぞや?って話ですね。 コンピューターを使ったパターンや規則のを見つけ出すことなんですね。人間では処理しきれない複雑なパターンや、規則についてコンピュータに解かせるという手法です。決して、コンピューターに無鉄砲なアウトプットを求めるわけではないみたいです。
3.1. 機械学習とは
機械学習は、与えられたデータから、未知のデータに対しても当てはまる規則やパターンを抽出したり、それらを元に未知のデータを分類したり、予測したりする手法を研究する学術領域です。 機械学習は様々な技術に応用されており、例えば画像認識、音声認識、文書分類、医療診断、迷惑メール検知、商品推薦など、幅広い分野で重要な役割を果たしています。
教師あり学習
機械学習の代表的な問題設定として、教師あり学習 (supervised learning) というものがあります。 これは、問題に対して予め答えを用意しておき、予想された答えと実際の答えの違いが小さくなるように訓練を行う方法です。
教師あり学習では答え合わせが必要なんですね。答えを誰もしらないような問題を解くにはまだ足りないと思っていいのか。
この図は、tとxの関係を示す、データ点の集合を表している。例えば、上の図に対して、近似線を引くとき、その精度が良ければ、予測精度が高いことを機械学習において汎化性能が高いと表現する。また、予測するに使うツール(例では近似線)をモデルと呼ぶ。テキストでは
パラメータを使って何らかの計算を行うことで、与えられたデータの特徴や関係性を表すもの
と表現している。
###目的関数
コンピュータに良いパラメータを自動的に見つけてもらうためには、何が良いパラメータなのかという指標を定義する必要があります。 そのような指標を表す関数を目的関数 (objective function) と呼びます。
変数y,xに対して y = ax + bを計算するとき。機械学習でa, bを精度良く決定したいとする。
ここで、𝑥 を入力変数 (input variable)、𝑦 を出力変数 (output variable) と呼びます。 今、任意の 1 点の 𝑥 座標の値を式に与えたとします。 このとき、式に与えた具体的な 𝑥 の値を、入力値 (input value) と呼びます。 そして、パラメータ a と b を用いて計算を行った結果得られる具体的な y の値を、予測値 (predicted value) と呼びます。 このとき、直線の式ではなく、実際の赤い点の持つ 𝑡 の値は、この式が予測したい目標の値なので、目標値 (target value) と呼びます。
目的関数は多くの場合、モデルの予測値と目標値を受け取って、その間の差異を測って返すような関数です。 差異は小さければ小さいほどモデルの予測が当たっていることを意味するため、この場合は目的関数の値を最小にするパラメータを見つけ出すのが目的になります。
目的値と予測値の数字の値を小さくするなら目的関数はそんな難しくなさそうだけど、対象が画像とか、音声とか人の感覚で差異を判断するようなデータに対して目的関数を決めろと言われてもパッとイメージできないですね・・・・
ここに機械学習の難しさがありそうです
###二乗誤差関数
内容読むと、誤差解析で学ぶ最小二乗法の話なので割愛。
目的関数の最適化
目的関数はモデルの精度の良さを数値が小さくなることで計る指標なので、ここでは最適化といえば目的関数を小さくすることだということになります。
目的関数を最適化するために必要な数学
ある関数の最小値を求めるためには、グラフの切片の傾きの傾向を掴む必要があります。
なので、微分が役に立ちますね。逆に最適化が難しい関数って何かあるのかな・・・・?
データ点のまとまりを取り扱う数学
関数として取り扱うことができればまだしも、できない時は、行列、線形代数の出番です。
データから特徴を読み取る数学
確率、統計です。
上記が必要最低限のようです。最適化のところ奥が深そうです。。。目的関数の最適化が単純な微分で解けないような問題だったら???
#Comment
3章はここで終わっています。大学に入った時、工学では数学を道具として扱うことが多いと教わり。当時は全く意味が分からなかったのですが、こうやってまとめてみると本当に道具のような気がします。実際にいろんなデータを取り扱って覚えていくしかなさそうです。
でもワクワクします。