暇人日記

アラフォーおっさんのコーセラの機械学習の課題を解こうと頑張っています!

Week2の課題でRegularizationを使用するとJは小さくなるか?

前回の日記でWeek2のMultiの課題にPolynomialを使用しても、

Jは20億から下がりませんでしたので、

Week3で予測精度を上げるテクニックの1つとして紹介されている

Regularizationを使ってJが小さくなるかどうか見てみたいと思います。

 

 

f:id:omoshiroamericanews:20200122180335p:plain

 

Regularizationとは↑のように線を曲げたり直線にしたりすることが

できるものと思って日記を書き始めました。

 

が・・・・・

 

実はOverfitを直すことはできてもunderfitを直すことはできないのでは、

といろいろ実験して思いました。

 

絵にすると↓こういうことです。

 

f:id:omoshiroamericanews:20200122180442p:plain

 

Videoの例もOverfitを直すテクニックという目線でした↓

f:id:omoshiroamericanews:20200122180514p:plain



とはいえ、Regularizationを使ってWeek2の家の価格問題に取り組んでみます。

 

Regularizationを使う前に振り返りをしたいと思います。

Courseraの課題通りに解いた場合はJは20憶でした。

このときλは0になっていました(計算要素から省いてたという意味で)

 

λ、予測値とSample値の比較、J=costが↓になります。

f:id:omoshiroamericanews:20200122180831p:plain

 

RegularizationではJは↓になります。(詳細はWeek3苦闘記憶で書きたいと思います)

f:id:omoshiroamericanews:20200122180615p:plain

 

 

 

 

そして,この式に基づきWeek2の家の価格問題を計算してみましたが、

初手で止まりました。

λをいくつにすればいいのか、というところに躓きました。

f:id:omoshiroamericanews:20200122181150p:plain

というのはλを小さくする方法が対応法なのですが↑

既にλは0です。

λをマイナスにしていいんだろうか、と悩みました。

 

f:id:omoshiroamericanews:20200122180615p:plain

というのは、λをマイナスにするとこのJの式↑はマイナスになることも

あるかもと悩んだんです。

 

悩んでもわからないのでとりあえず実行して並べてみました↓

f:id:omoshiroamericanews:20200122181539p:plain

まず、λを変更すると予測値が微妙に変更しているのが見えます。

λ=-5のときは微妙に精度が向上しているかもしれません、

だからJも20.4億-->20.3憶に減っているのかもしれません。

 

λ=-1000の時はJは20.4億-->10.7億に減っていますが、

予測値を1つ1つみるとλ=0の時は精度がいいので、

後ろの項がマイナスになっただけではないかと思います。

 

試しにλ=5のバージョンが作りましたがJ=costは増えました。

 

 

これが,

RegularizationはOverfitを直すことはできてもunderfitを直すことはできないのでは、

と思った理由です。

 

Week2のFood Truckの利益シュミレーションの課題でも同じ実験にしてみました。

J=4.770(λ=0)が課題通りにやった時の値でした。

 

同じように実験して並べてみました。

 

f:id:omoshiroamericanews:20200122182418p:plain

やはりλ=-1000はJ=costが最小ですが、1つ1つの予測値をみると

全然精度が高くないことがわかります。

 

やはり

RegularizationはOverfitを直すことはできてもunderfitを直すことはできないのでは、

と思いました。

 

そしてλは0以上の値しかとらないのでは、とも思いました。

 

わかる人にコメント頂けると嬉しいです。

 

今回はここまです。また次回頑張ります!