Courseraのmachine learningのコース走り終えたので前半をまとめる

Pocket
LINEで送る

こんにちは、有安です。

今回は、最近ハマっている機械学習についてです。

表題の通りCourseraのmachine learningのコースを走り終えたので、その中で出てきた

線形回帰とロジスティック回帰とニューラルネットワークに関して、

1, 仮定関数

2, 目的関数

3, アルゴリズムの手順

などをまとめたいと思います。

ちなみに対象読者は機械学習少し知っている人です。

それでは早速まとめていきます。

【線形回帰】

みんな最初に習うアルゴリズムですね。単純なのでささっと見ていきます。

<仮定関数>

スクリーンショット 2019-09-09 15.09.37

θはWと書くことも多いですが、この講座ではθと表すので、今後もθで。

θの転置かけるXで一発で求められます。この辺りはまだまだ式も短く読者に優しい。

<目的関数>

スクリーンショット 2019-09-09 15.20.29

仮定関数と実際の値Yとの誤差の平均を出してます。2乗したり2mで割ったりは後々計算しやすいように。

<アルゴリズムの手順>

下記の最急降下法を何回も周します。

スクリーンショット 2019-09-09 15.26.33

最急降下法でトレーニングする前提で進めてますが、講義が割とそんな感じなので。

この式だとθを1つずつ更新しよう、みたいに見えますが、実際はベクトルで一発でやります。つまりjは全部取っちゃいます。(いい画像なかったのでこれ貼りました。)

αは学習率。ハイパーパラメータなので、初期値を変えてみたり、徐々に小さくしたりします。

【ロジスティック回帰】

回帰とありますが分類に使います。

<仮定関数>

スクリーンショット 2019-09-09 16.08.03

線形回帰の場合はθの転置かけるXでしたが、今回はそれをさらにシグモイド関数に渡す形です。

<目的関数>

スクリーンショット 2019-09-09 16.20.33

いきなり長いですが、これくらいは覚えた方が楽なのでしっかり覚える。意味を理解すれば、まあ大丈夫。

<アルゴリズムの手順>

下記の最急降下法を何回も周します。

スクリーンショット 2019-09-09 16.21.37

Jをθで微分するとスッキリこんな感じになると。θ0の時だけ正規化しない方法をとっています。

上記の最急降下法を繰り返せば、どんどん目的関数Jの値が小さくなっていくはずです。

どのアルゴリズムでもそうですが、学習率αの値が大き過ぎるとJが小さくならずに発散してしまうので注意。

かといって小さ過ぎると遅いので、いい感じに調整する。

【ニューラルネットワーク】

スクリーンショット 2019-09-09 17.13.14

レイヤーが4つの場合、一番下の段のa(4)が仮定関数です。式にあるように、レイヤーを前進して1つずつ計算結果を渡していきます。もっとレイヤー数が多ければ、その分計算もたくさんすることになります。

ちなみにmachine learningコースでは、簡単のためにReluなどは使わずに、アクティベーション関数には全てsigmoid関数を使っています。しかし実際にsigmoid関数を使うのは2値分類の出力部分だけなので注意。

<目的関数>

スクリーンショット 2019-09-09 17.26.53

ロジスティック回帰と似てるけど複雑。

<アルゴリズムの手順>

誤差逆伝播法を使います。

仮定関数のところで計算を前に前に進めましたが、今度は逆に後ろに戻りつつ各θを更新するわけです。

スクリーンショット 2019-09-09 18.03.49

トレーニングセットの数をm,レイヤーの数をL=4としています。

前方に計算を進めて仮定関数の値a(4)を出したところからです。

基本的に、各レイヤーの誤差を算出していきます。上記のδ(L)というのは、Layer4の誤差です。

スクリーンショット 2019-09-09 18.21.28

続いてLayer3,2の誤差を出していきます。計算するのはδ(2)までなので、全部で4,3,2の3レイヤーの誤差を計算します。式は上記。

続いて、各データセットの上記の値を足していきます。まず受け皿を用意して、

スクリーンショット 2019-09-09 18.24.00

その後加算していきます。

スクリーンショット 2019-09-09 18.28.55

m回のイテレートが終わったら、Δから新たな値を求めます。

スクリーンショット 2019-09-09 18.30.18

ロジスティック回帰の時と一緒で、正規化の項があります。

計算が終わったら、これが以下の偏微分、つまり勾配になっているとのこと。

スクリーンショット 2019-09-09 18.31.24

あとはこれを最急降下法などに適用すれば何周もすればコストを最小化出来る。

微分の中身がブラックボックスなのでイマイチ納得感は低い。

Courseraのディープラーニング専門講座というのがあって、そちらではかなり詳細にやってくれるので、もっとちゃんとやりたい方はこちらもやるとよい。

次はディープラーニングについて、とかやろうかな。。それでは!

Pocket
LINEで送る