1+9=10

どこかの院生

CourseraのMachine Learning(機械学習)の講義内容まとめ [Week 1]

自分は今、某大学院で翻訳システムの研究を行っています。しかし、学部4年の12月に機械学習系の研究室に移ったのですが、それまでに機械学習の勉強を全くしておりません。なので、何か良い教材はないかと探していたら友人がCourseraのMachine Learningコースを勧めてきたので、試しに受けてみたらとてもわかりやすく修了するまでやることを決意したので、アウトプットのため講義のまとめを残すことにします。

Introduction

イントロダクションでは機械学習入門としして、機械学習は大きく分けて2つに分かれることとそれぞれの説明がありました。

教師あり学習とは、予め答えが用意されたデータ(例えば、家のサイズと値段)などを用いる学習。Week 1では、家の大きさから値段を予測する問題が例として挙げられていた。 f:id:onenight1910:20180526231600p:plain Coursera Machine Learning

線形回帰 (Linear regression)

線形回帰は教師あり学習の一つである。教師あり学習なので与えられるデータは答えがある。例として家のサイズから値段を予測する問題を考える。この問題に線形回帰を用いる理由は予測する値段が連続する値だからです。これがもし患者のデータから癌であるか否かを予測する問題の場合、予測する値は"である""でない"(1 or 0)となるのでクラスタリングが用いられるでしょう。

では、実際に先に述べた問題を考えてみましょう。 まずこの先必要となっていく用語、各種記号についてまとめまておきます。

  • m: 教師データ(トレーニングデータ)のデータ数を表します。
  • x: 入力データを表します。
  • y: 出力データを表します。
  • θ: 仮説関数の係数を表します。
  •  h_θ(x): 仮説関数を表します。
  •  J(θ): 目的関数を表します。

今回の問題の目的は家の大きさを入力データとして、家の値段を出力してくれる関数を求めることです。その関数を求めるのが目的関数(cost function)です。 f:id:onenight1910:20180527003722p:plain 画像: Coursera Machine Learning

目的関数 (cost function)

目的関数とは h_θ(x)のθを求めてくれる関数です。今回求める関数(仮説関数)は大きさ(x)と値段(y)としたとき

 h_θ(x) = θ_0 + θ_1x

という関数が考えられます。この関数をどれだけトレーニングデータに合わせるかを求める関数が目的関数となります。合わせるというのはトレーニングデータと関数の差が一番小さくなることです。

なので、目的関数は

 J(θ_0,θ_1) = {\frac{1}{2m}} \sum_{i=0}^{m}(h_θ(x^{(i)}) - y^{(i)})^2 となる。 {\frac{1}{2m}}をかける意味は後で微分をするので、計算しやすくするためである。定数倍しても答えには何ら問題ない。 f:id:onenight1910:20180527010559p:plain 画像: Coursera Machine Learning

最急降下法 (Gradient Descent)

目的関数の式の形は決まったが、実際にどのようにθを求めていくかはわからない。その時に最適解を求める一つの手法として最急降下法がある。

f:id:onenight1910:20180527011715p:plain 画像: Coursera Machine Learning

求めるθをどのようにしたら、計算量を少なく最適解に導くかということである。式は単純で目的関数 J(θ_0,θ_1)微分ずつ引いていきそれを更新していくだけだ。

  • α: 学習率(learning rate)を表す。

f:id:onenight1910:20180527012825p:plain 画像: Coursera Machine Learning

αは大きすぎると上記の画像の下のグラフのように永遠に最小値を見つける事ができるなくなるため、小さい値を選ぶようにする。

また、最急降下法には問題点があります。 f:id:onenight1910:20180527013128p:plain 画像: Coursera Machine Learning

目的関数が上記の画像のようになっていた場合に局所的な最小値は求まるが、全体の最小値にたどり着かない場合がある。

まとめ

  • 機械学習には教師ありと教師なしの学習がある。
  • 仮説関数を立て、トレーニングデータとその関数のアウトプットの差である目的関数を最少とするθを求める。
  • 最適解を求めるのに最急降下法ある。