Python 理解神经网络在文档示例(MNIST)中准确预测的内容

Python 理解神经网络在文档示例(MNIST)中准确预测的内容,python,r,machine-learning,deep-learning,neural-network,Python,R,Machine Learning,Deep Learning,Neural Network,为了更好地理解它们,我上了一门神经网络的速成课程,现在我正在R为自己尝试它们。我正在关注Keras的文档 我理解所发生事情的方式: 我们正在输入一系列图像,并根据这些像素中像素和颜色的排列将这些图像转换为数字矩阵。然后,根据分类(0到9),我们建立一个神经网络模型来学习这些排列的模式。然后,我们使用该模型来预测图像属于哪一类。老实说,我承认我不完全确定你的火车和你的火车是什么。我只是把它看作一个训练集和一个验证集,所以我不确定x和y之间的区别是什么 我的问题: 我按照T的步骤进行了操作,模型运行

为了更好地理解它们,我上了一门神经网络的速成课程,现在我正在R为自己尝试它们。我正在关注Keras的文档

我理解所发生事情的方式:

我们正在输入一系列图像,并根据这些像素中像素和颜色的排列将这些图像转换为数字矩阵。然后,根据分类(0到9),我们建立一个神经网络模型来学习这些排列的模式。然后,我们使用该模型来预测图像属于哪一类。老实说,我承认我不完全确定你的火车和你的火车是什么。我只是把它看作一个训练集和一个验证集,所以我不确定x和y之间的区别是什么

我的问题:

我按照T的步骤进行了操作,模型运行良好,预测结果与文档中的一样。最终,预测是这样的:

我认为这意味着x_检验中的观察1被预测为7类

然而,在x_测试中,它看起来是这样的:


如果我向下滚动,每一列和每一行中都有一个0。这就是我感到困惑的地方。我也不确定我是如何查看原始图像的,以查看它们预测它们的效果。我最终想自己画一个数字,然后看看模型是否能预测它,但为此我需要首先了解发生了什么。我觉得我离得很近,但我只需要轻轻推一下

y\u-train是标签,x\u-train是训练数据,因此本例中的图像。您需要使用某种绘图库来绘制x'E。在本例中,您可能不需要输入自己的图形,如果需要,您需要以与MNIST中相同的方式对其进行预处理,并将其传递给模型。

我认为,如果您阅读更多有关输入和输出图层尺寸的信息,这将有所帮助

在您的示例中: 输入层: 图像的单个训练示例具有两个维度28×28,然后将其转换为维度784的单个向量。它充当神经网络的输入层。 因此,对于
m
培训示例,您的输入层将具有维度
(m,784)
。类似地(对于传统的ML系统),您可以想象图像的每个像素被转换为一个特征(或x1,x2,…x784),并且您的训练集是一个包含
m
行和
784
列的数据帧,然后输入神经网络以计算
y_hat=f(x1,x2,x3,…x784)

输出层: 作为我们神经网络的输出,我们希望它能够预测从
0到9的数字。因此,对于单个训练示例,输出层具有维度10,表示0到9之间的每个数字,对于
n
测试示例,输出层将是维度为
n*10
的矩阵。 我们的
y
是长度
n
的向量,它类似于
[1,7,8,2,…]
,包含每个测试示例的真值。但是为了匹配输出层的维度,使用一个热编码转换
y
向量的维度。想象一个长度为10的向量,表示数字7,将1放在第7位,其余位置为0,类似于
[0,0,0,0,0,1,0,0,0]

因此,在您的问题中,如果您希望看到原始图像,您应该能够在使用类似
image(mnist$test$x[1,]


希望这能有所帮助!!

如果我在数据中画出x,它将是0。只有0。也许我误解了你的答案?