暇人日記

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

Coursera-Machine Learning-応用

Week2の課題(家の値段)をNeural Networkで解いてみる-後編⑦-Pythonとの予測の比較

Neural Networkでの予測の精度はLinear Regressionの精度を上回ることができました。 PythonにもLinear Regressionの予測を行う機能があります。 こちらと比較したいと思います。 色々読みこみまして↓(私のうけたオンラインレッスンではおまじないと呼んで…

Week2の課題(家の値段)をNeural Networkで解いてみる-後編⑥-

前回の取り組みで見つけた >①fmincgが最適θを計算していない を再度考えてみます。 もう一度、初期パラメーターと計算後の最適θを並べて 観察してみることにしました。 一見何も計算されないように見えましたが 微妙に計算されていることがわかりました。 …

Week2の課題(家の値段)をNeural Networkで解いてみる-後半⑤-

前回までの試行と課題を振り返ります。 構造を↓のように設定してしました。 Linear Regression用にGradinent Checkingを整備しました。 Gradinent Checkingは正解でしたがfmincgで予測を行ったら 予測が合いませんでした。 大きな分岐点が2つありました。 1…

Week2の課題(家の値段)をNeural Networkで解いてみる-後編④-

前回の続きです。 λを1の-15乗にしたら安定するかどうか実験してみます。 1回目です。 2回目です。 3回目です。 4回目です。 5回目です。 確率は20%ですね。 そういえばλ=0で5回トライしてみます。 そもそもλ=0でθの2乗部分はないことにしているので、 λ…

Week2の課題(家の値段)をNeural Networkで解いてみる-後編②-

前回はGradinent Checkingがクリアできたので、fmincgで最適θを出して 予測値を出しましたがダメというところでした。 最適θを出してから予測値までを振り返ってみます。 構造は↓になっています。 そして計算ロジックはHidden Layerではsigmoid関数の代わり…

Week2の課題(家の値段)をNeural Networkで解いてみる-後編①-

CourseraにはDiscussion Forumなるものがありまして、 そこにNeural NetworkでLinear Regressionを解こうとした問い合わせがないか 検索してみました。 その中の1つにVideoのレクチャーノートのボーナスにそれについて 触れてあるものがあるとありました。 …

Week2の課題(家の値段)をNeural Networkで解いてみる-中編-

前回の予測がなぜ間違えているかわかりました。 nnCostFunction.mを修正し忘れていました。 Week5の課題のプログラムは↓のような構造をしていました。 Gradinent CheckingをしてるCheckNNgradients.mは nnCostFunction.mを参照しているのですが、 前回の日記…

Week2の課題(家の値段)をNeural Networkで解いてみる-前半-

Neural NetworkでWeek2の家の値段の課題を解くことにトライしてみます。 課題は家の面積と部屋数から値段を予測することでした↓ Week5のNeural NetworkのプログラミングはLogistic Regressionで 0,1の分類解決用でしたが、今回の家の値段の課題はLinear Regr…

Week3の課題をNeural Networkで解いてみる 後半

前回はNeural Networkの精度の低さにびっくりしたところで終わりました。 まずはlambdaを調整してみたいと思います。 overfitやunderfitの時のガイドラインがCourseraでは紹介されていました↓ 今回は当たらなさすぎのunderfitの状態なので、 Decreasing λに…

Week3の課題をNeural Networkで解いてみる 前半

Week3の課題はTEST1とTEST2の点数と合否がデータセットで100個与えられていて、 合否の予測線を作りなさいというものでした。 まずNeural Networkで解くので構造を考えてみます。 Input layerはTest1とTest2のなので「2」ですね。 Output Layerは合格か不合…

Week3のGradientをWeek2の方法で求めることにトライする

Gradientの日記で見たように、Week3とWeek2ではJを最小とするthetaの 探し方が違いました↓ Coursera Machine Learning Week3 課題 2周目④ -苦闘記憶-Gradient - 暇人日記 Week3はcostFunction.mがJとgradでfminuncで最小値を見つけましたが、 Week2ではCompu…

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

前回の日記でWeek2のMultiの課題にPolynomialを使用しても、 Jは20億から下がりませんでしたので、 Week3で予測精度を上げるテクニックの1つとして紹介されている Regularizationを使ってJが小さくなるかどうか見てみたいと思います。 Regularizationとは↑の…

Week2の課題でPolynomial=多項式化するとどうなるか?-後半-

Polynomialで予測精度が向上してJが小さくなったか、 Learning Curveの形は変わったか、を プログラミングしながら検証していきます。 まずDataをSetします。 Train setとTest Setの分け方は同じです。 プログラミングを続けます。 多項式=polynomialの部分…

Week2の課題でPolynomial=多項式化するとどうなるか?-前半-

前回の日記で行ったWeek2のMuiltiの課題がunderift=『予測当たらなさすぎ』と Learning Curveでは結果が出てきたので、 対策の1つに挙げられているAdding polynomial fearuresに取り組んでみたいと思います↓ Polynomial=多項式化することで期待しているのは…

Week2の予測結果をWeek6の仮説精度検証とLearning Curveで評価してみたらどうなるか?

Week6では↓のように仮説の精度検証の方法が説明されていたので、 この方法で前回の日記で取り組んでいたWeek2の予測結果を 評価してみたいと思います。 今回は仮説検証なのでデータを70対30に2分割します。 (余談ですが、モデル選択の場合は60対20対20の3分…

Week2の課題をPCAしてみるとどうなるか?

PCAはWeek8で紹介された内容でした。 PCAはデータが膨大で計算負荷が大きいときに 類似と判断できるデータを削減して、 計算負荷を小さくすることが目的のものでした。 具体的なPCAの計算方法は↓でした。 これ↑がn次元をk次元にする方法でした。 今回は2次…