感知器 (英文:Perceptron), 是神經(jīng)網(wǎng)絡(luò)中的一個概念。感知器模型是美國學(xué)者羅森勃拉特 (Rosenblatt) 1957年就職于康奈爾航空實驗室為研究大腦的存儲、學(xué)習(xí)和認(rèn)知過程而提出的一類具有自學(xué)習(xí)能力的神經(jīng)網(wǎng)絡(luò)模型, 它是第一個機(jī)器學(xué)習(xí)模型。
感知器分為單層感知器和多層感知器。Rosenblatt提出的感知器模型是一個只有單層計算單元的前向神經(jīng)網(wǎng)絡(luò), 稱為單層感知器 (Single Layer Perceptron) , 它是一種二元線性分類器。單層感知器是最簡單的神經(jīng)網(wǎng)絡(luò), 它包含輸入層和輸出層, 而輸入層和輸出層是直接相連的。單層感知器的缺點是只能解決線性可分的分類模式問題。對于非線性問題, 采用多層網(wǎng)絡(luò)結(jié)構(gòu)可以增加網(wǎng)絡(luò)的分類能力, 即在輸入層與輸出層之間增加一個隱含層, 從而構(gòu)成多層感知器 (Multilayer Perceprons)。
感知器算法是廣大模式識別和神經(jīng)網(wǎng)絡(luò)研究人員所熟悉的最簡單的學(xué)習(xí)機(jī)器, 也是后來發(fā)展的許多復(fù)雜算法的基礎(chǔ)。
正文
感知器,也可翻譯為感知機(jī),是 Frank Rosenblatt在1957年就職于Cornell航空實驗室(Cornell Aeronautical Laboratory)時所發(fā)明的一種人工神經(jīng)網(wǎng)絡(luò)。它可以被視為一種最簡單形式的前饋式人工神經(jīng)網(wǎng)絡(luò),是一種二元線性分類器。
Frank Rosenblatt給出了相應(yīng)的感知器學(xué)習(xí)算法,常用的有感知機(jī)學(xué)習(xí)、最小二乘法和梯度下降法。譬如,感知機(jī)利用梯度下降法對損失函數(shù)進(jìn)行極小化,求出可將訓(xùn)練數(shù)據(jù)進(jìn)行線性劃分的分離超平面,從而求得感知器模型。
感知器是生物神經(jīng)細(xì)胞的簡單抽象,如圖1。神經(jīng)細(xì)胞結(jié)構(gòu)大致可分為:樹突、突觸、細(xì)胞體及軸突。單個神經(jīng)細(xì)胞可被視為一種只有兩種狀態(tài)的機(jī)器——激動時為‘是’,而未激動時為‘否’。
神經(jīng)細(xì)胞的狀態(tài)取決于從其它的神經(jīng)細(xì)胞收到的輸入信號量,及突觸的強(qiáng)度(抑制或加強(qiáng))。當(dāng)信號量總和超過了某個閾值時,細(xì)胞體就會激動,產(chǎn)生電脈沖。電脈沖沿著軸突并通過突觸傳遞到其它神經(jīng)元。為了模擬神經(jīng)細(xì)胞行為,與之對應(yīng)的感知機(jī)基礎(chǔ)概念被提出,如權(quán)量(突觸)、偏置(閾值)及激活函數(shù)(細(xì)胞體)。
在人工神經(jīng)網(wǎng)絡(luò)領(lǐng)域中,感知器也被指為單層的人工神經(jīng)網(wǎng)絡(luò),以區(qū)別于較復(fù)雜的多層感知器(Multilayer Perceptron)。作為一種線性分類器,(單層)感知器可說是最簡單的前向人工神經(jīng)網(wǎng)絡(luò)形式。盡管結(jié)構(gòu)簡單,感知器能夠?qū)W習(xí)并解決相當(dāng)復(fù)雜的問題。感知器主要的本質(zhì)缺陷是它不能處理線性不可分問題。
起源
1943年,心理學(xué)家Warren McCulloch和數(shù)理邏輯學(xué)家Walter Pitts在合作的《A logical calculus of the ideas immanent in nervous activity》論文中提出并給出了人工神經(jīng)網(wǎng)絡(luò)的概念及人工神經(jīng)元的數(shù)學(xué)模型,從而開創(chuàng)了人工神經(jīng)網(wǎng)絡(luò)研究的時代。? 1949年,心理學(xué)家唐納德·赫布在《The Organization of Behavior》論文中描述了神經(jīng)元學(xué)習(xí)法則。
人工神經(jīng)網(wǎng)絡(luò)更進(jìn)一步被美國神經(jīng)學(xué)家 Frank Rosenblatt 所發(fā)展。他提出了可以模擬人類感知能力的機(jī)器,并稱之為‘感知機(jī)’。1957年,在 Cornell 航空實驗室中,他成功在IBM 704機(jī)上完成了感知機(jī)的仿真。兩年后,他又成功實現(xiàn)了能夠識別一些英文字母、基于感知機(jī)的神經(jīng)計算機(jī)——Mark1,并于1960年6月23日,展示與眾。
為了‘教導(dǎo)’感知機(jī)識別圖像,Rosenblatt,在Hebb 學(xué)習(xí)法則的基礎(chǔ)上,發(fā)展了一種迭代、試錯、類似于人類學(xué)習(xí)過程的學(xué)習(xí)算法——感知機(jī)學(xué)習(xí)。除了能夠識別出現(xiàn)較多次的字母,感知機(jī)也能對不同書寫方式的字母圖像進(jìn)行概括和歸納。但是,由于本身的局限,感知機(jī)除了那些包含在訓(xùn)練集里的圖像以外,不能對受干擾(半遮蔽、不同大小、平移、旋轉(zhuǎn))的字母圖像進(jìn)行可靠的識別。
首個有關(guān)感知器的成果,由 Rosenblatt 于1958年發(fā)表在《The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain》的文章里。1962年,他又出版了《Principles of Neurodynamics: Perceptrons and the theory of brain mechanisms》一書,向大眾深入解釋感知機(jī)的理論知識及背景假設(shè)。此書中介紹了一些重要的概念及定理證明,例如感知機(jī)收斂定理。
雖然最初被認(rèn)為有著良好的發(fā)展?jié)撃埽兄獧C(jī)最終被證明不能處理諸多的模式識別問題。1969年,Marvin Minsky 和 Seymour Papert 在《Perceptrons》書中,仔細(xì)分析了以感知機(jī)為代表的單層神經(jīng)網(wǎng)絡(luò)系統(tǒng)的功能及局限,證明感知機(jī)不能解決簡單的異或(XOR)等線性不可分問題,但 Rosenblatt 和 Minsky 及 Papert 等人在當(dāng)時已經(jīng)了解到多層神經(jīng)網(wǎng)絡(luò)能夠解決線性不可分的問題。
由于 Rosenblatt 等人沒能將感知機(jī)學(xué)習(xí)算法及時推廣到多層神經(jīng)網(wǎng)絡(luò)上,又由于《Perceptrons》在研究領(lǐng)域中有著巨大影響,加之人們對書中論點的誤解,造成了人工神經(jīng)領(lǐng)域發(fā)展的長年停滯及低潮,直到人們認(rèn)識到多層感知機(jī)沒有單層感知機(jī)固有的缺陷,以及反向傳播算法在80年代的提出,感知機(jī)學(xué)習(xí)算法才有所恢復(fù)。直到1987年,書中的錯誤得到了校正,并更名再版為《Perceptrons - Expanded Edition》。
在 Freund 及 Schapire (1998),使用核技巧改進(jìn)感知器學(xué)習(xí)算法之后,愈來愈多的人對感知機(jī)學(xué)習(xí)算法產(chǎn)生興趣。后來的研究表明除了二元分類,感知機(jī)也能應(yīng)用在比較復(fù)雜的被稱為 structured learning 類型的任務(wù)上(Collins,2002),也可使用在分布式計算環(huán)境中的大規(guī)模機(jī)器學(xué)習(xí)問題上(McDonald,Hall andMann,2011)。
數(shù)學(xué)描述
感知器使用特征向量來表示的前饋式人工神經(jīng)網(wǎng)絡(luò),它是一種二元分類器,把矩陣上的輸入(實數(shù)值向量)映射到輸出值上(一個二元的值)。
是實數(shù)的表示權(quán)重的向量,是點積。是偏置,一個不依賴于任何輸入值的常數(shù)。偏置可以認(rèn)為是激勵函數(shù)的偏移量,或者給神經(jīng)元一個基礎(chǔ)活躍等級。
(0 或 1)用于對進(jìn)行分類,看它是肯定的還是否定的,這屬于二元分類問題。如果 是負(fù)的,那么加權(quán)后的輸入必須產(chǎn)生一個肯定的值并且大于,這樣才能令分類神經(jīng)元大于閾值0。從空間上看,偏置改變了決策邊界的位置(雖然不是定向的)。
由于輸入直接經(jīng)過權(quán)重關(guān)系轉(zhuǎn)換為輸出,所以感知機(jī)可以被視為最簡單形式的前饋式人工神經(jīng)網(wǎng)絡(luò)。
算法改進(jìn)
附加動量法
它在標(biāo)準(zhǔn)的 BP 算法修正 權(quán)值時,在每一個權(quán)重的變化上加上一項動量因子,動量因子正比于上一次權(quán)重變化量的值,并根據(jù)反向傳播法來產(chǎn)生新的權(quán)重的變化。在沒有附加動量的作用下,網(wǎng)絡(luò)可能陷入局部極小值,利用附加動量的作用有可能跳過這些極小值。這是因為附加動量法在修正其權(quán)值時,考慮了在誤差曲面上變化趨勢的影響,從而抑制了局部極小,找到誤差曲面的全局最小值。這個動量因子實質(zhì)上起到了緩沖的作用,它減小了學(xué)習(xí)過程的振蕩現(xiàn)象,一定程度上加快了 BP 算法的收斂速度。
速率算法
標(biāo)準(zhǔn) BP 算法的學(xué)習(xí)速率采用的是確定值,學(xué)習(xí)速率的選擇非常重要,學(xué)習(xí)速率選得小雖然有利于總誤差縮小,但會導(dǎo)致收斂速度過慢。學(xué)習(xí)速率選取得太大,則有可能導(dǎo)致無法收斂。為了解決這一問題,可以采用自適應(yīng)調(diào)整學(xué)習(xí)效率的改進(jìn)算法,此算法的基本思想是根據(jù)誤差變化而自適應(yīng)調(diào)整。如果權(quán)值修正后確實降低了誤差函數(shù),則說明所選取的學(xué)習(xí)速率值小了,應(yīng)增大學(xué)習(xí)速率; 如果沒有則說明學(xué)習(xí)速率調(diào)得過大,應(yīng)減小學(xué)習(xí)速率。總之使權(quán)值的調(diào)整向誤差減小的方向變化。自適應(yīng)學(xué)習(xí)速率算法可以縮短訓(xùn)練時間。
速率調(diào)整算法
這一算法采用了附加動量法和自適應(yīng)學(xué)習(xí)速率法兩種方法的結(jié)合,既可以找到全局最優(yōu)解,也可以縮短訓(xùn)練時間。此外,還有學(xué)者提出了隱含層節(jié)點和學(xué)習(xí)效率動態(tài)全參數(shù)自適應(yīng)調(diào)整等算法,有效地改善了收斂效果。另一類 BP 改進(jìn)算法是對其進(jìn)行了數(shù)學(xué)上的優(yōu)化,如擬牛頓法在搜索方向上進(jìn)行了改進(jìn); 共軛梯度法是在收斂速度和計算復(fù)雜度上均能取得較好效果,特別是用于網(wǎng)絡(luò)權(quán)值較多的情形 ; Levenberg-Marquardt 法則結(jié)合了梯度下降和牛頓法的優(yōu)點,在網(wǎng)絡(luò)權(quán)值不多的情形下,收斂速度很快,優(yōu)點突出。
參考資料 >
感知器.機(jī)器之心.2024-03-09
感知器神經(jīng)網(wǎng)絡(luò).mathworks.2024-03-09