理解Matlab模式识别神经网络图表

4
我目前正在进行一个关于车辆分类的项目,现在几乎已经完成了,但是我对从神经网络中得到的图表有几个困惑。 我使用了230张图像[90=掀背车,90=轿车,50=SUV]进行80个特征点的分类。因此我的vInput是一个[80x230]矩阵,我的vTarget是一个[3x230]矩阵。 分类器运行良好,但我不理解这些图表是否异常或正常。 我的神经网络如下所示: [图片] 然后我在PLOT部分点击了这4个图表,并按顺序得到了以下结果。 性能图: [图片] 训练状态: [图片] 混淆矩阵图: [图片] 接收者操作特征图: [图片] 我知道这些图片很多,但我对它们一无所知。在Matlab文档中,他们只是训练系统并绘制图表。因此,请有人简要地向我解释一下它们,或者向我展示一些学习它们的好链接。
1个回答

6

前两个图显示训练统计信息。

性能图以对数比例显示了所有数据集的均方误差动态。训练MSE总是在减少,所以您应该关注其验证和测试MSE。您的图表显示了完美的训练。

训练状态向您显示一些其他训练统计信息。

梯度是每次迭代中反向传播梯度的值,以对数比例表示。5e-7表示您已达到目标函数局部最小值的底部。

验证失败是验证MSE增加其值的迭代。许多失败意味着过度拟合,但在您的情况下没问题。Matlab会在连续6次失败后自动停止训练。

另外两个图显示了训练之后的网络模拟结果。

混淆矩阵。在您的情况下,它是100%准确的。绿色单元格表示正确答案,红色单元格表示所有类型的错误答案。

例如,您可以将第一个(训练集)解读为:“来自类别1的59个样本被正确分类为类别1,来自类别2的13个样本被正确分类为类别2,来自类别3的6个样本被正确分类为类别3”。

接收器操作特性曲线图以不同的方式显示相同的内容 - 使用ROC曲线

enter image description here


1
你的训练可能唯一有问题的地方就是你将数据分成了三个数据集的方式。你应该确保训练和验证样本包含一些新信息,否则你将无法正确测试和验证你的结果。 - Leonid Beschastny
2
就你的结果而言,100%的准确率并不算太异常。我的意思是,这种情况偶尔会发生。但是你的性能图表看起来太完美了:所有三个数据集的行为都一致。 - Leonid Beschastny
正如我在问题中提到的,训练数据集是一个[80x230]的二维矩阵,其中80表示特征点数,230表示图像数。 其中,前90个图像属于“掀背车”类别,接下来的90个属于“轿车”类别,最后50个属于“SUV”类别。 所以这就是你在第一条评论中提到的分布吗?我的意思是,我应该尝试将它们随机排列吗...(我认为这不重要) - xor
1
不,要训练神经网络,你需要三个数据集:训练集、测试集和验证集。如果你只有一个数据集,那么Matlab会随机将其分成三个部分。每个数据集都应该包含来自每个类别的示例。训练集应该是最大的,但测试集和验证集应该包含一些新信息,而不是在训练集中呈现的信息。 - Leonid Beschastny
1
例如,如果您有9个不同的掀背车型,那么您应该至少保留一个独特的掀背车型进行测试和一个独特的掀背车型进行验证。对于您所有的类别也是如此。 - Leonid Beschastny
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接