感知器是由美國計算機(jī)科學(xué)家羅森布拉特(F.Roseblatt)于1957年提出的。感知機(jī)(Perceptron)是二分類模型,是二類分類的線性分類模型,其輸入為樣本的特征向量,輸出為樣本的類別,取+1和‐1二值,即通過某樣本的特征,就可以準(zhǔn)確判斷該樣本屬于哪一類。感知機(jī)能夠解決的問題首先要求特征空間是線性可分的,再者是二類分類,即將樣本分為{+1, ‐1}兩類。由輸入空 間到輸出空間的符號函數(shù)為:? ? ? f(x)=sign(wx+b)
w和b為感知機(jī)參數(shù),w為權(quán)值(weight),b為偏置( bias)。假設(shè)訓(xùn)練數(shù)據(jù)集是線性可分的,感知機(jī)學(xué)習(xí)的目標(biāo)就是求得一個能夠?qū)⒂?xùn)練數(shù)據(jù)集中正樣本和負(fù)樣本完全分開的分類超平面,為了找到分類超平面,需要定義一個損失函數(shù)并通過將損失函數(shù)最小化來求w和b。
線性分類器在數(shù)學(xué)上被理解為線性判別函數(shù)(Linear Discriminant Functions),在幾何上可以理解為決策超平面(Decision Hyperplanes)。感知器算法的誕生也就是為了確定線性判別函數(shù)中的未知參數(shù)向量w。
感知機(jī)學(xué)習(xí)算法是誤分類樣本驅(qū)動的,每一次更新權(quán)重和偏置都是由誤分類樣本決定。在實(shí)際操作中,首先隨機(jī)選取一個分類超平面,即隨機(jī)選取,然后用梯度下降法不斷極小化目標(biāo)函數(shù)式。極小化的過程不是一次使得所有誤分類點(diǎn)的梯度下降,而是一次隨機(jī)選取一個誤分類點(diǎn)使其梯度下降。
感知機(jī)(perceptron)是一個線性分類器(linear classifiers)。線性分類器的幾何表示:直線、平面、超平面。感知機(jī)是神經(jīng)網(wǎng)絡(luò)的雛形,同時也是支持向量機(jī)的基礎(chǔ),感知機(jī)對應(yīng)于輸入空間(特征空間)中將實(shí)例劃分為正負(fù)兩類的分離超平面,屬于判別模型。感知機(jī)學(xué)習(xí)旨在求出將訓(xùn)練數(shù)據(jù)進(jìn)行線性劃分的分離超平面。
感知機(jī)是生物神經(jīng)細(xì)胞的簡單抽象。神經(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ī)也被指為單層的人工神經(jīng)網(wǎng)絡(luò),以區(qū)別于較復(fù)雜的多層感知機(jī)(Multilayer Perceptron)。作為一種線性分類器,(單層)感知機(jī)可說是最簡單的前向人工神經(jīng)網(wǎng)絡(luò)形式。盡管結(jié)構(gòu)簡單,感知機(jī)能夠?qū)W習(xí)并解決相當(dāng)復(fù)雜的問題。感知機(jī)主要的本質(zhì)缺陷是它不能處理線性不可分問題(比如橢圓、余弦函數(shù)等)
Rosenblatt,在Hebb學(xué)習(xí)法則的基礎(chǔ)上,發(fā)展了一種迭代、試錯、類似于人類學(xué)習(xí)過程的學(xué)習(xí)算法——感知機(jī)學(xué)習(xí),該算法的初衷是為了‘教導(dǎo)’感知機(jī)識別圖像。除了能夠識別出現(xiàn)較多次的字母,感知機(jī)也能對不同書寫方式的字母圖像進(jìn)行概括和歸納。但是,由于本身的局限,感知機(jī)除了那些包含在訓(xùn)練集里的圖像以外,不能對受干擾(半遮蔽、不同大小、平移、旋轉(zhuǎn))的字母圖像進(jìn)行可靠的識別,即對噪聲敏感。
在Freund及Schapire(1998)使用核技巧改進(jìn)感知機(jī)學(xué)習(xí)算法之后,愈來愈多的人對感知機(jī)學(xué)習(xí)算法產(chǎn)生興趣。后來的研究表明除了二元分類,感知機(jī)也能應(yīng)用在較復(fù)雜、被稱為structured learning類型的任務(wù)上(Collins, 2002),又或使用在分布式計算環(huán)境中的大規(guī)模機(jī)器學(xué)習(xí)問題上。
感知機(jī)算法是一個簡單易懂的算法,它是很多算法的鼻祖,比如支持向量機(jī)算法,神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)。因此雖然它現(xiàn)在已經(jīng)不是一個在實(shí)踐中廣泛運(yùn)用的算法,還是值得好好的去研究一下。
這種簡單的感知機(jī)有一個明顯缺陷:只能學(xué)習(xí) 線性可分函數(shù) 。這個缺陷重要嗎?比如? XOR,這么簡單的函數(shù),都不能被線性分類器分類。為了解決這個問題,我們要使用一種多層感知機(jī),也就是——前饋神經(jīng)網(wǎng)絡(luò):事實(shí)上,我們將要組合一群這樣的感知機(jī)來創(chuàng)建出一個更強(qiáng)大的學(xué)習(xí)機(jī)器。神經(jīng)網(wǎng)絡(luò)實(shí)際上就是將大量之前講到的感知機(jī)進(jìn)行組合,用不同的方法進(jìn)行連接并作用在不同的激活函數(shù)上。