【问题标题】:How to use the custom neural network function in the MATLAB Neural Network Toolbox如何使用 MATLAB 神经网络工具箱中的自定义神经网络函数
【发布时间】:2014-04-20 04:23:16
【问题描述】:

我正在尝试创建如下所示的神经网络。它有 3 个输入、2 个输出和 2 个隐藏层(总共 4 层,或 3 层权重矩阵)。第一个隐藏层有 4 个神经元,第二个隐藏层有 3 个神经元。有一个偏置神经元连接到第一个和第二个隐藏层,以及输出层。

我已经尝试在 MATLAB 中使用 "create custom neural network" 函数,但我无法让它按我想要的方式工作。

这就是我使用函数的方式

net1=network(3,3,[1;1;1],[1,1,1;0,0,0;0,0,0],[0,0,0;1,0,0;0,1,0],[0,0,0])
view(net1)

它给了我如下所示的神经网络:

如您所见,这不是我想要的。第一层只有3个权重,第二层有1个,输出层有1个,只有一个输出。我该如何解决这个问题?

谢谢!


只是为了澄清我希望这个网络如何工作:

  • 用户将在网络中输入 3 个数字。
  • 3 个输入中的每一个都乘以 4 个不同的权重,然后将这些数字发送到第一个隐藏层中的 4 个神经元。
  • 偏置节点的作用与其中一个输入相同,但它的值始终为 1。它乘以 4 个不同的权重,然后发送到第一个隐藏层中的 4 个神经元。
  • 第一个隐藏层中的每个神经元将输入的 4 个数字相加,然后将该数字传递给 sigmoid 激活函数。
  • 然后第一个隐藏层中的神经元输出 4 个数字,每个数字乘以 3 个不同的权重,并发送到第二个隐藏层中的 3 个神经元。
  • 进入第二个隐藏层的偏置节点与第一个偏置节点的工作原理相同
  • 第二个隐藏层中的每个神经元将输入的 5 个数字相加,然后通过 sigmoid 激活函数。
  • 然后,第二层的神经元输出两个数字,这些数字再次乘以权重并进入每个输出
  • 输出层还将其所有输入(包括其偏差输入)求和,然后将其传递给 sigmoid 激活函数以获得最后两个值。

【问题讨论】:

标签: machine-learning neural-network matlab


【解决方案1】:

玩了一段时间后,我想出了如何去做。我需要使用的代码是:

net = newff([0 1; 0 1; 0 1],[4,3 2],{'logsig','logsig','logsig'})
view(net)

这将创建我正在寻找的网络。

我最初误解了神经网络的 matlab 表示。绿色箭头显示了所有数字的路径,而不仅仅是一个数字。

【讨论】:

  • 你是如何指定每个连接权重值的? (我想知道如何手动设置连接权重值?)
猜你喜欢
  • 2011-07-08
  • 1970-01-01
  • 2015-06-03
  • 2014-01-02
  • 2019-01-01
  • 2013-01-13
  • 2012-04-20
  • 2012-03-22
  • 2015-12-03
相关资源
最近更新 更多