12 從線性模型到神經網路
我們把線性模型們都大統一了。
$$
y \overset{f}{\longleftrightarrow} \mathbb{E}[y] \leftrightarrow \eta = \mathbf{w}^T\mathbf{x} + b
$$
接下來就要進入到令人興奮的神經網路模型了!
首先,我們先來介紹著名的感知器…嗯…前面不是介紹過了?
喔喔!對喔!他長這個樣子:
$$
y = \sigma(\mathbf{w}^T\mathbf{x} + b)
$$
其中 $\mathbf{w}^T\mathbf{x} + b$ 是我們熟悉的線性模型,然後 $\sigma$ 就是所謂的 activation function。
不覺得這看起來跟上面的很相似嗎?
我們動點手腳:
$$
\sigma^{-1}(y) = \mathbf{w}^T\mathbf{x} + b
$$
是的!發現了嗎?其實 $\sigma^{-1}$ 就是在廣義線性模型裡的鏈結函數阿!他會是 activation function 的反函數!
這樣是不是又了結了一樁心事了呢?
堆疊
在神經網路當中,我們會把一個一個神經元並排起來,數學上看起來就是把預測單一個 y 擴張成多個維度:
$$
\mathbf{y} = \sigma(W^T\mathbf{x} + \mathbf{b})
$$
所以在權重 W 的部份也隨之從一個向量擴張成一個矩陣,b 的部份也是,可以自己驗算看看。
但是預測多維向量並不是讓模型強大的地方,讓模型強大是因為把很多個這樣的模型頭尾接起來。
$$
\mathbf{x} \overset{f^{(0)}}{\longrightarrow} \mathbf{h}^{(1)} \overset{f^{(1)}}{\longrightarrow} \dots \overset{f^{(k-1)}}{\longrightarrow} \mathbf{h}^{(k)} \overset{f^{(k)}}{\longrightarrow} \mathbf{y}
$$
當中的這些函數們 $f^{(k))}$ 就是我們說的層。
$$
\mathbf{h}^{(k)} = f^{(k))}(\mathbf{h}^{(k-1)}) = \sigma(W^T\mathbf{h}^{(k-1)} + \mathbf{b})
$$
神經網路模型之所以強大的原因是因為將模型頭尾相接,並不是因為他是模擬生物系統,只是靈感是從生物系統上得來的而已。
搭配上 activation function 的非線性轉換,就可以模擬很多非線性的現象。
model | link function | activation function |
---|---|---|
linear regression | identity function: $y = x$ | identity function: $y = x$ |
logistic regression | logit function: $y = \frac{x}{1-x}$ | sigmoid function: $y = \frac{1}{1 + e^{-x}}$ |
Poisson regression | log function: $y = ln(x)$ | exponential function: $y = exp(x)$ |