# 理論學習筆記(YouZhe)
---
## 符號定義
$input : {\bf x} \subseteq X$
$output : y \subseteq Y$
$X$生成$Y$ : $X \rightarrow Y$
target function : $f : X \rightarrow Y(ideal, unknow)$
data : $D = \{ ({\bf x_1},y_1),({\bf x_2},y_2)...({\bf x_N},y_N) \}$
hypothesis : $h:X \rightarrow Y$
hypothesis set : $H = (h_1,h_2,h_3...)$
best hypothesis(練出的最佳模型) : $g:X \rightarrow Y (learned \ to \ be \ used), g \subseteq H$
algorithm : $A$
---
## 機器學習流程
$A$ take $D$ and $H$ to get $g$

https://www.youtube.com/watch?v=nQvpFSMPhr0&list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf&index=1
### 找出$h$函數
$define {\bf x} = (x_1,x_2,x_3...x_d)$
appprove if : $\sum_{i=1}^{d}w_i*x_i>threshold(臨界線)$
deny if : $\sum_{i=1}^{d}w_i*x_i<threshold(臨界線)$
$Y:{1,-1,0(ingnore)}$
sign : 判斷正負 負 -> -1, 正 -> 1
$y = h({\bf x}) = sign( (\sum_{i=1}^{d} x_i*w_i)-threshold )$
$h(x)$推演
$\begin{split} h({\bf x}) &= sign( (\sum_{i=1}^{d} x_i*w_i) - threshold ) \\
&= sign( (\sum_{i=1}^{d} x_i*w_i) + (-threshold)*(+1) ) \ \ 設(-threshold)為w_0 (threshold視作學習出來),(+1)為x_0 \\
&= sign(\sum_{i=0}^{d} x_i*w_i) \ \ 把它當成0向量\\
&= sign({\bf x}*{\bf w^T}) \ \ (當成向量來看) W^T可以看做線的的各個係數(也就是線的法向量) (T是矩陣符號,表矩陣翻轉,也就是ij變ji)\end{split}$
備註: T的部分是後來補充,因此之後算式的T部分可能出錯

補充:上文的0向量定義為始點、終點皆為同一點,無方向。因各個零向量皆同,故在圖上忽略之
二維下的狀況

$w$可以當成是線的係數(法向量)
點就是${\bf x}$
圈叉就是$y$
線就是$h$ 剖分出正負兩邊(線性分類系統)
## 二元分類
### PLA(Perceptron Learning Algorithm)感知器演算法找出$g$
當$g$在現有狀況下最接近$f$時
在$D$中
$g(x) = f(x) = Y$
從$g_0$開始修改$w$,使其更接近$f$
當我們在$w^T_t$發現$({\bf x_i},y_i)點錯誤$
意思為 : $sign(w^T_t*{\bf x_i}) \neq y_i$
是y的值修改
$y$ = +1時,表示$w$向量與$x$向量角度過大,因此與$yx$向量相加
$y$ = -1時,表示$w$向量與$x$向量角度過小,因此與$yx$向量相加
歸納出 $w_{t+1} \leftarrow w_t+y_i{\bf x_i}$

$y=+1$的情況

$y=-1$的情況

不斷進行修正直到沒有錯誤為止
問題:可能沒有無錯誤的$h$
### 在線性可分情況下的證明
當點可以用**一條線**完全分割成true&flase兩邊,我們稱其為線性可分(linear separable)

<pre> 線性可分 不可分 不可分</pre>
線性可分表示: $y_n = sign(w^T_f*{\bf x_n})存在$ (此處底線n代表所有)
數學上的表示為:$y_t*w^T_f*{\bf x_t} \ge min(y_n*w^T_f*{\bf x_n})>0$
by updating $(x_i,y_i)$
$\begin{split}w^T_f*w^T_{t+1} &= w^T_f*(w^T_t+y_ix_i) \\
&= w^T_f*w^T_t+w^T_f*y_ix_i)\\
&> w^T_f*w^T_t+0\end{split}$
向量越來越大,有兩種可能 : 1 角度越來越接近 2 向量長度越來越大
$w^T_t$ change when mistake $(x_i,y_i)$
$sign(w^T_t*x_i) \neq y_i \rightarrow y_iw^T_tx_i \le 0$
$\begin{split} \Vert w^T_{t+1} \Vert ^2 &= \Vert w^T_t+y_ix_i \Vert ^2 \\
&= \Vert w^T_t \Vert ^2 + 2w^T_ty_ix_i + \Vert y_ix_i \Vert ^2 \\
&\le \Vert w^T_t \Vert ^2 + 0 + \Vert y_ix_i \Vert ^2 (帶給w^T_{t+1}成長的唯有後面那項) \\
&\le \Vert w^T_t \Vert ^2 + 0 + max(\Vert y_nx_n \Vert ^2) \\
\end{split}$
推導出以下式,證明其角度越來越接近,但有一個最終的最近線(我還沒搞懂這塊QQ)

#### PLA算法有個問題,當資料線性可分時才可以分出來、停下來,取得最佳解
解法如下:
### pocket演算法
前提
$y_n = f(x) \rightarrow 大部分符合$ (否則資料幾乎無跡可尋)
$g(x) \approx f(x)$ 因此$g(x)同理$ , $f(x)為犯錯率最少的$
將點的遍歷從PLA的照順序一直循環,改成random取點,使得其取到的$h$能夠更多元,不會因順序取法偏重某一塊。
設目前最佳$h$為 $w^T_,$
when $w^T_t$
find mistake $({\bf x_i},y_i)$
$w^T_{t+1} = w^T_t+y_i{\bf x_i}$
if $w^T_{t+1}$ mistake < $w^T_,$
$w^T_, = w^T_{t+1}$
after ??? times
$g(x) = w^T_t$
基本上是以PLA為本質做出調整的算法,因此非常相近
## 多元分類
$y = (1,2,3,4...K)$ K種,不同於二元分類的$y = (+1,-1)$
K如果大到幾乎是所有實數時,就是所謂的迴歸分析
## 線性回歸(linear aggression)
${\bf x} = (x_0,x_1,x_2...x_N)$
$y \approx \sum_{i=0}^n w_ix_i$
hypothesis $h(x) = w^T{\bf x}$
在線性回歸不用sign

https://www.youtube.com/watch?v=qGzjYrLV-4Y&list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf&index=34
點現越接近越好,因此看離線差(紅線)
$E_{in} = \sum^N_{i=1} (h(x_i)-y_i)^2 / N = \sum^N_{i=1} (w^T{\bf x}_i-y_i)^2 / N$
E : error
$E_{in}$ : 資料上的誤差
$E_{out}$ : 輸出時犯的錯誤
$\sum^N_{i=1} (w^T{\bf x}_i-y_i)^2 / N = \sum^N_{i=1} ({\bf x}^T_iw-y_i)^2 / N$
$\begin{vmatrix}
{\bf x}w^T_1 - y_1 \\
{\bf x}^T_2w^T_2 - y_2 \\
{\bf x}^T_3w^T_3 - y_3 \\
{\bf x}^T_Nw^T_N - y_N \\
\end{vmatrix}^2/N$ = $\begin{vmatrix}\begin{vmatrix}
{\bf x}^T_1 \\
{\bf x}^T_2 \\
{\bf x}^T_3 \\
{\bf x}^T_N \\ \end{vmatrix} * w - \begin{vmatrix}y_1 \\y_2 \\y_3 \\ y_N \\
\end{vmatrix}/N\end{vmatrix}^2$ = $\begin{vmatrix}
X w - Y \end{vmatrix}^2 /N$
$min(E_{in}(w)) = \begin{vmatrix}X w - Y \end{vmatrix}^2 /N$ 此w表理想的w

https://www.youtube.com/watch?v=qGzjYrLV-4Y&list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf&index=34
圖長上面這樣,其為凸函數(有一最高or最低點)
#### 方向導數Du

https://www.youtube.com/watch?v=-DumtBiW4HE&t=487s
這是一個雙變數圖形
$\vec{u} = (u_1,u_2)$ 為$(x_0,y_0)對應到f(x,y)的斜向量(長度為1的單位向量)$
$Du 表示 (x_0,y_0)的斜率$
$D_uf(x_0,y_0) = \underbrace{\lim}_{h \rightarrow 0} (f(x_0+hu_1,y0+hu_2)- f(x_0,y0)) / h$

https://www.youtube.com/watch?v=-DumtBiW4HE&t=487s
F(h) 是 全微分
就是$\sum所有變數(變數偏微分*d變數)$
$F_x,F_y$ 是 對x,y偏微分
根據以上算式,最終推導成$<F_x,F_y> . <u_1,u_2> 中間那是內積符號$
#### 梯度

https://www.youtube.com/watch?v=npkl19rcpdY&t=120s
能夠造就最大方向導數(斜率)的方向,將往最大值趨近
註: $|<u1,u2>|$因為<u1,u2>是單位向量,為1,因此省略
另外,因為梯度本質上像是斜率,因此他需要在一個任意可微分的函數中才可找到(才能有斜率)
而梯度的表示法通常如下 :

https://chih-sheng-huang821.medium.com/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E5%9F%BA%E7%A4%8E%E6%95%B8%E5%AD%B8-%E4%BA%8C-%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95-gradient-descent-406e1fd001f
以實例來說就會出現以下結果

https://chih-sheng-huang821.medium.com/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E5%9F%BA%E7%A4%8E%E6%95%B8%E5%AD%B8-%E4%BA%8C-%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%B3%95-gradient-descent-406e1fd001f
在我們的機器學習中,x通常被換成w,而w又可以視作一個向量,
以上圖來說,他的方向導數就會是<10單位的$x_1$方向 , 1單位的$x_2$方向>對<f(x)的單位斜向量>內積
梯度就是<10單位的$x_1$方向 , 1單位的$x_2$方向>
---

https://www.youtube.com/watch?v=2LfdSCdcg1g&list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf&index=35

因在w有最低點,w下任何梯度下都是0 (底下有梯度筆記)
我們稱理想的w為$w_{LIN}$(LIN 是 linear regression簡寫)
接著把$\begin{vmatrix}X w - Y \end{vmatrix}^2 /N$展開
$\begin{vmatrix}w^TX^TwX - 2w^TX^Ty+ y^Ty \end{vmatrix} /N$
令$X^TX = a,\ X^Ty = b,\ y^Ty = c$
化成$\begin{vmatrix}aw^2 - 2bw+ c \end{vmatrix} /N$

(我打不出倒三角,只能截圖QQ)
梯度$E_{in}$就是$E_{in}$的微分(因為梯度是斜率)
轉換回$2\begin{vmatrix}X^TXw - X^Ty\end{vmatrix} /N$
#### 尋找$w_{LIN}$
接者找梯度0的點

在w中製造反矩陣,即可使其為0
若反矩陣不存在,只能解方程式,求出假反矩陣(效果一樣,但不是真正的反矩陣)
接下來就很顯然的,當我們能透過輸入找出在輸入中的最佳解法,那這就意味著,只要資料量足夠且雜訊不致於過多就能幾乎找到最佳的$E_{out}$
因此更詳細的數學證明我就暫時不寫了
這時候就會發現一個有趣的問題,這樣我們不就直接解出答案了!!!就不用讓機器去學習了? 事實上這個方法要找到$w_{LIN}$還是需要跑過迴圈等操作,進行高斯消元才能找出$w_{LIN}$,所以實際上我們也會把它視作是機器學習
---
## 羅吉斯回歸(Logistic regression, logit model)
首先,先了解何謂羅吉斯回歸
基本上他就是線性回歸的變體,不過他的y值從找出線上某個對應的點變成要尋找為某個類別的機率(ex:有80%的機率會成功)
羅吉斯回歸的數學式 :
$f({\bf x}) = P(+1|{\bf x}) \in (0,1)$
其中P為機率的描述法,$P(A|B) 相當於 P(A∩B)/P(B)$ 意味著在B的情況下A的發生率有多少
整句數學式表明了羅吉斯回歸得出的數將為01之間的小數,也就是機率
對於羅吉斯回歸來說,理想的y數據會是0~1之間的機率(以是否的二元分類來看)
但很明顯,我們得到的y通常只會是0或1,因此我們也可視有一般y的data為帶著noise的data
開始推導
$For \ {\bf x} = (x_0,x_1....x_d) (x \rightarrow feature,x_0 = threshold)$
$s = \sum^d_{i=0} x_iw_i$ (s = score)
此處要得到01之間的機率,我們可以帶入一個01之間的S型函數,並將s作為x軸
我們稱這個S型函數為logistic function 使用$\theta(s)$表示
示意圖 :

https://www.youtube.com/watch?v=4rPupwSdAac&list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf&index=41
也就是以下數學式的表示(常用的)

