人工神经网络训练与测试

时间:2015-05-01 18:08:01

标签: machine-learning artificial-intelligence neural-network

我正在尝试创建一个可以解决简单分类问题的ANN,我使用的示例是度分类,因此输入将是0-100之间的百分比,输出将是五个之一(1,2 :1,2:2 ......)。

目前我已经建立了一个具有三层,1个输入神经元,3个隐藏神经元和5个输出神经元的神经网络,我已经设法使用一个输入训练网络,例如60和输出(1,0,0,0,0)。我不确定我将如何为每个输入和输出组合正确训练网络,以便在训练后我能够输入百分比,正确的输出神经元将是最接近1的数字。

网络使用标准前馈和后向传播算法,随机权重和Sigmoid函数。

我有一个文件,我认为它可以使用输入0-100,输出介于:

  

0
  1,0,0,0,0

     

1
  1,0,0,0,0

     

.....

     

40
  0,1,0,0,0

     

....

     

100
  0,0,0,0,1

由于

2 个答案:

答案 0 :(得分:0)

我不太了解你想要学习的功能,但这并不重要。训练ANN的常用方法是使用SGD(随机梯度下降),其中反向传播用于一次计算每个示例的梯度。您只需在所有输入示例上重复循环,直到它学会了这些示例。

你没有提到的一件事是你需要一个损失函数。在您的情况下,简单的均方误差可能是合适的。

答案 1 :(得分:0)

我建议您查看此链接中用于分类的classifer.py python脚本 - http://www.marekrei.com/blog/theano-tutorial/ 此链接提供上述教程的完整代码 - https://github.com/marekrei/theano-tutorial

上述链接的分类器脚本用于预测一个国家的人均GDP是否高于平均GDP。但是,我将脚本用于不同类型的数据集。 我能够使用上面的分类器脚本成功训练Theano中的神经网络,将语音分类为字母" A"或" E"。