了解 Matlab 模式识别神经网络图
Posted
技术标签:
【中文标题】了解 Matlab 模式识别神经网络图【英文标题】:Understanding Matlab Pattern Recognition Neural Network Plots 【发布时间】:2013-11-30 06:17:35 【问题描述】:我目前正在做一个关于车辆分类的项目,现在几乎完成了,但我对从我的神经网络得到的图有一些困惑
我使用 230 张图像 [90=Hatchbacks,90=Sedans,50=SUVs]
对 80 个特征点进行分类。
因此我的vInput
是[80x230]
矩阵,而我的vTarget
是[3x230]
矩阵
分类器效果很好,但我不明白这些情节或它们是否异常。
我的神经网络
然后我点击PLOT
部分中的这4个图并按顺序获得这些。
性能图训练状态混淆图接收器工作特性图
我知道这些图像有很多图像,但我对它们一无所知。 在 matlab 文档中,他们只是训练系统并绘制图形 所以请有人向我简要解释一下,或者给我一些好的链接来学习它们。
【问题讨论】:
【参考方案1】:前两个图显示了训练统计数据。
性能图以对数刻度显示所有数据集的均方误差动态。训练 MSE 总是在减少,因此您应该对它的验证和测试 MSE 感兴趣。您的绘图显示了完美的训练。
训练状态向您显示其他一些训练统计数据。
梯度是每次迭代的对数尺度反向传播梯度的值。 5e-7
表示您已达到目标函数的局部最小值的底部。
验证失败是验证 MSE 增加其值时的迭代。很多失败意味着训练不足,但在你的情况下它还可以。 Matlab连续6次失败后自动停止训练。
另外两个图显示了您的网络模拟在训练后的结果。
混淆图。在您的情况下,它是 100% 准确的。绿色单元格代表正确答案,红色单元格代表所有类型的错误答案。
例如,您可以将第一个(训练集)解读为:“来自第 1 类的 59 个样本被正确分类为第 1 类,来自第 2 类的 13 个样本被正确分类为第 2 类,来自第 2 类的 6 个样本3 被正确归类为 3 级"。
接收器操作特征图显示相同的东西,但以不同的方式 - 使用ROC curve:
【讨论】:
你不认为这个完美的分类可能意味着我做错了什么(我的意思是在测试/验证/训练时应该至少有 1-2 个错误的分类).. 可能是这样是因为我使用了 23 张图像,并为每张图像制作了 10 个副本(以不同的方向和移动)。 您的训练可能有问题的唯一想法是您将数据分成 3 个数据集的方式。您应该保证训练和验证样本包含一些新信息,否则您将无法正确测试和验证您的结果。 至于你的结果,100%准确率也不算太反常。我的意思是,它发生了。但是您的性能图看起来太完美了:所有三个数据集都表现得像一个。 没有。要训练神经网络,您需要三个数据集:训练集、测试集和验证集。如果你只有一个,那么 matlab 会随机将它分成三个。每组都应该包含来自每个班级的示例。训练集应该是最大的,但测试集和验证集应该包含一些新的信息,而不是在训练集中呈现。 例如,如果您有 9 辆 不同 掀背车,那么您应该至少保留一辆独特的掀背车用于测试和一辆独特的掀背车用于验证。您的所有课程都一样。以上是关于了解 Matlab 模式识别神经网络图的主要内容,如果未能解决你的问题,请参考以下文章
模式识别设计:基于Matlab PCA的BP神经网络人脸表情分类识别
模式识别设计:基于Matlab PCA的BP神经网络人脸表情分类识别