暇人日記

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

Coursera Machine Learning Week3 課題 2周目② -苦闘記憶- Sigmoid Function-

今回はSigmoid Functionに取り組みます。

 

f:id:omoshiroamericanews:20200122115821p:plain

 

問題文

プログラム全体ex2.m

プログラム詳細sigmoid.m

の順にみていきます。

 

まず、問題文です↓

 

f:id:omoshiroamericanews:20200122115925p:plain

 

そもそもLogistic RegressionとSigmoid Functionって何だったっけ?と

思いましたので、一度自分なりのサマリーをしてみたいと思います。

 

Logistic Regressionは0か1の予測をするものです。

Week2のLinear Regressionは値の予測でしたが、

Logistic Regressionは0か1の予測をするものでした。

 

f:id:omoshiroamericanews:20200122120052p:plain

 

予測結果がすべて0か1、

ということは

計算結果がすべて0か1

にならないとだめで、まさにVideoでは↓で表現されています

 

f:id:omoshiroamericanews:20200122120122p:plain

 

そんな都合のいいことあるのかなと思っていたら

でてきたのがSigmoid Functionでした↓

 

f:id:omoshiroamericanews:20200122120209p:plain

計算結果が必ず0と1の間にくる関数があり、

それがg(z)=1/(1+e^(-z))と説明されています↑

 

予測式は要素 X パラメーターの

f:id:omoshiroamericanews:20200122120244p:plain

f:id:omoshiroamericanews:20200122120305p:plain

 

なので、Logistic Regressionの予測式は↓になります

 

f:id:omoshiroamericanews:20200122120339p:plain

 

Linear RegressionとLogistic Regressionを表にしてみました↓

 

f:id:omoshiroamericanews:20200122120413p:plain

 

Simoid Functionの内容を振り返ったので再度問題文に戻ります。

 

f:id:omoshiroamericanews:20200122120537p:plain

 

続いてプログラム全体ex2.mを見ましたが、

Sigmoid.mは何も書いてありませんでした。

 

ので、プログラム詳細版sigmoid.mを見ます

 

f:id:omoshiroamericanews:20200122120645p:plain

 

↑をみると今回求められているプログラミングの式は↓になります

f:id:omoshiroamericanews:20200122120726p:plain

 

そのまま作ると、1/(1+e^(-z))なのですが、

値は計算できるけども、ベクトルは計算できないという難点がありました。

 

例えばZ=0での実行はできました↓

f:id:omoshiroamericanews:20200125114200p:plain

 

ただ、ベクトルの計算ができませんでした↓

f:id:omoshiroamericanews:20200125114225p:plain

 

どうやって作っていいのかわからなかったので、

ググった記憶があります。。。

 

概念は理解できてもそれをプログラミングで具現化するとなると

スキルが足りなく、文系の私にはつらいところでした。

 

今回はここまでです。また次回頑張ります!