為什麼神經網路可以模組化解決問題

時間 2021-06-03 04:31:43

1樓:考佯囚

神經網路初始化時會自動生成很多隨機的特徵提取器,在訓練過程中,最後一層的分類器會根據每一類全體資料的特徵來找共同點,從而篩選對應類別的有效特徵。

2樓:Magic

神經網路,並不是一種網路結構,也不是網路結構資料的離散化,而是通過借助於網路結構進行資料處理,這種資料處理雖然網路引數是隨機化,但是有反饋機制,通過反饋來調整輸入引數,如同神經一樣,給神經以刺激,將疼痛反饋出來,通過這種方式進行學習,可參考這個吧,神經網路演算法介紹(Nerual NetWorks)。

而模組化我覺的是電腦科學中解決複雜問題的處理方式,將複雜問題分解成簡單問題,蘋果的UI目前也用這個:iOS13 Compositional Layout,模組化並不是模組化,Compositional 有成分、組合的意思,自己覺得在神經網路中各種資料特徵會進行模組化,這樣就自動進行分級了

3樓:馬丘比丘

我也在思考這個問題。我不能很好的回答。但是我可以分享一下我找到的一些線索。

1、 "the world is compositional or God exists," 我第一次看到這句話是在LeCun的ppt 裡 The Path to AI

Compositionality in Computer Vision 更多的內容可以按圖索驥 https://

2、我認為層次化的結構也屬於計算機學科的「思維定式」,所謂「遇事不爽分一層」。計算機網路、體系結構中都無處不在地充斥著「分層(級)」「模組」思維模式。「模組」是複雜問題分解為簡單問題的一種方式。

然而,我認為確實可以質疑這種模組的思維。畢竟在知識庫領域,知識的組織形式是不限於「分層(級)」這一種。個人認為Marvin Minsky的Frame Theory就不是分層級的模組能夠表徵的。

4樓:艾斯威.艾姆

因為演算法工程師把網路結構設計成模組化的。神經網路遠沒有那麼智慧型,不然要是能自動生成結構化層次化的模組我們直接用乙個隨機鏈結的dag就好了,但我們並不這樣做,因為訓練開銷太大了。

神經網路的結構比引數矩陣要重要很多,否則我們也沒必要針對不同問題設計不同的網路結構了,這叫做結構化先驗。

有一些網路結構在解決某些問題時甚至隨機初始化引數就能拿到效果了。比如gcn在graph embedding上的應用。

兩層的神經網路已經可以擬合任意函式,為什麼還要用多層的神經網路?

理論上是這麼說的,但實際上無法操作。硬要用兩層模型的話,可能需要非常多的神經元才能完成任務,引數和計算量會多到在目前裝置上不實用,而且在同樣訓練資料下,DNN比兩層網路更容易學出效果,或者說,想把2層網路訓練到和目前DNN效果一樣,你可能需要超大的訓練資料量才可以,或者換一種全新的學習演算法,其實說...

keras寫的卷積神經網路,為什麼每epoch訓練後,記憶體占用一直增長,直到溢位?

leon 我之前用pytorch時遇到過這種問題,原因是每個iteration的型別為tensor的loss都存了下來,loss裡面包含網路計算圖,所以每次iteration之後記憶體一直漲,後來只儲存loss的value就可以了。不知道keras是不是也有這種問題 ZW Huang 記憶體溢位的問...

為什麼要用GPU來訓練神經網路而不是CPU?

小M同學 GPU在浮點數的運算上要快於CPU。神經網路訓練往往需要處理大量的資料,GPU高效能會節省訓練的時間。而且選擇 GPU 還需要考慮視訊記憶體的大小。推薦選擇視訊記憶體大於 8GB 的 GPU,這一點很重要,因為在執行大型神經網路時,系統預設將網路節點全部載入視訊記憶體,如果視訊記憶體不足,...