神經網路分為從傳播來講分為兩種:
1.前饋神經網路(前向網路)
2.反饋神經網路
前向網路沒有反饋機制,也就是自能向前傳播而不能反向傳播來調整權值引數。感知機就屬於前向網路。
如上圖 乙個輸入層,乙個輸出層,中間的所有隱層都是向前傳播。
感知機是美國學者f.rosenblatt提出的,他對最早提出的mp不一樣,他的所有維度 的權值是可以改變的,通過對權值的迭代可以快速的解決線性可分的二分類問題。
上面這幅就是乙個單層感知機示意圖,有乙個輸入層,乙個輸出層,m個維度的資料通過每個維度權值w和偏置b來得到最終結果。
首先我們要了解我們需要解決什麼問題。
舉個例子:
我有四個平面點(笛卡爾座標系下) 分別是(0,0) (1,0) (0,1) (1,1)。
現在我想把座標中帶0的座標點歸為一類(類別0),不帶0的為另一類(類別1)。
就有如下:
(0,0) (1,0) (0,1)====》類別0
(1,1)***************=》類別1
那麼我們要怎樣一刀切呢,有很多種切法都能分開,那麼怎麼讓計算機來切? 這時就該單層感知機登場了!!
單層感知機就是在每個維度上乘上乙個權值w 並且在最後加上偏置 使輸出=預期
也就是每個維度上都有 t(i)=w(i)x(i) 整個式子就是 t=w(1)x(1)+w(2)x(2)+w(n)x(n)+b
t就是我們的目標分類值;
w就是每個維度上的權值;
b就是總體的偏置;
就拿我們的例子來說 假設訓練好的權值為 w(1)、w(2) ,偏置為b
在第二個點上有:1*w(1)+0*w(2)+b<0 (我們把<0歸為0 大於0歸為1 這個函式也稱標誌函式)
用同樣的權值和偏置在第四個點上有1*w(1)+1*w(2)+b>0
這就是單層感知機。
首先我們要寫乙個標誌函式 sgn
這個函式實現了 >0歸一 <0歸零 的功能
function
a = sgn
( input )
a=zeros(1,length(input));
fori=1:length(input)
temp=input(i);
if temp>0
a(i)=1;
else
a(i)=0;
endendend
接下去就是邏輯**的編寫
我們把偏置b當作第三維向量輸入
terminalnum=200;
%最大迭代
x=[0,0,1,1;
0,1,0,1];
t=[1,0,0,0];
x=[x;
1,1,1,1];
sima=0.9;%學習率
w=[0,0,0]; %加上偏置b後為三維輸入向量
fori=1:terminalnum
y=w*x;
y=sgn(y);
dy=t-y;
y%輸出 dy
%輸出 flag=1;
for m=1:4
ifabs(dy(m))>10^-10
flag=0;
endendif flag==1
break;
endw=w+sigma*dy*d;
w%輸出
endfprintf('迭代次數: %d',i);
我們看一下輸出
迭代次數: 1>> //*************************====
y =
0 0 0 0
dy =
1 0 0 0
w =
0 0 0.9000
迭代次數: 2>> //*************************====
y =
1 1 1 1
dy =
0 -1 -1 -1
w =
-1.8000 -1.8000 -1.8000
迭代次數: 3>> //*************************====
y =
0 0 0 0
dy =
1 0 0 0
w =
-1.8000 -1.8000 -0.9000
迭代次數: 4>> //*************************====
y =
0 0 0 0
dy =
1 0 0 0
w =
-1.8000 -1.8000 -0.0000
迭代次數: 5>> //*************************====
y =
0 0 0 0
dy =
1 0 0 0
w =
-1.8000 -1.8000 0.9000
迭代次數: 6>> //*************************====
y =
1 0 0 0
dy =
0 0 0 0
六次以後dy為0 也就是與預期輸出相符。
利用單層感知機,我們可以解決很多線性可分的分類,而且非常方便,但是對線性不可分問題無能為力,下一節我們會討論線性不可分的問題。
神經網路(一) 單層感知機
感知機是乙個二類分類的線性分類模型,用來做分類的,類別用 1和 1表示。樣本中的各個特徵組成了空間中的不同的點,點被分成兩類,1和 1。我們的目的就是找到乙個超平面將這兩類點分開。超平面可以用wx b表示,或者將b改寫成w 0w 0 w0 將x的第一列加上偏置項 全1 那麼我們就可以用wx來表示這個...
人工神經網路之單層感知機
人工神經網路 artificial neural network,ann 簡稱神經網路 nn 是基於生物學中神經網路的基本原理,在理解和抽象了人腦結構和外界刺激響應機制後,以網路拓撲知識為理論基礎,模擬人腦的神經系統對複雜資訊的處理機制的一種數學模型。該模型以並行分布的處理能力 高容錯性 智慧型化和...
神經網路(單層感知器)
感知器是神經網路中的乙個概念,在1950s由frank rosenblatt第一次引入。單層感知器是最簡單的神經網路。它包含輸入層和輸出層,而輸入層和輸出層是直接相連的。與最早提出的mp模型不同,神經元突觸權值可變,因此可以通過一定規則進行學習。可以快速 可靠地解決線性可分的問題。單層感知器由乙個線...