おれの技術日記

元はJava+SQLがメインのエンジニア、フロントエンドは軽くかじった程度で苦手。最近忘れっぽいので覚えたことをいろいろメモするためにブログ開始。

Machine Learning Crash Course 1 - Framing

一念発起して、Googleが無償公開しているMachine Learning Crash Courseに挑戦しつつその記録をここに残すことにした。
英語で学ぶのは億劫ではあるものの、仕事の半分くらいは結局英語なのでMLに関しても英語で説明・議論できなければ意味がないので、その意味ではこの領域の英語も合わせて学べる点で一石二鳥(やる気さえ続けば)。

というわけで、まずは一番最初の章、Framingから。
ここは簡単な用語の説明がほとんどなので簡単。

  • Label:yと呼ばれる、予測対象の値
  • Feature:x1-xn、入力変数。
  • Example:DBで言うところのレコード、前はsampleって聞いたような気がしたけど・・・
    • Labeled example:labelとfeatureの両方を持ったexample、機械学習ではトレーニングデータとも呼ばれる
    • Unlabeled example:featureのみを持ったexample、このレコードに関してlabelはモデルを使って予測される
  • Model:labelとfeatureの関連を定義したもの
    • Training:モデルを構築すること
    • Inference:モデルを使ってlabelを予測すること、ちなみに予測されたlabelはトレーニングデータに含まれるlabelと区別するためにy'と表記される
  • Regression Model:回帰モデル、連続した値を予測するのに使用される
  • Classification Model:分類モデル、非連続の値を予測するのに使用される

ちなみにトレーニングデータ(labeled example)を用いてモデルを構築し、それをもとに未知のlabelを予測する仕組みをsupervised ML(教師あり学習)という。

例えば気温とアイスクリームの売れ行きの関連を表現するとして、高校で習ったy=ax+bみたいな式を考えた時に(実際はy'=b + wxと書く)過去のトレンドからだいたい以下のような図を見いだせたとすると、
f:id:kuniaki12:20180710170901p:plain

  • Label:アイスクリームの売れ行き
  • Feature:気温
  • Labeled example:個々の青い点
  • Unlabeled example:未来の売上(例えば明日は25度だから60個くらい売れそうだな、みたいな)
  • Model:回帰直線

となる。

このあたりの用語は数学と統計と機械学習で微妙に異なっていて、更に英語となるとややこしいけど、まあ慣れかな。

おまけ、データはこんな感じ。

気温 売上
18 53
19 51
20 52
21 56
22 58
23 58
24 61
25 63
26 63
27 63
28 63
29 68
30 67
31 64