神經網路基礎知識以及Rosenblatt感知器

2021-07-22 03:28:35 字數 2657 閱讀 9759

[toc]

最近開始學習神經網路與機器學習,學校的暑期課程學習曲線比較陡,老師預設我們已經具備了很多基礎知識了,所以學起來很費力。所以就把自己的一些理解總結起來,放在這裡,供參考。

rosenblatt感知器能夠對於線性可分的資料很好地分類,而其中機理與svm、似然函式之類的方法不同。它包含了乙個隱含的損失函式,同時也是可用用夾逼定理證明嚴格收斂的[2]。

輸入:帶標籤的資料,其中輸入資料為m維,且共有n組資料,標籤\(l\)為閾值函式:

\[x = \ | i = 1,2,...n \}, x^i = (x_1^i, x_2^i,...,x_m^i), l^i \in \ \]

偽**實現過程(參考1,不過做了一定的修改):

for i = 1,2,...,n:

\(\widehat^i = (1 , x^i) = (1, x_1^i, x_2^i,..., x_m^i)\) // 對於內部偏置量的公升維

\(\widehat^ = \widehat^l^\) // 利用標籤label實現對於輸入資料的重新處理,方便後面直接採用

float w =< (m + 1) random float number >; // 隨機產生m+1維需要估計的引數

float \(\eta\) =

; // 學習率引數,通常取1,其實無所謂的,只是影響收斂速度

boollean errordetect = true ;

while(errordetected)

\widehat^ < 0 $ ):

errordetected = true ;

\(w = w + \widehat^\)}

最終輸出:

\(w\)

考慮最簡單的一維資料的情況:

clear;

clc ;

x1 = 1 + 2 * rand(25 , 1) ;

x2 = -2 - 3 * rand(30 , 1 ) ;

x11 = [ones(size(x1)) x1 ];

x22 = [- ones(size(x2)) -x2 ];

x = [x11 ; x22 ];

w = [0 ,0 ]; % 任意取的

errordetected = 1 ;

counter = 0 ;

while errordetected == 1

errordetected = 0 ;

for i = 1:size(x , 1)

counter = counter + 1 ;

if(w * x(i, :)' <= 0)

errordetected = 1 ;

w = w + x(i, :) ;

endend

end

w = w/norm(w); % 向量歸一化,便於顯示

temp = [w ;zeros(1 , 2 )];

figure(1)

scatter(x1 ,zeros(size(x1)) , 'xr');

hold on ;

plot(temp(: , 2) , temp(: , 1) , 'k' ); % 權重向量為黑線

scatter(x2 ,zeros(size(x2)) , 'ob');

set(gca , 'xlim' , [-5 5]);

set(gca , 'ylim' , [-2 2]);

text('interpreter','latex','string','$$x^i, i = 1,2,...,n$$','position',[-1 , -1.5],'fontsize',16);

hold off ;

figure(2)

scatter(x1 ,ones(size(x1)) , 'xr');

hold on ;

plot(temp(: , 2) , temp(: , 1) , 'k' ); % 權重向量為黑線

scatter(x2 ,ones(size(x2)) , 'ob');

set(gca , 'xlim' , [-5 5]);

set(gca , 'ylim' , [-2 2]);

text('interpreter','latex','string','$$\widehat^i =( 1, x^i), i = 1,2,...,n$$','position',[-1 , -1.5],'fontsize',16);

hold off ;

figure(3)

scatter(x1 ,ones(size(x1)) , 'xr');

hold on ;

plot(temp(: , 2) , temp(: , 1) , 'k' ); % 權重向量為黑線

scatter(-x2 ,-ones(size(x2)) , 'ob');

set(gca , 'xlim' , [-5 5]);

set(gca , 'ylim' , [-2 2]);

text('interpreter','latex','string','$$\widehat^ = \widehat^l^ $$','position',[-1 , -1.5],'fontsize',16);

hold off ;

rosenblatt感知器詳解

神經網路與機器學習

c++**實現

神經網路基礎知識

1 前饋神經網路 前饋神經網路描述的是網路的結構,是指每一層的神經元只接受前一層神經元的輸入,並且輸出到下一層。2 bp神經網路 3 mlp mlp是多層感知機也被稱為多層神經網路,是一種前向結構,包括輸入層 隱藏層和輸出層。至少三層結構 即隱藏層只有一層網路 如圖所示 4 cnn cnn就是著名的...

神經網路基礎知識(神經網路簡介)

一 生物神經網路 神經元的排列和突觸的強度 由複雜的化學過程決定 確立了神經網路的功能。突觸有兩種型別,興奮性突觸和抑制性突觸。前者產生正突觸後電位,後者產生負突觸後電位。抑制性 神經元雖然接收到其他神經元傳遞的資訊,但沒有向外傳遞資訊,該神經元稱 抑制性 的 興奮性 當乙個神經元的樹突接收的興奮資...

神經網路基礎知識收集

更新中 1 神經網路 人工神經網路 artificial neural network,ann 是指一系列受生物學和神經學啟發的數學模型。這些模型主要是通過對人腦的神經元網路進行抽象,構建人工神經元,並按照一定拓撲結構來建立人工神經元之間的連線,來模擬生物神經網路。在人工智慧領域,人工神經網路也常常...