Neural-Networks

多層感知器與深度神經網絡

  • November 24, 2017

這是一個術語問題。有時我看到人們將深度神經網絡稱為“多層感知器”,這是為什麼呢?我被教導的感知器是一個單層分類器(或回歸器),它使用一種特定的訓練權重的方法(不是反向傳播)具有二進制閾值輸出。如果感知器的輸出與目標輸出不匹配,我們將輸入向量添加或減去權重(取決於感知器給出的是假陽性還是假陰性)。這是一種非常原始的機器學習算法。訓練過程似乎沒有推廣到多層情況(至少不是沒有修改)。深度神經網絡通過反向傳播進行訓練,反向傳播使用鍊式法則將成本函數的梯度傳播回網絡的所有權重。

所以,問題是。“多層感知器”與“深度神經網絡”是一回事嗎?如果是這樣,為什麼要使用這個術語?這似乎是不必要的混亂。此外,假設術語在某種程度上可以互換,當提到由全連接層(沒有捲積層或循環連接)組成的前饋網絡時,我只看到了術語“多層感知器”。這個術語有多寬泛?當提到例如 Inception 網絡時,會使用“多層感知器”這個術語嗎?使用 NLP 中使用的 LSTM 模塊的循環網絡怎麼樣?

可以將多層感知器 (MLP) 視為深度神經網絡 (DNN) 的一個子集,但在文獻中經常可以互換使用。

感知器是根據其學習規則命名的假設是不正確的。經典的“感知器更新規則”是可以用來訓練它的方法之一。神經網絡的早期拒絕正是因為這個原因,因為感知器更新規則容易消失和爆炸梯度,使得訓練超過一層的網絡變得不可能。

在訓練網絡中使用反向傳播導致使用交替壓縮激活函數,例如tanhsigmoid

所以,回答問題,

問題是。“多層感知器”與“深度神經網絡”是一回事嗎?

MLP 是 DNN 的子集。而 DNN 可以有循環,而 MLP 總是前饋的,即

多層感知器 (MLP) 是有限無環圖

為什麼使用這個術語?

科學文獻中使用的許多術語都與時代趨勢有關,並且已經流行起來。

這個術語有多寬泛?當提到例如 Inception 網絡時,會使用“多層感知器”這個術語嗎?使用 NLP 中使用的 LSTM 模塊的循環網絡怎麼樣?

所以,是的,inception、卷積網絡、resnet 等都是 MLP,因為連接之間沒有循環。即使有跳過層的快捷連接,只要是正向的,就可以稱為多層感知器。但是,LSTM 或 Vanilla RNN 等具有循環連接,因此不能稱為 MLP,而是 DNN 的子集。

這是我對事物的理解。如果我錯了,請糾正我。

參考鏈接:

https://cs.stackexchange.com/questions/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network

https://en.wikipedia.org/wiki/Multilayer_perceptron

https://en.wikipedia.org/wiki/Perceptron

http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf

引用自:https://stats.stackexchange.com/questions/315402

comments powered by Disqus