我有一个简单的任务,使用神经网络根据人的身高和头发长度将其分类为“男人”或“女人”类别。还需要教它一些示例模式,然后让它自己进行分类。
我对神经网络有基本的了解,但在这里我真的需要一些帮助。
我知道每个神经元将区域划分为两个子区域,这也就是为什么在这里使用P = w0 + w1*x1 + w2*x2 + … + wn*xn(权重只是在几何表示中移动线条)。
我明白每个周期都应该修改权重以更接近正确的结果,但我从未编程实现过,我对如何开始感到无助。
我应该如何进行,意思是:我如何确定阈值以及如何处理输入?
这不是作业,而是对有兴趣的人的任务。我有兴趣,我希望能理解它。
回答:
看起来你正在处理一个带有阈值激活函数的简单感知器。看看这个问题。由于你确实使用了偏置神经元(w0),你可以将阈值设置为0。
然后你只需将网络的输出与0进行比较,例如,如果x < 0,则输出类别1,如果x > 0,则输出类别2。你可以将x=0的情况建模为“模糊不清”。
为了学习权重,你需要应用Delta学习规则,这可以很容易地实现。但要小心:带有简单阈值激活函数的感知器只有在你的数据是线性可分的情况下才正确。如果你有更复杂的数据,你将需要多层感知器和非线性激活函数,如Logistic Sigmoid函数。
详细信息请查看Geoffrey Hinton的Coursera课程,第2讲。