【问题标题】:Matlab neural network simulate up to hidden layerMatlab 神经网络模拟到隐藏层
【发布时间】:2012-03-21 11:28:47
【问题描述】:

我在 Matlab 中训练了一个 3 层(输入、隐藏和输出)前馈神经网络。训练后,我想用输入测试向量模拟训练好的网络,并获得隐藏层不是最终输出层)的神经元的响应。我该怎么做?

另外,在训练一个神经网络之后,是否有可能“切掉”最终的输出层,让当前的隐藏层作为新的输出层(以备将来使用)?

额外信息:我正在构建一个autoencoder network

【问题讨论】:

  • 我不太清楚你在问什么。原则上,你没有理由不能切断输出层并查看隐藏单元的输出。计算只是应用了传递函数的链式矩阵乘法,而您所做的只是删除一个矩阵因子。您是在问 Matlab NN 工具箱是否以您可以访问的方式公开了它?
  • 是的,我总是可以从所需层中获取训练好的权重并手动应用计算,但这有点乏味。我想知道的是 Matlab NN 工具箱是否有内置的现成功能可以实现这一点(剪掉神经网络的最后一层,通过层(逐层)跟踪网络模拟的响应等。跨度>
  • 我已经有一段时间没有使用它了,所以我不能肯定地说,但我不记得有什么东西会“自动”做到这一点。我知道网络结构应该有足够的信息来自己构建它,但是就像你说的那样,这很乏味。

标签: matlab machine-learning computer-vision neural-network


【解决方案1】:

除了使用输入和层权重和偏差之外,您还可以添加来自所需层的输出连接(在训练网络后)。我发现它可能且简单但我没有检查它的正确性

【讨论】:

    【解决方案2】:

    经过训练的网络的训练权重在 net.LW 属性中可用。您可以使用这些权重来获得隐藏层的输出

    来自 Matlab 文档 nnproperty.net_LW

    神经网络 LW 属性。

    NET.LW

    这个属性定义了权重的权重矩阵 从其他层。它始终是一个 Nl x Nl 元胞数组,其中 Nl 是 网络层数 (net.numLayers)。

    从第 j 层到第 i 层的权重矩阵 层(或空矩阵 [])位于 net.LW{i,j} 如果 net.layerConnect(i,j) 为 1(或 0)。

    权重矩阵的行数与其所在层的大小一样多 (net.layers{i}.size)。它的列数与大小的乘积一样多 它来自的层的延迟数与 重量:

      net.layers{j}.size * length(net.layerWeights{i,j}.delays)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 2017-05-21
      • 2011-03-08
      相关资源
      最近更新 更多