tensorflow勉強会① 超ざっくり機械学習
機械学習の流れ
おおまかな流れはこんな感じになってます。
1.学習用の「答えありデータ」を用意します。
2.学習する
データを入れる → マシーンが何やら計算する → アウトプットが出てくる → 答えと比べる → ズレてる → ズレが小さくなるようにマシーンを教育 → データを入れる → ・・・
ズレが十分小さくなるまで何度も繰り返します。
3.テストする
学習に使わなかった「答えありデータ」でテストします。
4.予測する
学習・テストに使ったデータ以外の、新しい「答えなしデータ」に対して、答えを予測します。
← これが本当にやりたいことですね。
学習について
「ズレが小さくなるようにマシーンを教育」
ズレが小さくなる方向にパラメータ(Wとb)を少し動かしてやります。
どれだけ動かせばズレが最小となるW・bとなるかはわからないため、
少し動かす → ズレを計算する → 少し動かす → ・・・
を何回も繰り返す事になります。
「少し動かす」
この「少し動かす」にも様々な工夫があります。
今日のtensorflowのコードでは、一番簡単な(何の工夫もない)方法を使います。
このページに「少し動かす」方法がやたらとまとまっています。
テストについて
例えばこのサイトを参照してください。
「答えありデータ」を適当に(適切に)分割します。
mnistの場合は、学習用データ60,000 vs テスト用データ10,000
学習用データでモデルの学習を行い、テスト用データで「過学習」していないことをチェックします。
(←今日はやりませんが。)