matlab newrb 保存图,matlab - MATLAB的用于设计径向基网络的newrb与文档不兼容。 为什么? - 堆栈内存溢出...

博主在使用MATLAB的newrb函数构建径向基网络以近似正弦波信号时遇到问题。尽管按照文档使用列向量调用newrb,但得到的近似值异常准确,导致均方误差为0,这在仅使用两个隐藏神经元的情况下不合理。此外,网络视图显示了100个输入,而预期应只有一个。示例代码展示了列向量和行向量调用newrb的差异。问题在于理解这种行为及其可能的原因。
摘要由CSDN通过智能技术生成

我正在尝试使用径向基网络近似各种信号。 特别是,我利用了MATLAB的newrb 。

我的问题是,如果我按照newrb的描述 ,此功能的行为似乎不正确。 据我了解,尽管有文档,但转置所有参数还是有意义的。

以下示例有望说明我的问题。

我用100个样本创建一个正弦波周期。 我想通过带有最多两个隐藏神经元的径向基网络来近似此正弦波。 我有一个输入向量( t )和一个目标向量( s )。 因此,根据文档,我应该用两个列向量调用newrb 。 但是,近似值太好了。 实际上,均方误差为0,仅使用两个神经元就不能成立。 此外,如果使用列向量,带有view(net)的可视化view(net)不仅显示一个输入,而且显示100个输入。

在示例中,对应于“正确”(根据文档)函数调用的向量由_doc指示,对应于“不正确”调用的_not_doc由_not_doc 。

有人可以解释这种行为吗?

% one period sine signal with

% carrier frequency = 1, sampling frequency = 100

Ts = 1 / 100;

t = 2 * pi * (0:Ts:1-Ts); % size(t) = 1 100

s = sin(t); % size(s) = 1 100

% design radial basis network

MSE_goal = 0.0; % mean squared error goal, default value

spread = 1.0; % spread of readial basis functions, default value

max_neurons = 2; % maximum number of neurons, custom value

DF = 25; % number of neurons to add between displays, default value

net_not_doc = newrb( t , s , MSE_goal, spread, max_neurons, DF ); % row vectors

net_doc = newrb( t', s', MSE_goal, spread, max_neurons, DF ); % column vectors

% simulate network

approx_not_doc = sim( net_not_doc, t );

approx_doc = sim( net_doc, t' );

% plot

figure;

plot( t, s, 'DisplayName', 'Sine' );

hold on;

plot( t, approx_not_doc, 'r:', 'DisplayName', 'Approximation_{not doc}');

hold on;

plot( t, approx_doc', 'g:', 'DisplayName', 'Approximation_{doc}');

grid on;

legend show;

% view neural networks

view(net_not_doc);

view(net_doc);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值