前馈全连接神经网络 |软件
feedforward fully connected neural network | matlab
我花了 3 个小时尝试在 matlab 中创建一个前馈神经网络,但没有成功。现在对我来说真的很困惑。
我正在尝试创建以下神经网络:
- 输入层有122个features/inputs,
- 1 个隐藏层,25 个隐藏单元,
- 1个输出层(二分类),
- 输入层和隐藏层都有偏置单元(请看下图的大概意思)
但是根据我对 network
函数的分析,我无法理解如何在我的单个隐藏层中指定 25 个隐藏单元或神经元,以及如何使所有输入层连接到这些隐藏单元的神经元。
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect);
例如,如果我想创建一个在隐藏层中有 5 个输入和 5 个隐藏单元(包括偏置单元)的神经网络,并使其完全连接。我正在使用此代码:
net = network(5,1,1,[1 1 1 1 1],0,1);
输出这个:
根据我的理解,我的代码存在以下问题:
- 输入层没有偏置输入
- 它不是一个完全连接的网络(就像一个神经元只连接到隐藏神经元)
请问,我已经把我的牌放在 table 上了,我该怎么做?
我强烈认为您将 inputs/layers 的数量与其大小混淆了:
- 您的网络有一个输入,其大小为 122;
- 你的网络有两层:
- 第一层:隐藏层25个节点(
W
是一个25×122的权重矩阵);
- 第 2 层:具有 1 个节点的输出层(
W
是一个 1 x 25 的权重矩阵)。
以下代码可以完成您想要做的事情:
% 1, 2: ONE input, TWO layers (one hidden layer and one output layer)
% [1; 1]: both 1st and 2nd layer have a bias node
% [1; 0]: the input is a source for the 1st layer
% [0 0; 1 0]: the 1st layer is a source for the 2nd layer
% [0 1]: the 2nd layer is a source for your output
net = network(1, 2, [1; 1], [1; 0], [0 0; 1 0], [0 1]);
net.inputs{1}.size = 122; % input size
net.layers{1}.size = 25; % hidden layer size
net.layers{2}.size = 1; % output layer size
net.view;
这导致:
也可以尝试 help network
,了解如何设置输入数据范围、传递函数等。
我花了 3 个小时尝试在 matlab 中创建一个前馈神经网络,但没有成功。现在对我来说真的很困惑。
我正在尝试创建以下神经网络:
- 输入层有122个features/inputs,
- 1 个隐藏层,25 个隐藏单元,
- 1个输出层(二分类),
- 输入层和隐藏层都有偏置单元(请看下图的大概意思)
但是根据我对 network
函数的分析,我无法理解如何在我的单个隐藏层中指定 25 个隐藏单元或神经元,以及如何使所有输入层连接到这些隐藏单元的神经元。
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect);
例如,如果我想创建一个在隐藏层中有 5 个输入和 5 个隐藏单元(包括偏置单元)的神经网络,并使其完全连接。我正在使用此代码:
net = network(5,1,1,[1 1 1 1 1],0,1);
输出这个:
根据我的理解,我的代码存在以下问题:
- 输入层没有偏置输入
- 它不是一个完全连接的网络(就像一个神经元只连接到隐藏神经元)
请问,我已经把我的牌放在 table 上了,我该怎么做?
我强烈认为您将 inputs/layers 的数量与其大小混淆了:
- 您的网络有一个输入,其大小为 122;
- 你的网络有两层:
- 第一层:隐藏层25个节点(
W
是一个25×122的权重矩阵); - 第 2 层:具有 1 个节点的输出层(
W
是一个 1 x 25 的权重矩阵)。
- 第一层:隐藏层25个节点(
以下代码可以完成您想要做的事情:
% 1, 2: ONE input, TWO layers (one hidden layer and one output layer)
% [1; 1]: both 1st and 2nd layer have a bias node
% [1; 0]: the input is a source for the 1st layer
% [0 0; 1 0]: the 1st layer is a source for the 2nd layer
% [0 1]: the 2nd layer is a source for your output
net = network(1, 2, [1; 1], [1; 0], [0 0; 1 0], [0 1]);
net.inputs{1}.size = 122; % input size
net.layers{1}.size = 25; % hidden layer size
net.layers{2}.size = 1; % output layer size
net.view;
这导致:
也可以尝试 help network
,了解如何设置输入数据范围、传递函数等。