深度學習筆記(1)Logistic回歸,損失函數(Loss function),成本函數(Cost function)


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 = \left( {\begin{array}{*{20}{c}} \vdots & \vdots & \vdots \\ {{x^{(1)}}}& \cdots &{{x^{(m)}}} \\ \vdots & \vdots & \vdots \end{array}} \right) \]

向量\(X\) 有m列(訓練集的樣本個數),\(n_x\)

輸出用\(Y\)表示:

\[Y=[y^{(1)},y^{(2)}.....,y^{(m)}] \]

\(Y\)\(1*m\) 的矩陣。

在監督學習問題中,輸出\(y\) 的標簽是0或者1時,這是一個二元分類的問題。

輸入\(x\) 有可能是一張圖,

輸入\(x\) ,得到\(y\)\(\widehat y\)表示對結果\(y\) 的預測,確切的說\(\widehat y\) 表示一個概率,

\[\widehat y=P(y=1|_{x}) \]

當輸入為一張貓的圖片時,\(\widehat y\) 告訴你這是一張貓的圖片的概率

Logistic回歸的參數

線性回歸:\(\widehat y=w^{T}x+b\)

但是我們期望得到的\(\widehat y\) 應該表示的是一個概率,\(\widehat y\) 應該介於\(0 \sim 1\) 之間,

所以在Logistic回歸中,應該將輸出變成

\[\widehat y=Sigmoid(w^{T}x+b) \]

\(Sigmoid(z)\)函數的圖形:

其中

\[z=w^{T}x+b \]

\[\sigma \left( z \right) = Sigmoid(z) = \frac{1}{{1 + {e^{ - z}}}} \]

\(z \to \infty\)\(z \to 0\)時:

\[z \to \infty , e^{-z} \to 0 ,\sigma(z) \to 1 \]

\[z \to -\infty , e^{-z} \to \infty ,\sigma(z) \to 0 \]

學習Logistic回歸,也就是學習參數\(w\) 和參數\(b\)

定義一個成本函數(Cost function)

我們給出一個訓練集:

\[\{ ({x^{(1)}},{y^{(1)}}).({x^{(2)}},{y^{(2)}}).......({x^{(m)}},{y^{(m)}}).\} \]

通過在訓練集中的一系列操作,找到\(w\)\(b\) ,使得

希望得到的輸出為:

\[{\widehat y^{(i)}} \approx {y^{(i)}} \]

其中對於訓練樣本\((i)\) ,對應的預測值為\({\widehat y^{(i)}}\)

\[{\widehat y^{(i)}} =Sigmoid(z^{(i)})=Sigmoid(w^{T}x^{(i)}+b) \]

損失函數(Loss function):用來衡量算法的運行情況,

通過定義損失函數\(L(\widehat y,y)\) 來衡量預測輸出值 \(\widehat y\) 和實際值\(y\) 有多接近,

\[L(\widehat y,y) = \frac{1}{2}{(y - \widehat y)^2} \]

但是上面這種損失函數的缺點是最低點的極值不止一個,可能在使用梯度下降接近尋找損失函數最低點時會遇到困難,所以不使用上面這種損失函數,而采用下面這種:

\[L(\widehat y,y) = - \left[ {y*\log ( \widehat y) + (1 - y)*\log (1 - \widehat y)} \right] \]

當實際結果\(y=0\) 時,

\[L(\widehat y,y) = -\log (1 - \widehat y) \]

此時要想損失函數小,即\(-\log (1 - \widehat y)\) 小,即\(\log (1 - \widehat y)\) 大,則需要\(\widehat y\) 盡可能小,但是\(\widehat y\) 介於\(0 \sim 1\) 之間,所以此時\(\widehat y=0\) ,和實際情況\(y=0\) 接近。

當實際結果\(y=\) 1時,

\[L(\widehat y,y) = -y\log (\widehat y) \]

此時要想損失函數小,即\(-\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):

\[J(w,b) = \frac{1}{m}\sum\limits_{i = 1}^m {L({{\widehat y}^{(i)}},{y^{(i)}})} = - \frac{1}{m}\sum\limits_{i = 1}^m {\left[ {{y^{(i)}}*\log ({{\widehat y}^{(i)}}) + (1 - {y^{(i)}})*\log (1 - {{\widehat y}^{(i)}})} \right]} \]

其中\(\widehat y^{(i)}\) 是用一組特定的參數\(w\)\(b\) 通過logistic回歸算法得出的預測輸出值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM