Multilayer Perceptron/Fully connected Neural Network 之觀念,與內部運作的意義解析 (一)

序言:
  之前學 MLP (Multilayer Perceptron) 時,總是被灌輸一種觀念說,這個模型是在模擬大腦神經元傳遞訊號的方式,是人工智慧重要的基石。
  但是在我心目中,這個模型一直只和 SVM 差不多等級:MLP 只是個可以在訓練之後,找到某個最佳的運算方式,將資料很好的分成數類的一個工具罷了。當時我也認為,之所以要算梯度下降及 back propagation ,只是因為沒辦法直接代公式求出最佳解,所以只好用梯度下降慢慢逼近最佳解。
  也就是說,我只覺得他是一個資料科學的工具,而和機器「學習」有段距離。但因為之前我還不了解內部運作其代數上的意涵,MLP 對我而言還像個「黑盒子」,所以就對我的想法不那麼肯定。
  但是最近突然對其有更深的理解,發現在某些狀況下其內部運作要如何以代數解釋。所以便將其寫下來,免得日後遺忘。

本篇可以解釋的問題:

  1. 寬而淺的模型 v.s. 窄而深的模型:為什麼之前會有一派說,就算 model 不深,只要隱藏層 neuron 數夠多,一樣可以很好的分類資料?
  2. Neuron 太多會有什麼問題?太少又會有什麼問題?
  3. 為什麼常用梯度下降做訓練?
  4. 為什麼訓練模型常常需要有很多 training data?

主成分分析 Principal Component Analysis (PCA) 推導、證明 (without Lagrange multiplier)

序言:將 n 個 m 維 data $X=[x_1, x_2, ..., x_n]$ (shape of X = (m,n))
投影到某 k 維空間中,

令 $S={1 \over n} \sum^n_{i=1} (x_i - \bar{X}) ( x_i - \bar{X})^T$ ,S 之 eigenvalue ${\lambda_1}' \geq {\lambda_2}' \geq \dots$ 符合 $S u_i = {\lambda_i}' u_i$,令$[u_1, u_2,...,u_m] = U$

則如果該 k 維空間為 $span\{u_1, u_2, ..., u_k\}$ ,則投影後的 data 有最大的變異數

主成分分析 Principal Component Analysis (PCA) 推導、證明 (using Lagrange multiplier)

序言:當我們需要將 n 個 m 維 data 投影到 k 維中時 (n>k ,即為降維投影)
PCA 可以幫我們找到 k 個互相垂直且長度為 1 的向量
使得投影到那些向量後的 data 有最大的變異數 (可以保留最多原本的 data 特性)
而此降維的投影動作可以幫助我們做特徵擷取 (feature extracting)

Lagrange Multiplier

序言:對 n 維變數 $ X = \begin{bmatrix} x_1 \\[0.5em] \vdots\\[0.5em] x_n \end{bmatrix}$
函數 f(X) 在 g(X)-c=0 的限制條件下 ( f(X) 為連續可導實函數 )
在相對極值處, Lagrange function $F(X, \lambda) = f(X) + \lambda (g(X)-c) $ 符合:
$\nabla F=\frac{\partial F}{\partial X}=\begin{bmatrix} \frac{\partial F}{\partial x_1}\\[0.5em] \vdots\\[0.5em] \frac{\partial F}{\partial x_n} \end{bmatrix}=\vec{0}$    和    $ {\partial F \over \partial \lambda} =0$

用途:F 的極值,即為符合限制條件的 f 極值。可以透過 設 F 對 $x_1, x_2, ..., x_n$ 與對 $\lambda$ 梯度 = 0 求解

Singular Value Decomposition

序言:對於任意矩陣 A,可以運用 SVD 將其分解成 $USV^T$
其中U是 $AA^T $ 之eigenvectors;V是 $A^TA$ 之eigenvectors