暇人日記

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

2020-01-01から1年間の記事一覧

いつかは取り組みたいCourseraのコース『Deep Learning Specialization』-後半-

Deep Learning Specializationで何を学べるか、ということを今回は見てみたいと思います。 前回の日記で書いていた各コースの所要時間とレベルとPyrhonと Week毎の時間をまとめてみました。 どうやらTensorflowがWeek2とWeek4で必要なことが見えてきました。…

いつかは取り組みたいCourseraのコース『Deep Learning Specialization』-前半-

ここ1か月は『フリーソフトウェアで学ぶ機械学習入門』を読んで 書いてあるPythonのコードを写経のように書いていました。 なんでこういう本を読んでいるかというと、 いつかはこのコースをやりたいと思っているからです。 『Deep Learning Specialization』…

やり残したことまとめ

時間があったら取り組もうといったものを忘れないように まとめサイトを作ることにしました。 ①NN4階層でsigmoidの代わりにReLUを使う 関連日記↓ 勾配消失化問題!? - 暇人日記 ②Signate課題でPCAをしてみる 関連日記↓ Coursera Machine Learningで学んだこ…

Coursera Machine Learningで学んだことを「機械学習入門」の内容と対応させてみる

「機械学習入門」を読んでみました。 正確には「フリーソフトウェアで学べる機械学習入門」という本です。 読んでいると、『おぉ、これCourseraでやったやつだ!』『Courseraをやったときはこういう位置づけだとは思わなかった』みたいなことがあったので書…

勾配消失化問題!?

前回の日記でNeural Networkを3階層から4階層にするのができず、 「フリーソフトではじめる機械学習入門」という本を読んでみました。 これを選んだ理由は図書館ですぐ借りれたからです。 (ダメたったら違うのを借りよう/買おうと思ってました。) 思えば今…

Neural Network4階層がうまくいかない

前回の日記でNeural Networkを3階層から4階層へ変更しました。 Signateの課題でこれで精度が上がることを期待します! 3階層での結果が↓でした。 4階層ではこれ以上になるはずです! 結果です↓ あれ!?全然だめですorz 1の数が0って。。。 MAXIterの問題か…

Neural Networkを3階層から4階層にする

Week5の課題はNeural Networkが3階層の設定ですが、 4階層に変更することに挑戦しました。 絵にするとこういう感じです↓ 何故3階層から4階層に変更したいかというと 初心者コンテストに挑戦したのですが、予測精度が低く合格点がとれませんでした。 3階層か…

Week5までのまとめとLinear Regressionの精度の考え方

Week5までのまとめをしたいと思います。 機械学習の予測の考え方は大きく↓でした。 ①予測式-->②Cost Function-->③Gradient-->④最適θ-->⑤予測 ①予測式をたてて②Cost Functionで差分の合計をJで表現します。 Jが小さくなれば小さくなるほど、精度が良いとい…

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で解いてみる-後半③-

FeedForwardではtanh関数を使っていましたが、 予測値ではtanh関数を使わないというという荒業で計算してみました。 根拠はないです笑 やってみてわかったことはそんなに答えは変わらないということでした。 何故だろうと思いましたが、 X *theta1がすでに絶…

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

fmincg,fminuncを使うときに出てくる@t,@pは何か?

Week5までに出てきた@t、@pを列挙してみます。 Week5のex4.mの中です。 @(p)が絡んでいる nnCostFunction.mはnn_params, input_layer_size,hidden_layer_size,num_labels,X, y,lambdaを入力すると Jとgradを計算してくれる関数となっていました。 nn_par…

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にも問題文にもありました↓ この順番に解いていけばいいはずです。 今回はループ無しで解きます。 ヒントはループ有りが推奨でし…