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