## 第三周 Logistic Regression邏輯回歸
### 1 Classification and Representation
#### 1.1 分類Classification
要嘗試分類怔鳖,一種方法是使用線性回歸,并將所有大于0.5的預(yù)測值映射為1,將小于0.5的所有預(yù)測值映射為0.但是葬凳,此方法不適用洞难,因為分類實際上不是線性函數(shù)。
**二元分類問題(binary classification problem)**
? ? y只有兩個值闷袒,0或1致盟;
例如:我們?yōu)殡娮余]件系統(tǒng)構(gòu)建垃圾分類器,然后$x^{(i)}$可能是某件郵件的某些功能匾南,如果它是一封垃圾郵件啃匿,則y是1;否則為0蛆楞;因此 $y \in [0,1]$. 0也被稱為負類溯乒,1為正類;有時用符號'-'和'+'表示豹爹。
#### 1.2 Hypothesis Representation 假設(shè)函數(shù)的表現(xiàn)形式
邏輯回歸模型 $h_\theta(x) = g(\theta^Tx)$
希望 $0 \leq h_\theta(x) \leq 1$
$z = \theta^Tx$
$g(z) = \frac{1}{1+e^{-z}}$?
**g(z)是邏輯函數(shù)(logistic function) 或者S型函數(shù)(sigmoid function)**
以上兩個函數(shù)合并裆悄,得到$h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}}$
![邏輯函數(shù)圖](picture/third_week/logistic_function_1.png)
圖中顯示函數(shù)g(z)將任何實數(shù)映射到(0,1)之間
$h_\theta(x) = P(y=1|x;\theta)=1-P(y=0|x;\theta)$
$P(y=1|x;\theta)+P(y=0|x;\theta)=1$
其中P表示概率probability,是輸出y=1的概率
例如:? $h_\theta(x) = 0.7$
對于一個特征為x的患者,y=1的概率是0.7臂聋,腫瘤是惡性的概率是70%
#### 1.3 Decision Boundary決策邊界
$h_\theta(x) = g(\theta^Tx)$
$z = \theta^Tx$
假設(shè)預(yù)測結(jié)果 'y =1' if $h_\theta(x) \geq 0.5$
? ? 那么$g(z) \geq 0.5$
? ? 如圖:當x軸代表的z值大于0時光稼,g(z)大于0.5;所以$z \geq 0$; 又$z = \theta^Tx$
> 記住(數(shù)學(xué)運算孩等,目前不太理解)
$z=0, e^0 = 1 => g(z)=\frac{1}{2}$
$z \to\infty, e^{\infty}\to0 => g(z)=1$
$z \to-\infty, e^\infty \rightarrow \infty => g(z)=0$
結(jié)論 $\theta^Tx \geq 0$
同樣艾君,預(yù)測? 'y=0' if $h_\theta(x) < 0.5 $
? ? $\theta^Tx < 0$
***決策邊界是假設(shè)函數(shù)的一個屬性***,不是數(shù)據(jù)集的屬性
![](picture/third_week/decision_boundary_1.png)
> 不是用訓(xùn)練集來定義決策邊界,而是用訓(xùn)練集來擬合參數(shù)θ肄方,***給定了參數(shù)向量θ,決策邊界就確定了***
> 決策邊界是分隔y = 0和y = 1的區(qū)域的線冰垄。它由我們的假設(shè)函數(shù)創(chuàng)建。
非線性決策邊界
![](picture/third_week/decision_boundary_2.png)
高階多項式特征變量扒秸,可以得到非常復(fù)雜的決策邊界
***
### 2 Logistic Regression Model
#### 2.1 Cost Function 代價函數(shù)擬合參數(shù)
Linear regression :$J(\theta)=\frac{1}{m}\sum_{i=1}^{m}\frac{1}{2}(h_\theta(x^{(i)}-y^{(i)})^2$
$Cost(h_\theta(x^{(i)}, y^{(i)})=\frac{1}{2}(h_\theta(x^{(i)}-y^{(i)})^2$
$$J(\theta)=\frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x^{(i)}, y^{(i)})$$
去掉上標i,得到
$Cost(h_\theta(x), y)=\frac{1}{2}(h_\theta(x)-y)^2$
得到關(guān)于$h_\theta(x)$和y的公式播演,平方誤差的1/2;預(yù)測值是$h_\theta(x)$,實際結(jié)果是y;
![](picture/third_week/cost_function_1.png)
邏輯回歸的代價函數(shù)
![](picture/third_week/cost_function_2.png)
Cost =0 if y=1, $h_\theta(x)=1$
如果 $h_\theta(x) \to 0? => Cost \to \infty$
![](picture/third_week/cost_function_3.png)
> $Cost(h_\theta(x),y) =0\quad if\quad h_\theta(x)=y$
$Cost(h_\theta(x),y) \to \infty \quad if\ y =0\ and\quad h_\theta(x) \to 1$
$Cost(h_\theta(x),y) \to \infty \quad if\ y=1\ and \quad h_\theta(x) \to 0$
![](picture/third_week/cost_function_4.png)
#### 2.2 Simplified Cost Function and Gradient Descent
$Cost(h_\theta(x), y)=\begin{cases}
-log(h_\theta(x)) & if\ y = 1 \\
-log(1-h_\theta(x)) & if\ y = 0 \\
\end{cases}$
> 注意:y=0 or 1
整合一個公式:
$Cost(h_\theta(x),y)=-y \cdot log(h_\theta(x))-(1-y)log(1-h_\theta(x))$
if y=1伴奥, 代入公式写烤,得到
$Cost(h_\theta(x), y)=-log(h_\theta(x))$
if y=0,代入公式,得到
$Cost(h_\theta(x), y)=-log(1-h_\theta(x))$
邏輯回歸的代價函數(shù):
$$\begin{align}
J(\theta) &=\frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x^{(i)}), y^{(i)}) \\
&=-\frac{1}{m}[\sum_{i=1}^{m}y^{(i)}logh_\theta(x^{(i)}+(1-y^{(i)})log(1-h_\theta(x^{(i)}))]
\end{align}$$
矢量化實現(xiàn):
$h= g(X\theta)$
$J(\theta)=\frac{1}{m} \cdot(-y^Tlog(h)-(1-y)^Tlog(1-h))$
**梯度下降:**
期望得到 $min_\theta J(\theta):$
Repeat {
? ? $\theta_j := \theta_j - \alpha\frac{\delta}{\delta\theta_j}J(\theta)$
}
> 注意: simultaneously update all同時更新所有的$\theta_j$
其中拾徙,$\frac{\delta}{\delta\theta_j}J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}$
Repeat {
? ? $$\theta_j := \theta_j - \frac{\alpha}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j$$
}
> 注意:這里的$h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}$
***梯度下降的矢量化實現(xiàn):***
$\theta := \theta - \frac{\alpha}{m}X^T(g(X\theta)-y)$
![](picture/third_week/cost_function_5.png)
#### 2.3 Advanced Optimization 高級優(yōu)化算法/概念
代價函數(shù)J(θ)洲炊,希望得到最小的minJ(θ),通過梯度下降算法算出J(θ)及偏導(dǎo)數(shù)項
梯度下降算法不是我們可以使用的唯一算法,還有更高級尼啡,更復(fù)雜的算法計算這兩項暂衡,這些算法就是為我們優(yōu)化代價函數(shù)的不同方法
優(yōu)化算法:
- Gradient Descent
- Conjugate gradient
- BFGS (共軛梯度/變尺度法)
- L-BFGS (限制變尺度法)
以上算法的優(yōu)缺點:
通常不需要手動選擇學(xué)習(xí)率α(這些算法的思路:給出計算導(dǎo)數(shù)項和代價函數(shù)的方法,可以認為算法有一個智能的內(nèi)部循環(huán)崖瞭,稱為線性搜素linear search算法狂巢,它可以嘗試不同的學(xué)習(xí)率α并自動選擇一個好的學(xué)習(xí)速率α,甚至可以為每次迭代選擇不同的學(xué)習(xí)速率)
收斂快于梯度下降
缺點:比梯度下降復(fù)雜
建議:不要自己編寫這些更復(fù)雜的算法(除非您是數(shù)值計算方面的專家)书聚,而是使用這些庫唧领,因為它們已經(jīng)過測試和高度優(yōu)化
首先藻雌,提供一個函數(shù),來評估給定輸入值θ的以下兩個函數(shù):J(θ),$\frac{\delta}{\delta\theta_j}J(\theta)$
![](picture/third_week/advanced_optimization_1.png)
上圖中返回的第一個參數(shù)是代價函數(shù)J值斩个,第二個參數(shù)是梯度值胯杭;
![](picture/third_week/advanced_optimization_3.png)
高級優(yōu)化函數(shù)fminunc():表示Octave里無約束最小化函數(shù);調(diào)用方式如下:
options變量:存儲配置受啥;**'GradObj','on'**:設(shè)置梯度目標參數(shù)為打開(on)
**'MaxIter','100':**迭代次數(shù)做个,100次;
initialTheta: 給出θ的猜測初始值滚局,向量必須是d維的居暖,$d \geq 2$
@:函數(shù)指針
例題:
![](picture/third_week/advanced_optimization_2.png)