基礎篇:一、多層感知器

? ? 在介紹對抗網絡之前,我們應該了解多層感知器的原理。

? ? 多層感知器是一種人工神經網絡,屬于非參數估計,可以用于解決分類和回歸問題。我們先來了解下神經網絡的背景,然后再來介紹下感知器。



? ? 神經網絡

? ? 感知器

? ? 多層感知器


一、神經網絡

人工神經網絡,顧名思義起源于模擬人腦,其目的是理解人腦功能,認知科學家和神經學家共同構建了神經網絡模型,并開展了模擬研究。這項技術與工程結合之后,可以幫助我們建立更好的計算機系統。

Marr認為理解一個信息處理系統具有三個層面,總稱為分析層面(levels of analysis),即:

計算理論:對應計算目標和任務的抽象定義;

表示和算法:關于輸入/輸出如何表示以及從輸入-->輸出的算法說明;

硬件實現:系統的實際物理實現;

這里需要注意的是,對于同一個計算理論,可以有多種表示和算法;而對于同一種表示和算法,可以有多種硬件實現。比如對于自然和人工飛行器,計算理論都是可以“飛行”,算法就是利用“空氣動力學”,而實現方式一個是“拍打翅膀”,一個是“發動引擎”。

人腦可以看作是學習或模式識別的一種硬件實現。如果我們可以逆向分析,從這種實現中提取出人腦使用的表示和算法,并且進一步獲得計算理論,那么我們就可以考慮使用另一種表示和算法,然后得到更適合我們掌握的計算機硬件的實現。

神經網絡可以應用于并行處理。常見的并行架構有單指令多數據(SIMD)機多指令多數據(MSMD)機, 一種是所有的處理器執行相同的指令處理不同的數據;一種是不同的處理器執行不同的指令處理不同的數據。SIMD實現較為簡單,但是應用意義小;MIMD實現復雜,但是現實中多數為此種情況。

神經網絡提出了一種介于中間的模式,即引入了中間的少量局部存儲器,使用處理器的指令在存儲器上輸入不同來實現不同的功能。其中每個處理器對應一個神經元,局部參數對應它的突出權重, 而整個結構就是一個神經網絡。所以,人工神經網絡是一種我們可以實用當前技術構建的、利用并行硬件的方法。

二、感知器

感知器(Perception)是基本的處理元素,它具有輸入、輸出,每個輸入關聯一個連接權重(connection weight),然后輸出是輸入的加權和。


感知器

上圖就是一個單層的感知器,輸入分別是X0、X1、X2,輸出Y是輸入的加權和:

Y = W0X0 + W1X1 + W2X2

在實際的使用中,我們的主要任務就是通過數據訓練確定參數權重。在訓練神經網絡時,如果未提供全部樣本二室逐個提供實例,則我們通常使用在線學習,然后在每個實例學習之后立刻調整網絡參數,以這種方式使得網絡緩慢得及時調整。具體收斂可是使用梯度下降算法。

感知器具有很強的表現力,比如布爾函數AND和OR都可以使用上面的單層感知器實現。但是對于XOR操作則不行,因為單層感知器只能模擬線性函數,對于XOR這種非線性函數,我們需要新型的感知器。

三、多層感知器

對于XOR這種非線性函數的模擬,我們需要采用多層感知器,即在最初的輸入和輸出層之間隱藏著一到多個層,比如:


多層感知器

多層感知器(Multiayer perceptrons, MLP)可以實現非線性判別式,如果用于回歸,可以逼近輸入的非線性函數。其實MLP可以用于“普適近似”,即可以證明:具有連續輸入和輸出的任何函數都可以用MLP近似,已經證明,具有一個隱藏層(隱藏節點個數不限)的MLP可以學習輸入的任意非線性函數。

訓練MLP常用的是向后傳播(backpropagation),這主要是因為在我們收斂誤差函數的時候,使用鏈接規則計算梯度:

原文參考:http://blog.chinaunix.net/uid-26275986-id-4985394.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容