【发布时间】:2016-10-15 10:53:58
【问题描述】:
我对学习神经网络很感兴趣,作为一个例子,我尝试了以下通过实验得出的数据集。
我正在为我的神经网络使用以下输入向量;
X = [1 1; 1 2; 1 3; 1 4; 4 1; 4 2; 4 3; 4 4; 7 1;7 2; 7 3; 7 4]';
Tc = [1 1 2 3 1 1 2 2 1 1 2 2];
我想将输入数据分为三类,由输入向量 Tc 描述。然后我将目标类索引 Tc 转换为向量 T 并且我使用的传播值是 1。
在 MATLAB 中使用 newpnn 函数,我得到了三个类的决策边界。
我对验证决策边界是否合适有疑问。我正在使用属于第 2 类的单个数据 X =[2;3.55] 验证输出。它由输出图中的黑点表示。蓝色是 1 类。黄色是属于 2 类的区域。红色是 3 类。
如图所示,发现神经网络的预测是类 2,与集合的实际类重合。
那么,这是否意味着我的神经网络是正确且经过验证的?
附:我对神经网络有基本的了解。此外,我理解拥有更多训练示例和验证集的概念。我期待一个符合可用细节的答案,因为我无法通过实验获得更多数据。
【问题讨论】:
-
嗯,根据您提供的信息,答案似乎是“是的,您的 NN 已通过验证,您做得很好”。但是,请注意,您的训练和测试似乎完全相同(通过查看前 2 个图),因此您当然会有正确的答案。尝试使用训练中未使用的值验证您的 NN。
-
@AnderBiguri 感谢您的回答。不过,就在发布这个问题之后,我觉得问这个问题很愚蠢。我知道任何类型的结论性训练的训练数据都非常少。我使用三次插值来获得更多数据点(120)。我保留了 100 个用于训练网络,20 个用于测试。现在预测结果非常好。准确率约为 98%。我想,这个问题现在已经解决了,但是由于我已经宣布了这个问题的赏金,我不能删除这个问题。再次感谢您的回答。
标签: matlab validation neural-network