感知機相關知識
感知機
- 給定輸入x, 權重w, 偏移b, 感知機輸出:
\]
相當於給所有樣本點畫一條線,將不同類別儘可能劃分開,是一個二分類問題
- 二分類:-1或1
- 線性回歸輸出一個實數,感知機輸出離散的兩個值
- softmax可以輸出多分類,感知機只能做二分類
訓練感知機
-
訓練偽代碼
\(\quad\)initialize \(w=0\) and \(b=0\)
\(\quad\)\(\quad\)repeat:
\(\quad\)\(\quad\)\(\quad\)if \(y_i[<w,x_i>+b]\leq0\) then //異號說明預測錯誤
\(\quad\)\(\quad\)\(\quad\)\(\quad\)\(w\leftarrow w+y_ix_i\) and \(b\leftarrow b+y_i\)
\(\quad\)\(\quad\)end if
\(\quad\)until all classified correctly -
等價於使用批量大小為1的梯度下降,並使用如下損失函數
\]
如果上述Loss是一個0,說明\(y<w,x>\)大於零,預測正確,損失為0;反之則預測錯誤,返回損失。
收斂定理
- 假設
- 數據在半徑\(r\)內,相當於數據量大小。
- 餘量\(\rho\)分類兩類 \(\quad \quad y(x^Tw+b)\geq\rho\)
對於\({||x||}^2+b^2\leq 1\) - 感知機保證在\(\frac{r^2+1}{{\rho}^2}\)步後收斂。
多層感知機
XOR問題
- 單層的感知機只能對數據做一個線性分割(類似於切一刀),因此對於異或這類問題無法被感知機擬合,這個問題造成了第一次AI寒冬。
多層感知機
-
一層的感知機模型無法擬合XOR問題,但如果增加感知機層數,就可以擬合異或問題了,比如:
- A感知機對於x軸做切分:等於0返回1,等於1返回-1
- B感知機對於y軸做切分:等於1返回1,等於0返回-1
- 結果為兩個感知機輸出的乘積(0,0)返回-1;(0,1)返回1,(1,0)返回1;(1,1)返回0.
上述兩個感知機模型便可以解決異或的問題,相當於在數據集上切了兩刀。
-
一個多層感知機由輸入層、隱藏層(hidden)、輸出層構成,輸入輸出層的大小由具體問題的輸入輸出類別決定,隱藏層大小由我們自定義,是一個超參數。
單隱藏層
- 輸入\(x\in R^n\)
- 隱藏層\(W_1\in R^{m\times n}\),\(b_1\in R^m\)
- 輸出層\(w_2\in R^m\),\(b_2\in R\)
\]
\]
\(\sigma\)是按元素的激活函數。
為什麼要激活函數(非線性)?
- 如果激活函數還是線性的話,我們的多層感知機模型只能擬合一個線性的問題,如果引入一個非線性的激活函數,可以使我們的模型增加一些非線性的特點,能夠更好的擬合現實世界中的各種問題。
Sigmoid激活函數
\]
它將輸入投影到(0,1)區間。是一個軟的\(\sigma(x)=\begin{cases} 1& \text{if x>0}\\ 1& \text{others} \end{cases}\)
- 優勢:更好求導。
Tanh激活函數
\]
它將輸入投影到(-1,1)區間。相當於Sigmoid的放縮平移。
ReLU激活函數
\]
- 求導更簡單,無指數運算,避免梯度消失
多類分類
- 輸入\(x\in R^n\)
- 隱藏層\(W_1\in R^{m\times n}\),\(b_1\in R^m\)
- 輸出層\(W_2\in R^{m\times k}\),\(b_2\in R^k\)
\]
\]
\]
多隱藏層
\]
\]
\]
\]
- 超參數
- 隱藏層數
- 每層隱藏層大小
一般來說,將第一層設置的較大一點,之後隨着層數慢慢減少。
總結
- 多層感知機使用隱藏層和激活函數來得到一個非線性的模型
- 常用激活函數:Sigmoid,Tanh,ReLU
- 使用softmax來處理多分類
- 超參數為隱藏層層數,和各個隱藏層的大小。
——————覺得有用給筆者點個贊呀o( ̄︶ ̄)o