神經網路學習筆記(一) 單層感知機

2021-07-22 22:17:34 字數 3136 閱讀 4186

神經網路分為從傳播來講分為兩種:

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模型不同,神經元突觸權值可變,因此可以通過一定規則進行學習。可以快速 可靠地解決線性可分的問題。單層感知器由乙個線...