亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? levmarq.m

?? 人工神經網絡:MATLAB源程序用于訓練測試
?? M
字號:
%#										
%# function [w1f,w2f,indisp] = levmarq(topo,w1,w2,xtr,ytr,xm,ym,epochs,periodisp)
%#										
%# AIM:		Levenberg-Marquardt algorithm for training feed-forward backpropagation
%#		neural networks . Also pruned (ie. not fully connected) networks can be
%#		trained. 							
%#										
%# PRINCIPLE:	Second-order optimization method based on an approximation of the 
%#		inverse Hessian matrix of second derivatives of the cost function with
%#		respect to the weights. The function is called by "nnmodel.m".		
%# 										
%# INPUT:	topo (2 x nh) : matrix containing structure of the NN (nh hidden nodes)
%#			      (H: hyperbolic tangent, L: linear, -: no function)
%#		w1 (nh x (p+1)) : matrix of random weights between input-hidden layer
%#		w2 (1 x (nh+1)) : matrix of random weights between hidden-output layer
%#		xtr (p x ntr) : matrix of training inputs (ntr objects, p variables)	
%#		ytr (1 x ntr) : matrix of training responses	
%#		xm (p x nm) : matrix of monitoring inputs		
%#		ym (1 x nm) : vector of monitoring responses		
%#		epochs : maximum number of epochs (iterations) for the training
%#		periodisp : periodicity of display											
%#										
%# OUTPUT:	w1f (nh x (p+1)) : matrix of weights between input and hidden layer
%#		w2f (1 x (nh+1)) : matrix of weights between hidden and output layer
%#		indisp : optimum number of epochs				
%# 										
%# SUBROUTINES: pmntanh.m : fast hyperbolic tangent function			
%#		lmeval.m : estimation of responses with the final neural network model
%#										
%# AUTHOR:	Programmed by : Magnus Norgaard, IAU/EI/IMM (1994)		
%#			        Neural Network-Based System Identification Toolbox
%#				Web site : http://www.iau.dk/Projects/proj/nnsysid.html
%#											
%#		Modified by Frederic Despagne				
%#		Copyright(c) 1997 for ChemoAC				
%#		Dienst FABI, Vrije Universiteit Brussel		
%#		Laarbeeklaan 103, 1090 Jette					
%#									
%# VERSION: 1.1 (28/02/1998)						
%#										
%# TEST:	Krzysztof Szczubialka 					
%#									

function [w1f,w2f,indisp] = levmarq(topo,w1,w2,xtr,ytr,xm,ym,epochs,periodisp)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NETWORK INITIALIZATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

close
displ = 1;				% Index for training curve display. If not wanted, set it to 0.
N = length(ytr);                  	% Number of training output data
Nm = length(ym);			% Number of monitoring data
[hidden,inputs] = size(w1);          	% Number of hidden nodes 
inputs = inputs-1;                     	% Number of input variables
L_hidden = find(topo(1,:)=='L')';     	% Location of linear hidden neurons
H_hidden = find(topo(1,:)=='H')';     	% Location of tanh hidden neurons
L_output = find(topo(2,:)=='L')';     	% Location of linear output neurons
H_output = find(topo(2,:)=='H')';     	% Location of tanh output neurons
y1 = [zeros(hidden,N);ones(1,N)];  	% Hidden layer outputs
y2 = zeros(1,N);            		% Network output
index = 1*(hidden+1)+1+[0:hidden-1]*(inputs+1); % A useful vector
index2 = (0:N-1)*1;               	% Another useful vector
iteration = 1;                          % Counter variable
dw = 1;                           	% Flag telling that the weights are new
xtr = [xtr;ones(1,N)];             	% Adds bias to training input data
parameters1 = hidden*(inputs+1);        % Number of input-to-hidden weights
parameters2 = 1*(hidden+1);        	% Number of hidden-to-output weights
parameters = parameters1 + parameters2; % Total # of weights
PSI = zeros(parameters,1*N); 		% Derivative of each output w.r.t. each weight
ones_h = ones(hidden+1,1);            	% A vector of ones
ones_i = ones(inputs+1,1);            	% Another vector of ones
                                        % Parameter vector containing all weights
theta = [reshape(w2',parameters2,1) ; reshape(w1',parameters1,1)];
theta_index = find(theta);              % Index to weights<>0
theta_red = theta(theta_index);         % Reduced parameter vector
p0 = 1e6;                         	% Diagonal element of H_inv
Ident = eye(1);                		% Identity matrix
reduced = length(theta_index);         	% The number of parameters in theta_red
index3 = 1:(reduced+1):(reduced^2);   	% A third useful vector
stop_crit = 0;				% Stop training if criterion gets below this value
lambda = 1;				% Initial regularization factor     
PI_vector = zeros(epochs,1);          	% A vector containing the accumulated SSE
clc;


