暇人日記

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

Coursera-Machine Learning -Week5

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…

Coursera Machine Learning Week5 課題 2周目⑱ 予測精度向上

Week5の課題ではλ=1、MaxIter=50で的中率95.2%でした。 同じ課題をWeek4では与えられたθでの的中率は97.5でした。 オプションではNeural Networkは複雑な予測線を描ける強力なツールなので、 λを小さくしてある程度regularizedの力を弱めて精度100%に近づ…

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は合格か不合…

Coursera Machine Learning Week5 課題 2周目⑰ 予測

もう随分とWeek5のNeural Networkに取り組んでますが振り返りたいと思います。 Week2-4で学んだ黄金の流れ ①予測式-->②Cost Function-->③Gradient-->④最適θ-->⑤予測 でいくと①-③がこれまでの日記で完了しています。 Linear Regression/Logistic Regressio…

Coursera Machine Learning Week5 課題 2周目⑯ Random Initialization/debugInitilization

Random Initializationを深堀してみます。 Random Initializationはθの値の初期設定をランダムに決めることです。 Random InitializationはVideoでも紹介され問題文にもあって課題プログラムまで ありましたが、答えが書いてあって実行して理解したという気…

Coursera Machine Learning Week5 2周目⑮ Gradinent Checking-後半-

Gradient CheckingをWeek5ではなくWeek3やWeek4の課題で使う練習をしたいと思います。 まずはWeek3の課題のwithout regularizationでやってみます。 100人の受験者のTEST1とTEST2の得点と合否がサンプルとして 与えられ、どれくらいのTEST1とTEST2だったら合…

Coursera Machine Learning Week5 2周目⑭ Gradinent Checking-中編-

Gradient Checkingを使いこなすための深掘りです。 使えるとこういう結果が出てきます。 左の列にGradinent Checkingで計算したgrad, 右の列にBackpropagationで計算したgradが並びます。 この差が01e-9以下ならBackpropagationの計算は正しいという目安で 2…

Coursera Machine Learning Week5 2周目⑬ Gradinent Checking-前半-

課題にはなっていないんですが、他のデータでNeuralNetworkを 使いたいと思った時にとても重要になっているGradient Checkingを 深堀してみます。 VIDEO 問題文 プログラム全体/詳細 の流れで取り組みます VIDEO 概念と計算式と具体的なコードが触れられてい…

Coursera Machine Learning Week5 課題 2週目⑫ -苦闘記憶- Regularized Gradient

今回はRegularized Gradientに取り組みます↓ 今、全体の流れのどこをやっているか分からなくなったので振り返ることにします。 前回の日記で全体の構造を下のようにまとめました。 問題文的にはに取り組んでいます。 かなり終着に近づいてきました。 問題文/…

Coursera Machine Learning week5 2周目⑪Backpropagation ループ無 後半

さて、今回も前回に引き続きBackpropagationの課題に取り組みます。 ループ無しバージョンで解いたので、今はループ有りバージョンで解くことを 目指しています。 前回の日記でのおおきなきづきは 0-9の10通りのループと1-5000のループを2重にするとうまくい…

Coursera Machine Learning Week5 2周目⑩ Backpropagation ループ有り 前半

ヒントにはループ有で最初は解くようにとありましたが、 私にはループ有りで解く方が難しいです。 理由ははっきりしていてループするとループシュミレーション取り出しを しなければなりませんが、目指すべき形がわからないからです。 さらにgradは苦手分野…

Coursera Machine Learning Week5 2周目⑨ Backpropagation ループ無し

Video振り返り/問題文読み込みをしたので、 今回はBackpropagationの課題にいよいよ取り組みます。 解き方の順番は詳細にVideoにも問題文にもありました↓ この順番に解いていけばいいはずです。 今回はループ無しで解きます。 ヒントはループ有りが推奨でし…

Coursera Machine Learning Week5 2周目⑧ Backpropagation

問題に取り組んだ日記⑥を読み進めると問題は 2.1 Sigmoid Gradient 2.2 Random Initialization 2.3 Backpropagation ①問題文の読み込み ②プログラム全体ex4.mの読み込み ③プログラム詳細 nnCostFunction.mの読み込み となっていますので、この順に読み進めて…

Coursera Machine Learning Week5 2周目⑦ Backpropagation Video振り返り

今回はBackprobagationの課題に取り組む前にVideoの振り返りをします。 Video②Backpropagation Algorithm Video③Backpropagation intuition Video②Backpropagation Algorithm 1周目で課題は正解したものの内容を最も理解していない部分になります。 このVIDE…

Coursera Machine Learning Week5 課題 2周目⑥ Regularized

今回はRegularized↓に取り組みます! 前回まとめた相関図ではCostFunctionのVideoだけが参考になっているはずです。 Regularizedが何かといえば↓の式です。 この式がプログラミングできれば終了です。 Coursera Machine Learning Week5 課題 2周目① Cost Fun…

Coursera Machine Learning Week5 課題 2周目⑤ Costfunction ループ無し

CostFunctionをループ無しで解くことにトライしてみます。 これはK=1のとき、K=2のとき、・・・、K=10のときと ループさせていたのをループさせずに解くということです。 ループありではOutput Layerが5000X10で、 ある意味わざわざK=1のときの予測を1行取り…

Coursera Machine Learning Week5 課題 2周目④ Costfunction ループ有り

④前回に引き続き↓に取り組んでいきます。 without Regularizationなので、 これ↑を式にして、Jが0.287629になることが目標です。 まずはヒントに合った通り、loopを使う前提で解いていきたいと思います。 loopでk=1のとき、k=2のとき、k=3のとき、・・・・k…

Coursera Machine Learning Week5 課題 2周目③ CostFunction

前回CostFunctionのVideoと問題文と課題の関係はまとめたので、 今回はCostFunctionのnnCostFunction.mに取り組んでいきます。 ①問題文を読む ②プログラム全体ex4.mを読む ③プログラム詳細nnCostFunction.mを読む の順に進めていきます。 1.1Visualizing the…

Coursera Machine Learning Week5 課題 2周目②Videoと問題文と課題の関係

CostFunctionのVideoを振り返ったので、CostFunctionに取り組みます! と思って↓をみてみたら、nnCostFunction.mの範囲がえらく広いことに気づきました。 100点中95点がnnCostFunction.mになっています↓ 少し引いて全体を俯瞰してみたいと思いました。 今後…

Coursera Machine Learning Week5 課題 2周目① Cost Function VIDEO振返り 

Week5はかなり難しく苦労した記憶がありますのでまずVIDEOから振り返ります。 Video①Cost Function Cost Functionの説明がきました。 予測式-->Cost Function-->Gradient-->最適θ-->予測 というのが機械学習の黄金パターンなので Week4では計算しなかった…