前回の日記でWeek2のMultiの課題にPolynomialを使用しても、
Jは20億から下がりませんでしたので、
Week3で予測精度を上げるテクニックの1つとして紹介されている
Regularizationを使ってJが小さくなるかどうか見てみたいと思います。
Regularizationとは↑のように線を曲げたり直線にしたりすることが
できるものと思って日記を書き始めました。
が・・・・・
実はOverfitを直すことはできてもunderfitを直すことはできないのでは、
といろいろ実験して思いました。
絵にすると↓こういうことです。
Videoの例もOverfitを直すテクニックという目線でした↓
とはいえ、Regularizationを使ってWeek2の家の価格問題に取り組んでみます。
Regularizationを使う前に振り返りをしたいと思います。
Courseraの課題通りに解いた場合はJは20憶でした。
このときλは0になっていました(計算要素から省いてたという意味で)
λ、予測値とSample値の比較、J=costが↓になります。
RegularizationではJは↓になります。(詳細はWeek3苦闘記憶で書きたいと思います)
そして,この式に基づきWeek2の家の価格問題を計算してみましたが、
初手で止まりました。
λをいくつにすればいいのか、というところに躓きました。
というのはλを小さくする方法が対応法なのですが↑
既にλは0です。
λをマイナスにしていいんだろうか、と悩みました。
というのは、λをマイナスにするとこのJの式↑はマイナスになることも
あるかもと悩んだんです。
悩んでもわからないのでとりあえず実行して並べてみました↓
まず、λを変更すると予測値が微妙に変更しているのが見えます。
λ=-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)が課題通りにやった時の値でした。
同じように実験して並べてみました。
やはりλ=-1000はJ=costが最小ですが、1つ1つの予測値をみると
全然精度が高くないことがわかります。
やはり
RegularizationはOverfitを直すことはできてもunderfitを直すことはできないのでは、
と思いました。
そしてλは0以上の値しかとらないのでは、とも思いました。
わかる人にコメント頂けると嬉しいです。
今回はここまです。また次回頑張ります!