%%%%%%%%%%%%%%%%%%%%%%%%% COMPUTATION OF NETWORK OUTPUT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

h1 = w1*xtr; 					% Inputs to hidden layer 
y1(H_hidden,:) = pmntanh(h1(H_hidden,:));	% Nonlinear outputs of hidden layer
y1(L_hidden,:) = h1(L_hidden,:);    		% Linear outputs of hidden layer

h2 = w2*y1;					% Inputs to output layer
y2(H_output,:) = pmntanh(h2(H_output,:));	% Nonlinear outputs of output layer
y2(L_output,:) = h2(L_output,:);		% Linear outputs of output layer

E = ytr - y2;                     		% Training error
E_vector = E(:);                        	% Reshape E into a long vector
SSE = E_vector'*E_vector;          		% Sum of squared errors (SSE)
PI = SSE; 					% Performance index

while iteration <= epochs 
   
	if dw == 1,


%%%%% COMPUTATION OF NETWORK OUTPUT DERIVATIVES WITH RESPECT TO EACH WEIGHT (PSI MATRIX) %%%%

    		% Elements corresponding to linear output units
		for i = L_output'

      			index1 = (i-1) * (hidden + 1) + 1;
	
			% Part of PSI corresponding to hidden-to-output layer weights
      			PSI(index1:index1+hidden,index2+i) = y1;

			% Part of PSI corresponding to input-to-hidden layer weights
      			for j = L_hidden',
 
  				% Derivatives of linear hidden layer outputs
        			PSI(index(j):index(j)+inputs,index2+i) = w2(i,j)*xtr;
      			end

      			for j = H_hidden',

        			tmp = w2(i,j)*(1-y1(j,:).*y1(j,:));	% Hyp. tang. derivative

				% Derivatives of nonlinear hidden layer outputs
        			PSI(index(j):index(j)+inputs,index2+i) = tmp(ones_i,:).*xtr;
      			end   
    		end

		% Elements corresponding to nonlinear output units
    		for i = H_output',	
			
			index1 = (i-1) * (hidden + 1) + 1;
     			tmp = 1 - y2(i,:).*y2(i,:);

			% Part of PSI corresponding to hidden-to-output layer weights
      			PSI(index1:index1+hidden,index2+i) = y1.*tmp(ones_h,:);
     
      			% Part of PSI corresponding to input-to-hidden layer weights
      			for j = L_hidden',

        			tmp = w2(i,j)*(1-y2(i,:).*y2(i,:));	% Hyp. tang. derivative

				% Derivatives of nonlinear hidden layer outputs
        			PSI(index(j):index(j)+inputs,index2+i) = tmp(ones_i,:).*xtr;
      			end
      
      			for j = H_hidden',

        			tmp  = w2(i,j)*(1-y1(j,:).*y1(j,:));
        			tmp2 = (1-y2(i,:).*y2(i,:));

				% Derivatives of nonlinear hidden layer outputs
        			PSI(index(j):index(j)+inputs,index2+i) = tmp(ones_i,:)...
                                                  			.*tmp2(ones_i,:).*xtr;
      			end
    		end

    		PSI_red = PSI(theta_index,:);	% Reduced PSI-matrix    
		G = PSI_red*E_vector;		% Gradient
		R = PSI_red*PSI_red';		% Means square error part Hessian  
    		dw = 0;			
  	end
  
   
%%%%%%%%%%%%%%%%%%%%%%%%%%% COMPUTATION OF WEIGHTS UPDATES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  	H = R;					% Hessian matrix
  	H(index3) = H(index3)'+lambda;          % Adds diagonal matrix
	h = H\G;                                % Calculates new search direction
  	theta_red_new = theta_red + h;          % Updates parameter vector
  	theta(theta_index) = theta_red_new;

  	% Put the parameters back into the weight matrices 
  	w1_new = reshape(theta(parameters2+1:parameters),inputs+1,hidden)';
  	w2_new = reshape(theta(1:parameters2),hidden+1,1)';


