Machine Learning Lecture 2 - 機械学習
Machine Learning Lecture in Stanford Universityの第二回をもとに学習していきます。
今回のトピックは
- linear regression
- gradient descent
です。
supervised learning vol.2
前回ではsupervised learningで家屋の価格の予測について触れていました。まずはじめに実際の正確な価格を教えることで、家屋の広さと価格の関係について学習するようにし、正しい価格を予想するようにしました。
supervised learningでは他にも無人の自動車の例が面白いものして紹介されています。Machine Learning Lecture in Stanford Universityでは実際に自動車が学習する様子がムービーで見れます。
ちなみに自動車は次のような手順で無人で走れるように学習します。
- 実際に人が運転し、どの程度ハンドルをきるかを教える
- 正しい操縦の具合を学習する。
- 無人で運転できる。
3番の段階になっても学習は繰り返されそうですね。動画は少し古いものですが、人間の操縦を正しいものとして学習し正しい操縦をできるようになるという非常にわかりやすいsupervised learningの例であり、特にregression problemの例として紹介されていました。現在では"DARPA Grand Challenge"という無人自動車が砂漠を横断するのを競ってたりもするのですから、驚きです。
家屋の例に戻ってみます。講義の中のデータとして
Living area() | $(1000) |
---|---|
2104 | 400 |
1416 | 232 |
1534 | 315 |
852 | 178 |
1940 | 240 |
・ | ・ |
家のサイズと価格の関係をどのように予測するかというのが問題です。まずはじめに、これから頻繁に使用する記号の定義を上げておきます。
定義
- m = #training examples(訓練集合)
- x = "input" variables/features(入力変数)
- y = "output" variable/"target" variable(目標変数)
- (x,y) - training example
- i'th training example = ()
これをもとにしていきます。
次にsupervised learningで行っていく処理の流れをイメージで示します。
training set(訓練集合)からlearning algorithmを通してhypothesisを生み出します。このhypothesisに入力変数を入力すると、目標変数を出力します。家の売却のケースで言えば、new living area を入力することでestimated priceが出力されます。
hypothesisをどのように表現するかをあらかじめ決めます。
と表します。xはここでは入力変数であり、家のサイズのことです。回帰の問題に関して言えば1つ以上の要素をもつことが一般的によくあります。なので、家の売却に関しても入力変数をひとつ追加して、hの式を一般化したいと思います。
Living area() | #bedrooms | $(1000) |
---|---|---|
2104 | 3 | 400 |
1416 | 2 | 232 |
1534 | 3 | 315 |
852 | 2 | 178 |
1940 | 4 | 240 |
・ | ・ | ・ |
サイズの他に、寝室の数のデータを得ました。式も更新します。=size,=#bedrooms
=1と定義すると
となります。n=要素の数です。ここではsizeと#bedroomsの2つです。
どうやって最適なθを求めるためのかが重要になります。そもそもh(x)は家の価格を予測するためのものでした。なので、xを任意の値で固定したものと実際の値の誤差の最小化をするようなθを求めます。二重和誤差を用いて、最小化できるようなθをもとめます。
J(θ)について考えます。
Gradient Descent 最急降下法
J(θ)を最小化するためにGradient descentを見てみます。日本語では最急降下法と呼ばれています。
最急降下法の理解のためにMachine Learning Lecture in Stanford Universityで使われたイメージをキャプチャしておかりしています。
Gradient descentアルゴリズムでは初めの地点によって得られる結果は変わってきます。このイメージが立体的な陸地であることを想定して下さい。丘のようなものだと思えば良いと思います。そして自分が矢印で囲まれた地点にいると想像してみてください。最急降下法とはその地点から全体を見渡して、最も少ない工程で丘を下ることができるのはどの方向であるかを考えるようなものです。一回次の地点に移ったら、また同様に最小になる方向を探します。それを何回も繰り返していきます。最小のものを探すのはちょうどJ(θ)の最小を探すのと同じです。
最急降下法はスタート地点が異なると最終的な到着地点も異なります。図では左下のコーナーの部分が終点ですが、違う点からだと別の場所につきます。スタート地点によって、終点は全く異なる局所最適点となるのです。ある適当な初期値から初めて、繰り返し更新していくことで最適なパラメータを求めるのが最急降下法です。最急降下法でのパラメータの更新は次のように表せます。
αはleraning rateといい日本語では学習係数と呼びます。これは一回の繰り返しでどれくらいパラメータを更新するかに影響を与えます。まずはtraining exampleが1つである場合について考えます。そして右辺の偏微分の部分について詳しく見ていきます。
これを先ほどの式に代入します。
αは学習係数と言いましたが、これは最急降下法で言えばどれほど大きなステップをとるかに影響すると言えます。あまり大きくすると発散してしまいますが、小さすぎると最適なパラメータを求めるための更新回数が多くなります。
ここまでtraning exampleが1つの場合のみ考えてきました。traning exmapleがm個ある場合についても見ていきます。
∑の部分を置き換えると、
となります。
収束するまで更新することによって、J(θ)を最小化するようなパラメータθを求めます。家屋の売却の例も最適なパラメータを探すことが重要になります。
Batch Gradient Descent と Stochastic Gradient Descent
これまで詳しく言うとこれはbatch gradient descentというものです。batch gradient descentではひとつのステップに対してすべてのtraining exampleを見ていました。これではtraining exampleの数が膨大になると、すべき処理も膨大なものとなります。
一方で、stochastic gradient descentはそれぞれのステップで各training examleを検証するだけです。そのためstochastic gradient descentはbatch gradient descentよりも最小となるようなθを見つけるのが速いことが多いです。このような理由からtraining exampleの数が多い時は、stochastic gradient descentが好まれます。