https://www.youtube.com/watch?v=4rPupwSdAac&list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf&index=41
這裡我們可以帶入數字看看,會發現當s=0 時得到1/2,當s=無限大 時得到1,當s=-無限大 時得到0
這裡可能就會有人發現有趣的東西了,其實這就是激活函數裏的sigmoid呢
所以總式子是$h({\bf x}) = \theta({\bf w}^T{\bf x})$
也就是$h({\bf x}) = 1\ /\ 1+e^{(-{\bf w}^T{\bf x})}$
表示為$h({\bf x}) = 1\ /\ 1+exp(-{\bf w}^T{\bf x})$
#### 關於羅吉斯回歸的$E_{in}$
現在來探討$E_{in}$
在一般的分類中,$E_{in}$就是0.1之間符不符合,線性回歸中就是離均差的最小值,至於羅吉斯回歸,我們就直接將y在x中發生的機率改寫
$P(y|{\bf x}) = f({\bf x}) \ or \ 1-f({\bf x})$ 分別對應y=1 or y=-1
再回頭看那張sigmoid圖,會發現他是一張左右對稱的圖,因此$y=-1$時的$1-f(x) = f(-x)$
這時我們要找f(x)就要符合兩條件,一是f(x)的機率夠大,二是h(x)接近f(x)
這裡我們要用一個逆向的方法解決這個問題
$consider D_{ata} = \{({\bf x_1},+1),({\bf x_2},-1)...({\bf x_N},-1)\}$
當我們的$f({\bf x})$要製造出D時的可能性會是 :
$P({\bf x_1})P(y_1,{\bf x_1}) * P({\bf x_2})P(y_2,{\bf x_2})...*P({\bf x_N})P(y_N,{\bf x_N})$意味著,出現$x_i$的機率*出現$x_i$後,符合$y_i$的機率相乘
因為$f(x) = P(+1|{\bf x})$
因此可以替換成
$P({\bf x_1})f({\bf x_1}) * P({\bf x_2})f(-{\bf x_2})...*P({\bf x_N})f(-{\bf x})$
阿因為在Data每個$P({\bf x})$應該要一樣,因此可以不用管他
另外f(x) 可以替換成 h(x)
發現$likelihood(h) \propto \prod^N_{i=1} h(y_i{\bf x}_i) \ \ 註:\prod就是全部相乘的意思,likelihood指可能性$
接著,因為h就相當於我們線的$\theta({\bf w}^T{\bf x})$所以可以改寫成
$max \ \ likelihood(h) \propto \prod^N_{i=1} \theta(y_i{\bf w}^T{\bf x}_i)$
再來為了比較好做微積分,把它加上log(用ln表示自然對數(尤拉數作底)),從連乘變成連加
算式為:$likelihood(h) \propto \sum^N_{i=1} ln(\theta(y_i{\bf w}^T{\bf x}_i))$
接著,因為本來是找可能性最大,但找最小更便於微積分因此加上負號
$min \ \sum^N_{i=1} -ln(\theta(y_i{\bf w}^T{\bf x}_i))$
另外我們這邊幫他加上一個1/N,為了讓她更像是線性回歸中看到的$E_{in}$,變成
$min \ \frac{1}{N}\sum^N_{i=1} -ln(\theta(y_i{\bf w}^T{\bf x}_i))$ 抱歉我到這才知道$\frac{1}{N}$怎麼打出來,所以前面的都超醜
這裡最後推出$E_{in}$的數學式為
$min \ E_{in}\ =\frac{1}{N}\sum^N_{i=1} ln(1+exp(-y_i{\bf w}^T{\bf x}_i))$這裡做的是就是把$\theta 換成 \frac{1}{1+exp(-y_i{\bf w}^T{\bf x}_i))}$,再把log前的負號去掉,使其變為倒數,就變成上圖了,註:如果exp那句看不懂,請往上翻到S型函數圖那邊。
把$E_{in}$的式子畫成圖之後,會發現其仍是凸函數(convex),這點與線性回歸時的一樣

所以我們做一樣的事情,找到梯度為0的地方
這裡我為求好算,先把一些複雜的東西代換掉
設 $a = -y_i{\bf w}^T{\bf x}_i \\
b = 1+exp(-y_i{\bf w}^T{\bf x}_i)$
我們對$E_{in}(x)$微分找梯度(斜率),再利用連鎖律拆成以下
$\frac{\partial E_{in}({\bf w})}{\partial w_j} = \frac{1}{N}\sum^N_{i=1} \frac{\partial ln(b)}{\partial b}\frac{\partial 1+exp(a)}{\partial a} \frac{\partial -y_i{\bf w}^T{\bf x}_i}{w_j}$
### 插播 : 對數函數(log)的微分
這裡先帶出指數函數的微分,之後會用到

