使用神经网络识别输入序列

时间:2015-08-04 08:27:03

标签: machine-learning neural-network classification

我讲简单的神经情景说:网络有3层,3个输入和2个输出。应训练它识别一个简单的模式 - 如果输入相应地为6.0,7.0和8.0,则输出应为3.0和4.0,否则输出应为23.0

3 layered neural network

据我所知,隐藏层应该使用简单的if else条件按顺序检查输入模式。

if in1 == 6 and in2 == 7 and in3 ==8:
    out1, out2 = 3, 4
else
    out = 5

我是否正确理解了问题或我错过了什么?

2 个答案:

答案 0 :(得分:1)

根据你的描述很难确定,并假设我没有遗漏一些非常明显的东西,如果你打算开发和训练一个ANN引擎那么你肯定不能通过一个简单的if / else语句来做。如果您打算经典地这样做,那么您需要构建/利用诸如使用需要最小化的成本函数的监督学习算法之类的东西。

答案 1 :(得分:0)

这不是神经网络的工作原理,隐藏的节点肯定不仅仅是if / else检查

这是一个非常大的主题,因此我强烈建议您查看类似免费课程机器学习课程(或类似内容)的内容,以了解神经网络正在做什么(https://www.coursera.org/learn/machine-learning/home/welcome

基本上您的输入节点是变量/特征,所以是的,对于给定的训练示例,您可能正在输入6,7和8.但是您的隐藏节点没有进行条件检查。每个隐藏节点本质上是输入要素的线性组合,其中每个要素乘以一些待确定的权重。训练网络的过程是确定这些权重的理想值,以最大化输出层的分类准确度。

如果您期望输出类似于3,4,23(即连续和非离散类别),您可以查看线性回归模型,这与您在高中学习的回归模型基本相同: http://aimotion.blogspot.ca/2011/10/machine-learning-with-python-linear.html

if / else语句最接近的就是决策树分类器,但即便如此,它也不是严格的if / else语句:https://en.wikipedia.org/wiki/Decision_tree_learning