%%%%%%%%%%%%%%%%%%%%%%%%% COMPUTATION OF NEW NETWORK OUTPUT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  	h1 = w1_new*xtr;  					% Inputs to hidden layer
  	y1(H_hidden,:) = pmntanh(h1(H_hidden,:));		% Nonlinear outputs of hidden layer
  	y1(L_hidden,:) = h1(L_hidden,:);			% Linear outputs of hidden layer
    
  	h2 = w2_new*y1;						% Inputs to output layer
  	y2(H_output,:) = pmntanh(h2(H_output,:));		% Nonlinear outputs of output layer
  	y2(L_output,:) = h2(L_output,:);			% Linear outputs of output layer

  	E_new = ytr-y2;                 			% Training error
  	E_new_vector = E_new(:);               			% Reshape E into a long vector
  	SSE_new = sum(sum(E_new_vector'*E_new_vector))/(2*N); 	% Sum of squared training errors (SSE)
  	PI_new = SSE_new; 					% Performance index


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% UPDATE LAMBDA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  	L = h'*G+h'*(h.*lambda);

  	if 2*N*(PI-PI_new) > (0.75*L),
    		lambda = lambda/2;	% Decrease lambda if SSE has fallen sufficiently
  
  	elseif 2*N*(PI-PI_new) <= (0.25*L),
    		lambda = 2*lambda;	% Increase lambda if SSE has grown sufficiently
  	end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% UPDATE FOR NEXT ITERATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  	% Update only if criterion has decreased
  	if PI_new < PI,   
                   
    		w1 = w1_new;			% New input-hidden matrix of weigths
    		w2 = w2_new;			% New hidden-output matrix of weights
    		theta_red = theta_red_new;	% New parameter vector
    		E_vector = E_new_vector;	% Training error
    		PI = PI_new;			% New performance index
    		dw = 1;				% Indicates new weights
    		iteration = iteration + 1;	% Increments counter
    		PI_vector(iteration-1) = PI;	% Collect PI in vector


%%%%%%%%%%%%%%%%%%%%%%% PERIODIC PREDICTIONS ON MONITORING SET %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    		[yhv,yvh] = lmeval(topo,w1,w2,xm);		% Predict monitoring response
    		dd = 0:displ-1;					% Display vector
    		sec(displ) = PI_new;				% Training SSE
    		E_mon = ym - yvh;       			% Monitoring error
		sep(displ) = sum(sum(E_mon.*E_mon))/(2*Nm);	% Monitoring SSE

    		if displ == 1
			oldsep = sep(displ);	% Reference value of monitoring SSE
    		end

		% Display learning curves at regular intervals
    		if periodisp & iteration/periodisp == round(iteration/periodisp)
			plot(dd,sec(1:displ),'--',dd,sep(1:displ),'c')
			rens1=sprintf('   Architecture :(%1.0f-%1.0f-1)',[inputs hidden]);
			rens2=sprintf('Epochs : %5.0f',iteration);
			rens3=sprintf('NNMODEL   ');
			title([rens3 rens1]); xlabel(rens2); ylabel('-- SSEC   - SSEP')
			drawnow
    		end

		% Stores weights if monitoring SSE smaller than the reference value
    		if sep(displ) <= oldsep
			w1f = w1;
			w2f = w2;
			oldsep = sep(displ);	% Update the reference SSE
			indisp = iteration;	% Save the corresponding number of epochs
   		end

   		displ = displ+1;		% Increment display counter
  
 	end

  	% Interrupts training if stop condition is fullfilled
  	if (PI < stop_crit) | (lambda>1e7),break, end          
end






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu亚洲综合色欧美| 精品少妇一区二区三区免费观看 | 欧美性猛交xxxx乱大交退制版 | 亚洲国产精品欧美一二99| 国产精品色一区二区三区| 欧美经典一区二区| 国产亚洲精品福利| 中文字幕日韩一区| 亚洲精品免费播放| 亚洲国产精品久久艾草纯爱| 亚洲曰韩产成在线| 秋霞av亚洲一区二区三| 蜜桃av一区二区三区电影| 蜜桃视频一区二区| 丁香啪啪综合成人亚洲小说| 99久久精品国产麻豆演员表| 欧美亚洲综合色| 欧美一区二区三区系列电影| 日韩精品资源二区在线| 国产欧美日韩卡一| 一区二区三区.www| 蜜桃久久av一区| 成人精品视频一区二区三区| 91免费看片在线观看| 欧美久久久久久久久| 精品国产一区二区三区不卡| 国产精品麻豆久久久| 午夜影院久久久| 国产不卡高清在线观看视频| 欧美视频日韩视频在线观看| 精品国产免费久久| 一区二区三区中文字幕在线观看| 免费成人av在线| www.欧美日韩国产在线| 欧美精选在线播放| 中文字幕一区免费在线观看| 午夜精品成人在线视频| 国产精品一二三区在线| 欧美美女一区二区在线观看| 欧美韩国日本一区| 蜜臀av性久久久久蜜臀aⅴ流畅| 成人午夜在线播放| 日韩欧美一级在线播放| ...xxx性欧美| 国产乱子伦视频一区二区三区| 色综合久久久久久久| 欧美精品一区二区久久婷婷| 亚洲国产精品一区二区久久恐怖片 | 日韩欧美视频一区| 一区二区三区欧美激情| 国产精品一二三| 欧美成人猛片aaaaaaa| 一区二区三区av电影| 99精品视频在线观看免费| 欧美精品一区二区三区视频| 日韩主播视频在线| 日本二三区不卡| 自拍视频在线观看一区二区| 国产美女av一区二区三区| 欧美一区二区在线视频| 亚洲国产aⅴ成人精品无吗| 97久久超碰国产精品电影| 国产婷婷色一区二区三区四区| 六月丁香婷婷色狠狠久久| 欧美揉bbbbb揉bbbbb| 亚洲黄色片在线观看| 色综合咪咪久久| 亚洲激情自拍视频| 欧美在线观看18| 亚洲午夜一区二区三区| 欧美在线视频全部完| 日韩伦理av电影| 日本韩国精品在线| 亚洲一区二区免费视频| 欧美在线视频不卡| 亚洲一区二区在线播放相泽| 色哟哟欧美精品| 亚洲成a天堂v人片| 欧美精品一级二级三级| 三级在线观看一区二区| 日韩精品一区国产麻豆| 国内精品免费**视频| 久久色成人在线| 粉嫩欧美一区二区三区高清影视 | 美国十次综合导航| 久久影院视频免费| 不卡视频免费播放| 一区二区三区色| 91精品国产一区二区三区香蕉| 日韩vs国产vs欧美| 久久久欧美精品sm网站| av在线免费不卡| 亚洲va国产va欧美va观看| 精品久久久久久综合日本欧美| 精品在线观看免费| 国产精品久久影院| 欧美高清dvd| 国产大陆a不卡| 亚洲摸摸操操av| 欧美久久高跟鞋激| 国产91丝袜在线18| 亚洲一区成人在线| www亚洲一区| 在线观看不卡一区| 狠狠色丁香婷综合久久| 亚洲三级免费观看| 日韩欧美在线影院| 99精品久久只有精品| 免费观看91视频大全| 国产精品传媒入口麻豆| 91精品国产黑色紧身裤美女| 国产福利一区在线| 亚洲成人激情av| 国产精品欧美极品| 日韩美女天天操| 欧美视频一区二区三区四区| 国产裸体歌舞团一区二区| 亚洲精品高清在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 在线免费视频一区二区| 国产精品自拍av| 日本中文字幕一区| 亚洲理论在线观看| 国产嫩草影院久久久久| 欧美一二三区在线| 欧美亚洲图片小说| 懂色中文一区二区在线播放| 免费一级欧美片在线观看| 一区二区欧美在线观看| 欧美激情一区二区三区不卡| 日韩精品专区在线| 5月丁香婷婷综合| 欧美性感一区二区三区| 91视频观看视频| 国产98色在线|日韩| 久久精品久久精品| 日韩电影在线一区| 日韩中文字幕av电影| 亚洲资源在线观看| 亚洲综合丁香婷婷六月香| 最新成人av在线| 中文字幕一区二区三区精华液| 国产亚洲女人久久久久毛片| 日韩欧美亚洲另类制服综合在线| 欧美色图一区二区三区| 欧美专区在线观看一区| 色视频成人在线观看免| 色综合天天综合网国产成人综合天| 粉嫩久久99精品久久久久久夜| 国产高清一区日本| www..com久久爱| 一本大道综合伊人精品热热| 色呦呦一区二区三区| 在线观看91视频| 欧美一区二区在线免费观看| 欧美精品一卡二卡| 日韩你懂的在线播放| www国产成人免费观看视频 深夜成人网| 日韩三级在线观看| 欧美精品一区二区三区蜜臀| 国产三级久久久| 亚洲欧洲av色图| 亚洲国产精品影院| 麻豆高清免费国产一区| 国产美女久久久久| 91在线免费视频观看| 在线一区二区观看| 日韩一区二区三区高清免费看看 | 国产精品456露脸| 成人黄色av电影| 在线免费不卡电影| 制服丝袜中文字幕亚洲| 精品区一区二区| 国产精品久久久久久久第一福利 | 国产福利精品一区| 99精品桃花视频在线观看| 欧洲激情一区二区| 亚洲精品在线免费播放| 国产精品不卡一区二区三区| 一区二区三区在线免费观看| 美女诱惑一区二区| 成人国产精品免费观看视频| 在线精品视频免费观看| 日韩欧美不卡一区| 亚洲精品中文字幕在线观看| 久久精品久久综合| 色一情一乱一乱一91av| 日韩免费性生活视频播放| 国产精品久久久久久久久动漫| 午夜精品免费在线观看| 国产在线视频一区二区三区| aaa欧美日韩| 久久久久久久久久久久电影| 一区二区在线观看免费| 精久久久久久久久久久| 在线精品国精品国产尤物884a| 久久久久久亚洲综合| 日韩一区精品视频| 在线一区二区三区| 日本一区二区三区高清不卡|