我正在尝试创建一个可以解决简单分类问题的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,01
1,0,0,0,0.....
40
0,1,0,0,0....
100
0,0,0,0,1
由于
答案 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"。