ML:基礎學習
課程:機器學習基石
簡介:第十一講 Linear Models for Classification
時
為了方便會將 調整為 ,如右下圖
實務上會使用 linear regression 設定 ,然後再使用 logistic regression 最佳化
就更新一次嗎?
換個想法,平均是否跟期望值很接近,那麼用隨機抽點的方法再平均抽出來的點,是否也是 ok 的?
演算法
SGD 與 PLA 相似處,如上
那改為可能性表示呢?例如用 logistic regression 選出最大可能性
且因為 為 monotonic 的,所以只需比較 大小
演算法
若有 K-class,大小為 N
需學習 K 個 logistic regressioin,每個大小皆為 N
若有個二元分類的方法,需用 時間計算大小為 的資料
有 K-class 的資料時,假設每個類別的大小皆為 /K,若 K = 10 那麼需花多少時間?
若是 OVA 呢?
所以在這種情況 OVA 比 OVO 沒效率
課程:機器學習基石
簡介:第十一講 Linear Models for Classification
Error 比較
當
對於任意 當
故當 變小時,也意味著 變小
linear regression 也可用同樣的方法得證之
linear regression 也可用同樣的方法得證之
實際運用方法
PLA | linear regression | logistic regression | |
---|---|---|---|
優點 | 線性可分時,很有效率 | 最簡單最佳化 | 簡單最佳化 |
缺點 | 無法得知是否線性可分,得使用 pocket 但效率與 logistic 差不多 | 當 |
當 |
Stochastic Gradient
logistic Regression 更新公式如下,那麼有辦法改成像 PLA 一樣,看見一個- 將原先的梯度
改為 stochastic gradient - 經過足夠的次數
- 平均
平均 - 優缺點
- 優點:簡單快速,可用在 online 學習
- 缺點:不夠穩定,因可能一下走對,一下走錯
- SGD 可視為 soft PLA,錯多少就更新多少
時, 又很大,兩者可視為一樣
- 停止條件 => 跑夠多次,因若還 check gradient 就回到原先較沒效率的方式
- 經驗
,若 範圍適當
Python 原始碼
SGD 並不限定 logistic,例:也可用在 linear regression 上,多類別分類
One-Versus-All (OVA)
如下,但若出現在中間區域或重疊的部分,又該如何決定呢?那改為可能性表示呢?例如用 logistic regression 選出最大可能性
且因為
演算法
, 表示有多少類別- 利用 logistic regression,得到
邊跑邊重新定義資料即可 - 回傳最大的可能性
- 優點:非常有效率,可平行處理,可搭配類似 logistic 的方法
- 缺點:因 1 對多,資料容易不平衡,會出現一直說同一個答案的解法
若有 K-class,大小為 N
需學習 K 個 logistic regressioin,每個大小皆為 N
One versus One (OVO)
演算法-
- 利用 linear binary classification 得到
邊跑邊重新定義資料即可 - 回傳最多票數
- 優點:穩定有效率,因資料變小,可搭配任何二元分類的方法
- 缺點:使用
個 ,需要更多的空間、預測時間更長、更多的訓練
若有個二元分類的方法,需用
有 K-class 的資料時,假設每個類別的大小皆為
留言
張貼留言