李宏毅深度学习——逻辑回归
這就是logistic regression的原理
logistic regression相比于linear regression而言,外面套了一個sigmoid函數?
?
y_hat是110而不是101
y_hat是110而不是101
交叉熵(cross entropy):cross entropy代表的含義是這兩個分布有多接近,兩個分布越接近cross entropy算出來就會越小
step 2里面的兩個L函數指的是損失函數,對于logistic regression而言,損失函數是交叉熵的求和,指的是真實值,f()值的是預測值,要讓loss function越小,兩者的分布就要越接近
Logistic regression和Linear regression利用梯度下降的方法更新參數的函數式子是一樣的沒有差別
這邊還要重點強調一下,對于參數update邏輯回歸有兩種方法
(1)一種是通過最小化損失函數的方法,logistic regression的損失函數是交叉熵的求和,最小化損失函數,讓損失函數分別對w和b求導最終結果就是:
(2)另一種是用最大似然估計推導(最大化似然函數),似然函數是:
有沒有驚奇的發現,這個式子不就是上面的損失函數么。于是最終,兩種方法,殊途同歸。接下來用梯度下降進行求解,剩下的步驟就和上述一致了。
兩種方法做到最后是一模一樣的
如果Logistic regression的loss function是square error的話會是怎樣一種情況呢?
結果顯示,無論離目標很近,還是離目標很遠,微分算出來都是0。
cross entropy和square error相互對比。結果顯示,使用cross entropy的時候離目標越遠,參數update越快、update參數的步伐越大,距離目標近的時候,參數update越慢、update參數的步伐越小。然而如果使用square error,參數會卡住,參數update得很慢。
左邊和右邊使用了不同的方法計算w和b的值,左邊的loss function是交叉熵,利用最小化損失函數求解w和b,右邊利用最大化似然函數,求出mu和sigma,然后簡單的帶入公式即可求出w和b。
但是找出來的結果是不一樣的,左邊對分布沒有假設,右邊假設了分布情況
discriminative model的準確率會比generative model要更好
為什么會這樣呢?
?從直觀上而言,Testing Data理所應當是屬于class 1的
最后的結果跑出來,屬于class 1的概率小于0.5,因此通過樸素貝葉斯的方法算出來Testing Data應該是數據class 2的
generative對于分布進行了腦補
generative model會適當腦補分布,因此不需要太多的數據。因此在數據量比較小的時候generative model可能會勝過discriminative model
generative model會適當腦補、會適當做一些假設,這反而會把data里面有問題的部分忽視掉,因此提高了對于噪音的魯棒性
接下來我們要考慮多分類問題
softmax指最大值做強化(因為取了指數),0.88指input的x屬于class 1的幾率是0.88,屬于class 2的幾率是0.12,屬于class 3的幾率是0
不能假設為0,1,2。因為0離1近,離2遠
多分類問題,最小化交叉熵和最大化似然函數這兩個也是殊途同歸的,一模一樣的
這種情況下,做logistic regression用來分類是辦不到的,因為logistic regression的boundary就是一條直線
不論怎么畫,都不能使得紅色的放到一邊,藍色的放到另一邊?
那我們該怎么辦呢?
可以做一些特征的變換,比如說通過上面這種方式,將x1轉化成該點和(0,0)之間的距離,x2轉換成該點和(1,1)之間的距離。但是這種方法是人想出來的,而不是機器自己產生的,我們要讓機器自己產生
通過把很多個邏輯回歸接起來,我們就可以解決這樣一個問題
通過調整參數,上面這些都是可以實現的?
?類神經網絡
總結
以上是生活随笔為你收集整理的李宏毅深度学习——逻辑回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李宏毅深度学习——分类
- 下一篇: 李宏毅深度学习作业二