2017-03-12 50 views
0

如何確定卷積神經元網絡的體系結構我正在做一些關於計算機視覺深度學習的研究。如何確定卷積神經元網絡的架構

我讀了很多關於神經元網絡,反向傳播,隨機梯度下降,過擬合,正則化等等的工作。有「硬」的數學規則:這很容易理解。

但是,我怎麼知道我的卷積神經網絡所需的架構是什麼? 對於〔實施例:我想對這些植物進行分類: http://www.biohof-waldegg.ch/Bilder/Blacke%201%20(Individuell).JPG

我研究與MNIST數據庫(手寫數字數據庫)的例子 - 爲什麼要用最例子這些架構:轉化率5x5的 - >池(2最大值) - > Conv5x5? 我已經繪製的第一個隱層的權重,但圖像的過濾器看起來我都不 熟悉(也不像邊緣檢測的高通濾波器,也不像一個低通濾波器)

  • 豈不是更好在圖層中添加更多功能圖或添加更多隱藏圖層?
  • 如何確定網絡是否太深/太淺
  • 如何確定某個圖層是否具有太多/太少的特徵映射?
  • 如何確定內核大小是否太大/太小?
  • 當我選擇了conv - > conv - > pooling而不是conv - > pooling - > conv?
  • 影響有什麼大步參數? (我知道這個參數做什麼,而不是在和我是如何調整這些參數?
  • 有檢查的方式設有層檢測?(如邊緣/顏色/形狀)
+2

有太多的問題,在這裏,你應該把它分割成幾個問題。另外請注意,其中很多問題都有「試錯」的答案。 –

回答

2

沒有硬性,證明規則如何構建神經網絡(或細胞神經網絡)這是一個開放的問題

爲什麼要用最例子,這些架構:轉化率5×5 - >池(2最大值) - > Conv5x5

情況並非如此。大多數體系結構都使用3x3池,因爲隨後的池化層將感知域擴展爲任意大小。經驗上,一些研究人員(例如Rethinking the Inception Architecture for Computer Vision)發現這些工作更好。

我怎麼能確定網絡是否是太深/太淺

  • 推理太慢 - >網絡太深
  • 精度太低 - >深度可以幫助

如何確定內核大小是否太大/太小?

只需使用3x3作爲默認值即可。原因見Rethinking the Inception Architecture for Computer Vision

我什麼時候選擇conv -> conv -> pooling而不是conv -> pooling -> conv

我寧願寫conv -> conv -> pooling而不是conv -> pooling,因此問題是「我怎麼確定我應該有多少後續卷積層都有。再次,這是一個開放的問題。大多數人選擇2或3以後的卷積層,但最後似乎歸結爲「只是嘗試。」(請讓我知道如果有更多的工程方法!)

什麼影響具有步幅參數?

步幅降低了s輸出特徵映射的大小。因此它可以減少很多內存佔用(* 1/stride^2)。

有沒有辦法來檢查Layer正在檢測哪些功能?

Zeiler的&宏泰:Visualizing and Understanding Convolutional Networks