Machine learning 人工神经网络训练与测试
我正在尝试创建一个ANN,它将解决一个简单的分类问题。我使用的示例是一个学位分类,因此输入将是0-100之间的百分比,输出将是五个百分比中的一个(1,2:1,2:2…) 目前我已经建立了一个三层的神经网络,1个输入神经元,3个隐藏神经元和5个输出神经元,我已经设法用一个输入(例如60)和输出(1,0,0,0)来训练网络。我不确定我将如何为每个输入和输出组合正确地训练网络,以便在训练后我能够输入百分比,并且正确的输出神经元将是最接近1的数字 该网络使用标准的前馈和反向传播算法、随机权重和Sigmoid函数 我有一个文件,我认为它可以处理0-100的输入,输出介于两者之间: 0Machine learning 人工神经网络训练与测试,machine-learning,artificial-intelligence,neural-network,Machine Learning,Artificial Intelligence,Neural Network,我正在尝试创建一个ANN,它将解决一个简单的分类问题。我使用的示例是一个学位分类,因此输入将是0-100之间的百分比,输出将是五个百分比中的一个(1,2:1,2:2…) 目前我已经建立了一个三层的神经网络,1个输入神经元,3个隐藏神经元和5个输出神经元,我已经设法用一个输入(例如60)和输出(1,0,0,0)来训练网络。我不确定我将如何为每个输入和输出组合正确地训练网络,以便在训练后我能够输入百分比,并且正确的输出神经元将是最接近1的数字 该网络使用标准的前馈和反向传播算法、随机权重和Sigmo
1,0,0,0,0 1
1,0,0,0,0 40
0,1,0,0,0,0 100
0,0,0,0,1
谢谢我不太理解您试图学习的功能,但这并不重要。训练ANN的常用方法是使用SGD(随机梯度下降),其中使用反向传播每次计算每个示例的梯度。您只需在所有输入示例上重复此操作,直到它了解这些示例为止
有一件事你没有提到,你需要一个损失函数。在您的情况下,一个简单的均方误差可能是合适的。我建议您看看用于分类的
classifier.py
python脚本,在这个链接中-
以上教程的完整代码可在此链接获得-
上述链接的分类器脚本用于预测一个国家的人均GDP是否高于平均GDP。一、 但是,将脚本用于不同类型的数据集。
我能够在Theano中成功地训练神经网络,使用上述分类器脚本将语音分类为字母“a”或“E”。不需要隐藏层,每个输出一个神经元就足够了,每个输入一个。这是因为你的函数是线性的。添加3个隐藏层只会导致输入受限的问题。考虑更多的输入或不同的问题,需要使用隐层的神经网络。