註:尤拉數e的定義為
得出一個重要結論,當一個函數以尤拉數為底x為次數時,對x微分會等於自己
這裡再將以上結論的x換成$log_e x$
$e^{log_e x} = x$
$e^{ln x} = x$
將兩邊都微分(對x)
$\frac{d\ exp(ln x)}{d\ ln x}=exp(ln x)$
證明的部分回去找書...
$\frac{d\ exp(ln x)}{d\ ln x}*\frac{d\ ln x}{dx}=exp(ln x)*\frac{d\ ln x}{d\ x}$
$e^{ln x}(lnx)^{'} = 1$
得出最終結論,$自然對數x = \frac{1}{x}$
$(lnx)^{'} = \frac{1}{x}$
---
<!--
定義
$\begin{split} f(x) = \log_a x &= \frac{\log_e x}{\log_e a}(換底公式,e為尤拉數 \\
&= \frac{ln x}{ln a}(ln為自然對數) \end{split}$
$f^{'}(x) = \frac{1}{lna}\frac{1}{x}$
-->
回到我們的對$E_{in}$微分
$\frac{\partial E_{in}({\bf w})}{\partial w_j} = \frac{1}{N}\sum^N_{i=1} (\frac{1}{b})(exp(a))(-y_i{\bf x}_{i,j})$
註:${\bf x}_{i,j}為{\bf x}_i的第j項,矩陣的其他項對w_j微分相當於常數,都會歸0$
將b還原
$\frac{\partial E_{in}({\bf w})}{\partial w_j} = \frac{1}{N}\sum^N_{i=1} (\frac{exp(a)}{1+exp(a)})(-y_i{\bf x}_{i,j})$
轉成$\theta()$
$\frac{\partial E_{in}({\bf w})}{\partial w_j} = \frac{1}{N}\sum^N_{i=1} \theta(a)(-y_i{\bf x}_{i,j})$
這裡是對一個$w_i$作計算,現在我們再把所有$w_i$合起來變梯度,為下式

現在來找梯度0的地方
$\frac{1}{N}\sum^N_{i=1} \theta(-y_i{\bf w}^T{\bf x}_i)(-y_i{\bf x}_{i}) = 0$
在這裡要讓所有梯度為0有一個假設的方法,就是令所有$\theta()$為0
要讓$\theta()$為0就要讓裡面的數趨近$-\infty$
也就是$-y_i{\bf w}^T{\bf x}_i接近\infty$
而$\infty$為正的,因此$y_i$與${\bf w}^T{\bf x}_i$同號,也就是線性可分,但這明顯是很難達成的
所以我們這裡在回到最初的PLA算法,把他學習的方式帶進來
when $sign(w^T_t*{\bf x_i}) \neq y_i$ (此處的>0放在sigmoid函數中就是>50%的意思)
$w_{t+1} \leftarrow w_t+y_i{\bf x_i}$
這裡我們簡化成一個式子比較好表示,如下:
$w_{t+1} \leftarrow w_t+\ if(sign(w^T_t*{\bf x_i}) \neq y_i) *
\ y_i{\bf x_i}$
#### 學習率
這裡我們再帶入學習率的觀念,所謂學習率就是梯度改變的速率,在我們的PLA中就是w每次變化的大小
在學習率大的情況下,模型可以修正得更快,但可能錯過局部的最佳解
在學習率小的情況下,模型修正較慢,但是可以更穩定的下降,錯過最佳解機率更小
其符號表示為$\eta$
大概就這樣吧,後面有關學習率的詳細作用我覺得很顯然,就不詳講了
---
這裡我們帶入我們的式子變成
$w_{t+1} \leftarrow w_t+\ \eta * if(sign(w^T_t*{\bf x_i}) \neq y_i) *
\ y_i{\bf x_i}$
這也就是梯度下降
## 梯度下降(gradient descent)
梯度下降算法意義就如字面上的,因為梯度的方向會是斜率最大的方向(往最大值去),因此我們希望往梯度的反向去走
我們最早講到梯度應該是在羅吉斯回歸的地方,從那時候可以看出,我們機器學習要的就是要在一個函數中找到最小值,我們稱此函數為目標函數,在羅吉斯回歸那邊就是$E_{in}$
就是這句
$w_{t+1} \leftarrow w_t+\ \eta * if(sign(w^T_t*{\bf x_i}) \neq y_i) *
\ y_i{\bf x_i}$
## 激活函數(Activation function)
在神經網路的架構下,一般的輸入輸出相當於激活函數為($f(x) = x$),輸出輸入將會呈正比關係,也就是線性,也就是只能夠解決線性的問題
不過我們機器學習應用的範圍常常是非線性的
因此我們利用非線性方程式解決非線性問題
#### 激活函數的特性?
- 非線性
- 這應該就不用多解釋,最初就是為了非線性的特性引進激活函數
- 可微分
- 因為我們的機器學習理論是基於梯度的改變,因此函數可微分才能做到
- 單調性(重要但非必要)
- 當函數保持單調性時,我們才能有更穩定的梯度,而不是訓練點跟雲霄飛車一樣飛來飛去
### Sigmoid

$S(z) = 1/1+e^{-z}$
其變化意義上最接近生物的神經元
輸出介於0,1之間
優點
- 非線性
- 梯度較為平穩。
- 對分類來說是好用的。
- Sigmoid輸出介於0~1,因此不管怎麼樣的輸入,都不會造成blow up。
缺點
- 當輸入的絕對值很大時,輸入的輸出的影響會非常小。
- 具有梯度消失的問題。
- 不明原因,待補
- 輸出不是以0為中心的,因此會使梯度更新在不同方向走太多,使優化困難。
- 網路停止學習或速度很慢。
## 神經網路

$G({\bf x}) = sign(\sum_{i=1}^T)a_i*\underbrace{sign(w^T_i*{\bf x})}_{g_i({\bf x})}$
$a \rightarrow 各個g的權重$
而神經網路可以用來做出更複雜的邊線,而非一般的線性分割
以下以線性分隔的邏輯運算為例

$g_1$與$g_2$分別代表兩個線性分割,而最做邊的那張圖意味著對兩個g進行AND的邏輯運算,
所以這裡設計一個神經網路如下:

將兩個g的權重a都設成+1,另外為了達到AND的效果,我們多添加一個輸出恆為1的常數g,並將其權重$a_0$設為-1以達到必須所有g的輸出皆為1才可判定為True
數學式如下:
$G(x) = sign(-1+g_1({\bf x})+g_2({\bf x}))$
如果要讓更多的線AND就其$a_0$的權重變更小的負數即可
證出我們可以利用神經網路做出複雜的線
此外僅單純用這種邏輯運算,就可以幾乎切出幾近圓形的邊界,即用直線構出平滑線,如下:

不過這方法單純從邏輯計算就會出問題,例如在XOR的邏輯運算中,單純的思考明顯是無法用線性分割構出的,如下:

不過利用一些轉換,我們可以另類的達到這件事
像是以下數學式就能夠達成
$XOR(g_1,g_2) = OR(AND(g_1,-g_2),AND(-g_1,g_2))$

再來補充不同方法在輸出面的函式差異

至於中間的轉換函數,我們通常會不會使用上面途中的階梯函數(只有01),也不會使用到線性的函數,因為這根本沒有意義,那不如直接用單純的線性回歸來做,不需要做到神經網路,是殺雞焉用牛刀了。
所以我們一般會使用比較平滑的函數,也就是之後會講到的激活函數。
#### 神經網路的轉移

在這裡我們對神經網路的轉移做基本的解析
首先定義輸入層為第0層,輸出層為第L層,每層節點數量以d表示,意即$d^{(0)}-d^{(1)}-...-d^{(L)}$
層與層之間的權重w,定義其於i層之後j層之前時,為$w_{ij}$,層數為j,即$w^{(j)}_{ij}$
其中:
0 <= i <= L-1
1 <= j <= L
而x與w計算後的結果為s(score),表示為:
$s^{(l)}_k = \sum^{d^{(l-1)}_{i=0} w^{(j)}_{ij}x^{(i)}_i$ $l$代表為輸進第$l$層的score,$k$代表輸入該層的第k個節點
在經過一層g的轉移後,每個g節點導出的數為$x_k^{(l)}$ 此處$k$為節點的index(base0),$l$為第$l$層輸出的東西
其中$x_k^{(l)}$來源自 $tanh(s^{(l)}_k)$此處tanh代表激活函數,但非必此激活函數
#### 關於網路的訓練
首先定義名詞
我們將神經網路稱為$NN()$,他的輸出為$NN({\bf x}_i)$
誤差值平方稱為$e_i$
$e_i = (y_i-NN({\bf x}_i))^2$
我們要找的就是$e_i$跟$w$關係,也就是$e_i$對$w$的微分$\frac{\partial e_i}{\partial w}$