線性神經網路在Matlab中實現

2021-08-08 10:07:54 字數 2841 閱讀 1057

線性神經網路的神經元傳遞函式是線性函式,因此輸出可以是任意值,感知器的輸出只能是0或1

一、神經元結構

二、學習函式

1、newlind--設計乙個線性層

net=newlind(p,t) 

返回的net已經訓練完畢, p輸入向量,t輸出向量

2、newlin--建立未經訓練的線性層

net=newlin(p,s,id,lr)

p輸入向量,s輸出節點個數,id輸入延遲時間,lr學習率,預設0.01

3、learnwh--lms學習函式

4、maxlinlr--計算最大學習速率

三、matlab實現

1、newlind用於最小二乘擬合

x=-5:5;

y=3*x-7;

randn('state',2); % 隨機數種子,便於重複生成同樣的隨機數

y=y+randn(1,length(y))*1.5; % 加入雜訊的直線

plot(x,y,'o');%生成原始資料點

p=x;t=y;

net=newlind(p,t); %%%%%設計線性神經網路

new_x=-5:0.2:5;

new_y=sim(net,new_x); %%%%%輸出**結果

hold on;plot(new_x,new_y); %畫影象直線

legend('原始資料點','最小二乘擬合函式');

net.iw %權值

net.b %閾值

title('newlind用於最小二乘擬合直線');

2、在雜訊對消中應用

通過濾波將訊號中的雜訊去掉

time=0.01:0.01:10;

noise=(rand(1,1000)-0.5)*4;

input=sin(time); %輸入訊號

p=noise; %將雜訊作為神經網路輸入量

t=input+noise; %將雜訊+訊號作為目標向量

net=newlin([-1 1],1,0,0.0005); %建立線性神經網路

net.adaptparam.passes=70;

[net,y,output]=adapt(net,p,t)%自適應訓練,output作為網路調整過程的誤差

hold on;

subplot(3,1,1)

plot(time,input,'r');

title('訊號波形sin(t)');

subplot(3,1,2);

plot(time,t,'m');

xlabel('t');

title('隨機雜訊波形sin(t)+noise(t)');

subplot(3,1,3);

plot(time,output,'b');

xlabel('t');

title('輸出訊號波形y(t)');

3、訊號**中的應用

clear all;

% 定義輸入向量和目標向量

time=0.5:0.5:20; %時間變數

y=(rand(1,40)-0.5)*4; %定義隨機輸入訊號

p=con2seq(y); %將隨機輸入向量轉換為序列向量

delays=[1 2]; %定義adaline神經元輸入延遲量

t=p; %定義adaline神經元的數目向量

net=newlin(minmax(y),1,delays,0.0005);%%%% 建立線性神經網路

net.adaptparam.passes=70;%%%%% 線性神經網路的自適應調整(訓練)

[net,a,output]=adapt(net,p,t); %%%%%輸出訊號output為網路調整過程中的誤差

% 繪製隨機輸入訊號\輸出訊號的波形

hold on;

subplot(3,1,1);plot(time,y,'r*-'); %輸出訊號output為網路調整過程中的誤差

xlabel('t','position',[20.5,-1.8]);

ylabel('隨機輸入訊號s(t)');

axis([0 20 -2 2]);

subplot(3,1,2);

output=seq2con(output);

plot(time,output,'ko-'); %繪製**輸出訊號的波形

xlabel('t','position',[20.5,-1.8]);

ylabel('**輸出訊號y(t)');

axis([0 20 -2 2]);

subplot(3,1,3);

e=output-y;

plot(time,e,'k-'); %繪製誤差曲線

xlabel('t','position',[20.5,-1.8]);

ylabel('誤差曲線e(t)');

線性神經網路 matlab神經網路

自適應線性元件20世紀50年代末由widrow和hoff提出,主要用於線性逼近乙個函式式而進行模式聯想以及訊號濾波 模型識別和控制等。線性神經網路和感知器的區別是,感知器只能輸出兩種可能的值,而線性神經網路的輸出可以取任意值。線性神經網路採用widrow hoff學習規則,即lms least me...

神經網路 matlab 線性網路 1

newlin 新建乙個線性層 learnwh widrow hoff的學習函式 purelin 線性傳輸函式 mse 最小均方誤差效能函式 pmatlab中線性神經網路相關的常用函式和基本功能 newlin 功能 新建乙個線性神經網路函式。格式 1 net newlin 2 net newlin p...

MATLAB神經網路

ai 菌這幾天沉迷於數模的ai菌來補發文章啦。深深地體會到雖然神經網路工具的api已經有了非常完備的封裝,但是資料的預處理真的讓人感覺非常的麻煩。當你把所有的異常點一一清理,有一種 掘地求公升終於爬出大氣層 飛向太空的感覺 雖然ai菌連夢想開始的地方都爬不出去 所以今天就來介紹一下這幾天的收穫吧 a...