如何在MATLAB神经网络工具箱中使用自定义神经网络功能

时间:2014-03-14 17:56:47

标签: machine-learning neural-network matlab

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

enter image description here

我已尝试在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)

它给了我下面显示的神经网络:

enter image description here

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

谢谢!


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

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

1 个答案:

答案 0 :(得分:2)

经过一段时间的游戏,我发现了怎么做。我需要使用的代码是:

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

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

enter image description here

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