前馈神经网络 - 如何可视化权重矩阵?

机器算法验证 神经网络 权重
2022-03-20 23:29:45

我对scikit-learn 的这个例子中提供的前馈神经网络权重的可视化有点困惑该网络具有[784 x 50 x 10](MNIST 数据集)的架构,因此n_hidden = 50(有 50 个隐藏单元)。每个隐藏单元都是权重矩阵的一列W_1(尺寸为 784x50),对吗?我想,据此,我们可以创建50大小为 28x28 (=784) 的图像。但是,只显示了 16 张图像?我的错误是什么?

在此处输入图像描述

编辑

由于有人在没有解释的情况下否决了这个问题,这就是我的假设。在上述特定示例中,一个人可以绘制 50 张图片。为方便起见,仅选择了 16 个过滤器 (4x4) 可视化。

1个回答

你是对的,应该有50图像。您可以通过以下方式轻松验证:

[coef.shape for coef in mlp.coefs_[0]]

mlp示例中经过训练的 MLP 分类器在哪里。

所以这里有两件事引起了混乱:

  • 显然,该示例的作者没有提及为什么只有16图像
  • 在 Python 中,当您在 for 循环中压缩此示例中长度(项目数)不相等的两个项目时zip(mlp.coefs_[0].T, axes.ravel()),Python 将自动忽略较大列表(数组等)中的额外项目。这里axes.ravel()只有16项,因此,循环遍历 mlp.coefs_[0] 中的前 16 个向量