我使用Backpropagation算法训练神经网络。我手动运行网络30次,每次都改变输入和所需的输出。结果是传统分类器的结果。
我尝试了3种不同的分类。由于我为每个班级运行网络30次,每次10个输入,我最终得到了3个不同的权重,但是相同的分类具有非常相似的权重,并且误差非常小。因此,该网络已证明自己已成功学习。
我的问题是,现在学习已经完成并且我有3种不同类型的权重(每种分类1个),我如何在常规前馈网络中使用它们,以便它可以自动对输入进行分类。我四处搜索,检查你是否可以在一定程度上平均重量,但看起来这是不可能的。有人提到bootstrapping the data:
在反向传播学习过程中,我做错了吗?或者是否需要在学习过程之后使用不同类别的这些不同权重来完成额外的步骤?
我对此进行成像的一种方法是实现常规前馈网络,该网络将具有所有这3种类型的权重。将有3个输出,对于任何给定的输入,其中一个输出神经元将触发,这将导致给定输入映射到该特定类。
网络架构如下:
3个输入,2个隐藏神经元,1个输出神经元
提前致谢
答案 0 :(得分:4)
如果你每次只在神经网络中训练一个类是没有意义的,因为隐藏层可以进行权重组合以“学习”输入数据可能属于哪个类。单独学习将使权重独立。如果给出新的测试输入,网络将不知道使用哪个学习重量。
使用向量作为输出来表示三个不同的类,并完全训练数据。
修改强> P.S,我认为您提供的链接帖子与您的案例无关。该帖子中的问题源于神经网络训练中不同的权重初始化(随机)。有时人们应用some seed methods来使重量学习重现,以避免这样的问题。
答案 1 :(得分:0)
除了nikie的响应之外,另一种可能性是将输出表示为具有连续值的一个(唯一)输出单元。例如,如果输出在[0,1)间隔中,则ann分类为第一类,如果在[1,2]间隔中则为第二类,在[2,3]中为第三类。这种体系结构在文学中被声明(并且根据我的经验验证),效率低于3个神经元的离散表示。