###### tags: `ML數學分部` {%hackmd @kk6333/theme-sty1 %} # 非線性分類 - 神經網路 Layer 與 HyperPlane 本篇想探討神經網路的 Layer 層數對線性分類的影響 and 重要性 ~ ## 單層 Hidden Layer 的問題 :::success 延續 [非線性分類 - 神經網路 Neuron 與資料維度的 Mapping](/SA0JJ_t5QWarJq7Ifxk8vg) 所說的結論 可以使用多個 neuron 將資料 Mapping 到更高的維度做他的 HyperPlane 來分類 但當我們到更高維度時卻還有一個問題 **如果是一個 HyperPlane 無法切割、分類的情況那怎麼辦** ?? ::: <br> ## 雙層 Hidden Layer 以下說說雙層 Hidden Layer 是如何解決這個問題的 :::warning 第一層 Hidden Layer : 將資料 Mapping 到了新的維度,並形成了一個 HyperPlane 來分類資料 第二層 Hidden Layer : 將經過第一層分類的資料,轉換到其他維度 ( 也可能一樣的維度 ) 並在新建了一個 HyperPlane 在原有的分類上再次切割 ( 分類 ) 即可作出更複雜的分類 ::: :::info EX : 建立了兩 Hidden Layer 的 NN 在 [ [tensorflow playground](https://playground.tensorflow.org/) ] 上面 要分類此分布 ![](https://i.imgur.com/sESolcm.png) NN 配置 : - hidden layer1 : 2 neuron - hidden layer2 : 2 neuron 我們看 Layer1 出來的分類結果 > 可以發現已經形成了 HyperPlane > 但似乎還不夠精確 ![](https://i.imgur.com/q8m6gVV.png) 再看 Layer2 > 明顯看出,是基於 Layer1 的 HyperPlane 結果,再次做了分類 ![](https://i.imgur.com/tlui1N0.png) 最後結果如下 ![](https://i.imgur.com/uqFE5WX.png) ::: <br> ## Summary 總和來說,當你增加 Layer 的數量,可以使模型在非線性資料分類任務上 有更多的變化性 ( 想想你將資料切割再切割... ) - **增加 Neuron : Mapping 到更高維度** - **增加 Layer : 增加模型非線性變化度** <br> ## 待解問題 :::success **問** : 比起增加 Layer ,那我再增加 neuron Mapping 到更高維度不就好了 ? **答** : 這個問題確實非常值得探討,如果只討論單層和雙層,差別會比較明顯 雖然可以將 layer1 Mapping 到很高的維度,但 model 非線性變化量還是太低, 但當今天是 2 層以上,那可以探討的就更多了 ... ( 有時間再來研究 ) 可以參考這篇論文 [Why and When Can Deep-but Not Shallow-networks Avoid the Curse of Dimensionality: A Review](https://link.springer.com/content/pdf/10.1007/s11633-017-1054-2.pdf) 稍微用 tensor playground 做了比較 ### 2 層 Hidden Layer 每層 8 個 neuron ![](https://i.imgur.com/JMfPnXr.png) ### 6 層 Hidden Layer 每層 5 個 neuron ![](https://i.imgur.com/00fdIEU.png) 可看出結果是差不多的 ( 甚至2層的還更好一點 (?) ) :::