Logistic Regression (邏輯回歸):用於二分分類的算法。
例如:
判斷一幅圖片是否為貓的圖片,結果有兩種:1(是貓)和0(不是貓)
假設輸入的圖片由64*64個像素組成,每個像素包含RGB三種不同的顏色分量,
則每一幅圖片作為一個輸入\(x^{(i)}\) 其中包含的輸入特征的個數為64x64x3 ,將輸入特征的個數記作\(n_{x}\)
如何通過輸入的\(x^{(i)}\) ,來判斷對應的結果\(y^{(i)}\)是(\(y^{(i)}=1\))或者不是(\(y^{(i)}=0\))為貓圖片?
\((x,y)\)是表示一個單獨的樣本,其中\(x\) 是\(n_x\) 維的特征向量,\(y\)則表示最終判斷的結果,\(y\) 只有兩種情況: \(y=0\) 或者 \(y=1\) .
訓練集\(x\) 由m個訓練樣本組成
\((x_1,y_1)\) 表示樣本1的輸入和輸出
\((x_2,y_2)\) 表示樣本2的輸入和輸出
……………………
\((x_m,y_m)\) 表示樣本m的輸入和輸出
m表示訓練樣本的個數,
定義\(X\)由訓練集中的\(x^{(1)},x^{(2)},……,x^{(m)}\) 表示:
向量\(X\) 有m列(訓練集的樣本個數),\(n_x\)行
輸出用\(Y\)表示:
\(Y\)是\(1*m\) 的矩陣。
在監督學習問題中,輸出\(y\) 的標簽是0或者1時,這是一個二元分類的問題。
輸入\(x\) 有可能是一張圖,
輸入\(x\) ,得到\(y\),\(\widehat y\)表示對結果\(y\) 的預測,確切的說\(\widehat y\) 表示一個概率,
當輸入為一張貓的圖片時,\(\widehat y\) 告訴你這是一張貓的圖片的概率
Logistic回歸的參數
線性回歸:\(\widehat y=w^{T}x+b\)
但是我們期望得到的\(\widehat y\) 應該表示的是一個概率,\(\widehat y\) 應該介於\(0 \sim 1\) 之間,
所以在Logistic回歸中,應該將輸出變成
\(Sigmoid(z)\)函數的圖形:
其中
當\(z \to \infty\)和\(z \to 0\)時:
學習Logistic回歸,也就是學習參數\(w\) 和參數\(b\)
定義一個成本函數(Cost function)
我們給出一個訓練集:
通過在訓練集中的一系列操作,找到\(w\) 和\(b\) ,使得
希望得到的輸出為:
其中對於訓練樣本\((i)\) ,對應的預測值為\({\widehat y^{(i)}}\)
損失函數(Loss function):用來衡量算法的運行情況,
通過定義損失函數\(L(\widehat y,y)\) 來衡量預測輸出值 \(\widehat y\) 和實際值\(y\) 有多接近,
但是上面這種損失函數的缺點是最低點的極值不止一個,可能在使用梯度下降接近尋找損失函數最低點時會遇到困難,所以不使用上面這種損失函數,而采用下面這種:
當實際結果\(y=0\) 時,
此時要想損失函數小,即\(-\log (1 - \widehat y)\) 小,即\(\log (1 - \widehat y)\) 大,則需要\(\widehat y\) 盡可能小,但是\(\widehat y\) 介於\(0 \sim 1\) 之間,所以此時\(\widehat y=0\) ,和實際情況\(y=0\) 接近。
當實際結果\(y=\) 1時,
此時要想損失函數小,即\(-\log (\widehat y)\) 小,即\(\log (\widehat y)\) 大,則需要\(\widehat y\) 盡可能大,但是\(\widehat y\) 介於\(0 \sim 1\) 之間,所以此時\(\widehat y=\) 1,和實際情況\(y=1\) 接近。
損失函數(Loss function)是在單個訓練樣本中定義的,衡量的是單個訓練樣本上的表現,要想衡量在多個訓練樣本乃至訓練集上的表現,要看成本函數(Cost function)
成本函數(Cost function):衡量的是在全體的訓練樣本上表現
成本函數(Cost function):
其中\(\widehat y^{(i)}\) 是用一組特定的參數\(w\) 和 \(b\) 通過logistic回歸算法得出的預測輸出值