Courseraの機械学習コースを受講してみた その3

プログラミング

Courseraの機械学習コースを受講して、要点をまとめています。

第3回の今回は、仮説関数と目的関数、最急降下法についてです。

第1回第2回はこちらです。

仮説関数

機械学習のアルゴリズムをシンプルに言うと、ある仮説関数を学習していくというものです。

仮説関数というのは与えられたトレーニングデータから正解のデータを出力できるような関数のことで、学習が終わった仮説関数に未知の入力を渡して実際の予想を行うといった使い方をします。

仮説関数は入力となるデータと調整できるパラメータからできています。

仮説関数をどういう関数で予想するかは、自分で決めるしかないです…

機械学習では、この仮説関数に使用する最適なパラメータを求めていきます。

目的関数

続いて、目的関数というものを用意します。

先に述べたように、機械学習はパラメータによって仮説関数が変化していきますが、あるパラメータのときの仮説関数が優れているかどうかというのを表すのが目的関数です。

回帰問題では正解の値と、仮説関数が予想した値の差の二乗を目的関数として用いることが多いです。

他にも目的関数の選び方というのはあるのですが、最も一般的に回帰問題に使用される目的関数は二乗誤差であることがほとんどです。

目的関数に二乗誤差を適用すると、目的関数は正解の値と予想した値の差の二乗を表します。

つまり、目的関数が小さければ小さいほどより正確な値を予想できていると言えます。

そのため、私たちがやるべきことは目的関数が最小となるような仮説関数のパラメータを見つければよいのです。

最急勾配法

最急勾配法とは、関数を最小化するアルゴリズムの一つです。

数式で説明することはしませんが、アルゴリズムの概念としては、

1. 適当な初期値が与えられたときに、今の地点の傾きを計算する。

2. 最も急な傾きに沿って移動する。

3. 移動できなくなるまでこの移動を繰り返す。

といったアルゴリズムで、最小なところへたどり着こうというアルゴリズムです。

また、最急降下法には学習率というパラメータを設定する必要があります。

学習率とは、最急降下法で移動する際に移動する量を決めるパラメータです。

この学習率が大きすぎると一度の計算で大きく移動してしまうため、移動する方向があっていたとしても最小値を取る点を通り過ぎてしまう恐れがあります。

逆に小さすぎると一度の計算での移動量が小さく、なかなか最小値までたどり着けないという問題もあります。

まとめ

今回は、仮説関数・目的関数・最急勾配法について説明しました。

機械学習で学習するのは仮説関数、仮説関数の性能を表す目的関数、目的関数を最小化するアルゴリズムである最急勾配法といった違いがそれぞれあります。

似たような名前があり紛らわしいですが、それぞれの役割を理解していただけたらと思います。

それでは。

コメント

タイトルとURLをコピーしました