# Scaled Cross-Entropy
$$
log_{2}\left(1+e^{-y_{n}\mathbf{w}^{T}\mathbf{x}_{n}}\right)
$$
只要將原本的 CE 除以 $ln2$ 就可以得到這個版本的 CE,這樣做的原因是,SCE 其實也是 0/1 error 的一個上限。
$$
err_{0/1}(s,y)\le err_{SCE}(s,y)=\frac{err_{CE}(s,y)}{ln2}\\
\Rightarrow E^{0/1}_{in}(\mathbf{w})\le E^{SCE}_{in}(\mathbf{w})=\frac{E^{CE}_{in}(\mathbf{w})}{ln2}\\
E^{0/1}_{out}(\mathbf{w})\le E^{SCE}_{out}(\mathbf{w})=\frac{E^{CE}_{out}(\mathbf{w})}{ln2}\\
$$
所以再次回顧之前的 VC bound 告訴我們的不等式:
$$
E^{0/1}_{out}(\mathbf{w})\le \frac{E^{CE}_{in}(\mathbf{w})}{ln2}+\Omega^{0/1}\\
E^{0/1}_{out}(\mathbf{w})\le \frac{E^{CE}_{out}(\mathbf{w})}{ln2}\le \frac{E^{CE}_{in}(\mathbf{w})}{ln2}+\frac{\Omega^{CE}}{ln2}
$$
也就是說我們可以用 Logistic Regression 的結果來對 binary classification 進行預測。
# Stochastic Gradient Descent (SGD)
由於標準的 GD 每次更新就需要對 N 筆資料做計算,為了降低這個計算量,改成隨便挑一筆資料的 GD 作為更新方向。
理由是相信平均走下來的方向跟原本梯度的走向是一樣的。
$$
\mathbf{w}_{t+1}=\mathbf{w}_{t}+\eta\underbrace{\frac{1}{N}\sum_{n=1}^{N}\theta(-y_{n}\mathbf{w}^{T}\mathbf{x}_{n})(y_{n}\mathbf{x}_{n})}_{-\nabla E_{in}(\mathbf{w}_{t})}
$$
這是原版的梯度,是對 N 筆資料的梯度取平均。
$$
\mathbf{w}_{t+1}=\mathbf{w}_{t}+\eta\ \underbrace{\theta(-y_{n}\mathbf{w}^{T}\mathbf{x}_{n})(y_{n}\mathbf{x}_{n})}_{-\nabla err(\mathbf{w}_{t},\mathbf{w}_{x_{n},y_{n}})}
$$
這是 SGD,指挑一筆資料的 GD 作為更新方向。
如果拿來跟 PLA 比較:
$$
\mathbf{w}_{t+1}=\mathbf{w}_{t}+ 1 \times [[y_{n}\ne sign(\mathbf{w}^{T}\mathbf{x}_{n})]] (y_{n}\mathbf{x}_{n})
$$
可以發現:
- $SGD$ logistic regression $\approx$ soft $PLA$
- $PLA\approx SGD$ logistic regression 當 $\eta=1$ 且 $\mathbf{w}^{T}\mathbf{x}_{n}$ 很大的時候。
:::warning
兩個實務上的要點:
- 何時要停?
- t 足夠大的時候
- $\eta$ 應該要多少?
- 如果 $\mathbf{x}$ 在正常的範圍內,通常來說 0.1 是個好選擇
- 老師喜歡的數字是 $0.1126$
:::
---
# One-Versus-All (OVA) Decomposition
$for\ k\in\mathcal{Y}$
$$
\mathcal{D}_{[k]}=\left\{\left(\mathbf{x}_{n},y^{'}_{n}=2[[y_{n}=k]]-1\right)\right\}^{N}_{n=1}
$$
$$
g(\mathbf{x})=argmax_{k\in\mathcal{Y}}\ \color{gray}{\theta}\left(\mathbf{w}^{T}_{[k]}\mathbf{x}\right)
$$
將想要分的 K 組資料,分成「是第 K 組的」跟「不是第 K 組的」兩種資料來進行 Binary Classification,總共會得出 K 種 $\mathbf{w}_{[k]}$。
但如果是單純用 PLA,會出現重疊部分分不清的情況,所以可以採用 logistic regression 來做 Classification,遇到重疊部分就看哪個權重內積的值最大就好。
:::info
由於 logistic function 是 monotonic,所以其實不一定要把內積的值代進函數內,直接比較內積的值大小就好。
所以上面公式中的 $theta$ 是灰色的。
:::
## 優點
有效率,並可以和任何類似 logistic regression 進行搭配。
## 缺點
如果 K 太大,會導致第 K 組跟其他組別的資料量差異太大,會讓 g 偏向於猜 $\color{red}{\times}$
# Multinomial/multiclass logistic regression
multiclass 的延伸版本,專門給每個 Class 都近似一個 logistic function。
$$
\Large
h_{y}(\mathbf{x})=\frac{e^{\mathbf{w}^{T}_{y}\mathbf{x}}}{\sum_{k=1}^{K}e^{\mathbf{w}^{T}_{k}\mathbf{x}}}
$$
跟 logistic regression 一樣的推導過程,可以得出:
$$
\Large
E_{in}(h_{y}(\mathbf{X}))=\frac{1}{N}\sum_{n=1}^{N}\left(ln\left(\sum_{k=1}^{K}e^{\mathbf{w}^{T}_{k}\mathbf{x}_{n}}\right)-\mathbf{w}^{T}_{y_{n}}\mathbf{x}_{n}\right)
$$
和梯度:
$$
\Large \frac{\partial E_{in}(h_{y}(\mathbf{X}))}{\partial \mathbf{w}_{i}}
=\frac{1}{N}\sum_{n=1}^{N}\left(\left(h_{i}(\mathbf{x}_{n})-[[y_{n}=i]]\right)\mathbf{x}_{n}\right)
$$
:::warning
在推導的時候要記住,不會有 $1 - h(\mathbf{x})$ 這種東西出現,他是第 K 種的機率就是 $h_{K}(\mathbf{x})$。
:::
---
# One-versus-one (OVO) Decomposition
兩組兩組出來訓練出 $\mathbf{w}$,也就是說總共有 $\binom{K}{2}$ 種 $\mathbf{w}_{k,l}$。
$for\ (k,l)\in\mathcal{Y}\times\mathcal{Y}$
$$
\mathcal{D}_{[k,l]}=\left\{\left(\mathbf{x}_{n},y^{'}_{n}=2[[y_{n}=k]]-1:y_{n}=k\ or\ y_{n}=l\right)\right\}
$$
$$
g(\mathbf{x})=tournament\ champion
\left\{\mathbf{w}^{T}_{[k,l]}\mathbf{x}\right\}
$$
tournament champion 就是看在 $\binom{K}{2}$ 種 $\mathbf{w}_{k,l}$ 中,看哪一組的被預測次數最多次。
## 好處
K 較小時很有效率,並且穩定,可以搭配任何 binary classification。
## 缺點
由於有 $\binom{K}{2}$ 種 $\mathbf{w}_{k,l}$,所以跟 OVA 相比,更花空間跟時間。
---
# Newton Direction
這是利用多維情況下的牛頓法,來找到下降的方向;通常來說比梯度下降更快。
> 畢竟是二階導數
$$
\mathbf{w}_{t+1}=\mathbf{w}_{t} + -\left(\nabla ^{2}E(\mathbf{w}_{t})\right)^{2}\nabla E(\mathbf{w}_{t})
$$
其中 $\nabla ^{2}E(\mathbf{w}_{t})$ 是海森矩陣,也就是由二階導數所構成的陣列。