• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: Matlab
  • 标签: 神经网络  matlab  

资源简介

扩展卡尔曼滤波训练的神经网络matlab代码

资源截图

代码片段和文件信息

function [thetaPe]=nnekf(thetaPxyQR)
% NNEKF     A function using the EKF to training a MLP NN
% [thetaPz]=nnekf(thetaPxyQR) searches the optimal parameters theta 
% of  a MLP NN based on a set of training data with input x and output y.
% Input:
%   theta: initial guess of MLP NN parameter. The network structure is
%   determined by the number of parameters ns the number of inputs (size of
%   x)nx and the number of output (size of y) ny. The euqation of the NN
%   is: y = W2 * tanh( W1 * x + b1) + b2 and theta = [W1(:);b1;W2(:);b2].
%   Therefore ns = nx * nh + nh + nh * ny + ny which gives the number of
%   hidden nodes is nh = (ns - ny) / (nx + ny + 1);
%   P: the covariance of the initial theta. Needs to be tuned to get good
%   training performance.
%   x and y: input and output data for training. For batch training x and
%   y should be arranged in such a way that each observation corresponds to 
%   a column.
%   Q: the virtual process covariance for theta normally set to very small
%   values.
%   R: the measurement covariance dependen on the noise level of data tunable. 
%
% Example: a NN model to approximate the sin function
% rand(‘state‘0)
% N=20;
% Ns=100;
% x=1.2*randn(NNs);
% y=sin(x)+0.1*randn(NNs);
% z=y;
% nh=4;
% ns=nh*2+nh+1;
% theta=randn(ns1);
% P=diag([100*ones(1nh*2) 10000*ones(1nh+1)]);
% Q=0.0

评论

共有 条评论