我讲简单的神经情景说:网络有3层,3个输入和2个输出。应训练它识别一个简单的模式 - 如果输入相应地为6.0,7.0和8.0,则输出应为3.0和4.0,否则输出应为23.0
据我所知,隐藏层应该使用简单的if else条件按顺序检查输入模式。
if in1 == 6 and in2 == 7 and in3 ==8:
out1, out2 = 3, 4
else
out = 5
我是否正确理解了问题或我错过了什么?
答案 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