回顧分類問題
Logistic Regression
可分為3個部分,1.定義Function set,2.定義Loss function,3.做Gradient Descent。
Function Set
這邊我們先以二元分類來說明。
- 定義假設函數
與Gradient Descent一樣,我們需要定義一個hypothesis set,hypothesis set是可能產生我們手上資料的函數集合。
在之前分類問題中有講到,分類問題的機率可以用機率分佈推得,然而這樣的概念可以延伸到Logistic Regression。
注意:表示第
筆資料的第
個特徵。
邏輯回歸與線性回歸hypothesis set之差異
Loss Function
- 定義L(loss function)
:樣本數。
:特徵x確定時,
的機率。
:特徵x確定時,
的機率。
假設資料由
這個機率分佈所產生的,
資料
。
就是由這些數據點產生
的機率,因為每個數據點獨立所以等於由每個數據點產生
(
)機率的乘積。
我們要找到某個使
這個機率最大,就是求斜率等於零(函數的最高點或最低點),找到的這個
就是
的
。
注意:因為是
,所以
產生
的機率為
,
是
產生
的機率。
-
求最大值轉換為求最小值
左右同乘(),
越大,
就越小,所以需要求
最小值。
二項分佈與hypothesis set之關係
二項分佈
二項分佈當時,就是白努力分佈。所以
永遠等於1,這邊圖一的
就是
。
等於白努力分佈成功X次(
),
,
所以出現次成功的機率為:
-
-
由圖三可證明:
所以可以推得:
(
為所有數值的乘積)
結論:
Cross entropy(交叉熵)概念
Cross entropy相關文章。Cross-Entropy(交叉熵)形式
實際的機率分佈
()與
我們找到的機率分佈
()的Cross-Entropy的公式為:
☆,這是實際上產生
的function,它與
有不同的
。
☆
★,這是我們找到的產生
的Function,它與
有不同的
。
★
代入cross entropy後得
注意:為機率分佈,
為機率
結論:
就是在求兩個
,
實際的機率分佈
()與
我們找到的機率分佈
()的Cross entropy,Cross entropy 越小表示找到的function與實際越接近。
所以我們可以直接定義Loss function為。
邏輯回歸與線性回歸loss function之差異
最佳的hypothesis
- 對Loss function(
)做Gradient Descent找最小值。
- cross entropy與square error差異
square error再距離目標很遠時,比較平坦,更新速度慢,cross entropy再距離目標很遠時很陡峭,更新速度快。
Discriminative v.s. Generative
- Discriminative 比較 Generative
假設有一個分佈為去定義Loss Function這方法稱為Discriminative ,而分類問題那篇我們使用假設高斯分佈去推測機率的方法稱為Generative。
然而他們找出來的答案不會是一樣的,Generative我們假設資料是高斯分佈,而Discriminative 我們假設資料為任何機率分佈,通常Discriminative model會比Generative
model表現得更好 。
當資料少的時候,有時候加一些假設或許會有比較好的結果。
多類別分類(Multi-class Classification)
我們有3個類的時候,我們想像成求3個二元分類問題。
個樣本、
個特徵、
個類別,
,將
多一個全為
的特徵,
換成
。
-
Softmax
Softmax函數:將值映射成之間的值,所有值之和等於
。
。
Softmax的Hypothesis and Loss function and gradient
,如果
成立,則
,否則
。
- 實作trick
为什么sigmoid和softmax需要和cross entropy一起计算
softmax函数计算时候为什么要减去一个最大值?
有效防止softmax計算時上溢出(overflow)和下溢出(underflow)的方法
Logistic Regression的限制
Logistic Regression無法做非線性分類,需要使用Neural Network,或手動作特徵轉換。