暇人日記

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

仮説検定 前半

仮説検定は今まで書いてきた『差がある』といえるかと信頼区間を足した内容 だと思いました。 投薬は血中マグネシウム度上昇に効果があったのか、というのは 投薬後の血中マグネシウム度 - 投薬前の血中マグネシウム度がプラスだったら、 『効果がある』と…

信頼区間を図で考えてみる

『差がある』といえるか-統計学-前編で書いた 式の詳細はおいといて、<信頼区間>は上限と下限があり この例では 95%の精度で信頼区間は0.01-0.65となります。 を図で考えてみたいと思います。 まず、信頼区間の意味です。 精度が95%とは95%の確率で平均…

『差がある』といえるか-統計学‐後編

一番使いそうなパターンが前々回の日記と前回の日記のパターンでしたが、 Udemyの講義にはほかのパターンもあったので、表にまとめてみました。 全部で4つの信頼区間の式がありました。 各々の使う条件は表に書いたことが講義中に述べられていました。 母分…

『差がある』といえるか-統計学-中編

NYのリンゴの価格とLAのリンゴの価格ではどちらが高いか、ということを NY10個のサンプル、LA8個のサンプルをもとに考えるという課題の要約に 取り組みます。 ①2つの母集団が正規分布 <--前回の日記と同じ かつ ②2つの母集団は独立 <--前回の日記と異なる …

『差がある』といえるか-統計学-前編

Deep Learning Specializationをうけるためには、 Pythonを理解したほうがいいと思い、このコースに取り組んでいます。 www.udemy.com 主目的はPythonに習熟したいだったんですが、コースの1/3を終えても Pythonは出てこずひたすら確率/分布/統計の勉強とな…

いつかは取り組みたい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…