本文是继Introduction to Neural Networks的另一编,我们会看看一层及多层perceptrons概念,与及其背后所涉及的数学。
The Perceptron
一个perceptron可以想像为分类器:它可以区分不同的数据,更重要的是,可以将之前未见过的数据分类到已学会的数据组中。单层perceptron的结构相当简单。它有一些输入(input)、一个偏置(bias)、及一个输出(output)。右边的图代表了一个简单的2个输入perceptron原理图。在图的下端的两个圆圈代表了输入,黑色的方型是偏置,而顶部的员圈表示输出。每一个perceptron的输入(包括偏置),都有一个相对应的权重(weight)。perceptron就是将每个输入乘以相应的权重计算出输出。这个权重合计反馈给一个筛选函数以确定perceptron的最后输出。一个简单的perceptron的筛选函数可以是一个步进筛选: |
|
筛选函数的输出就是perceptron的输出。例如,如果权重合计是-2,perceptron会返回0。而合计是3,则perceptron会返回1。返回1代表perceptron被激活。
The Delta Rule
不言而喻,训练perceptron时修改它的权重是非常正常的。Delta规则是一项简单的学习规则,它规定权重应该按希望值与实际值之间的差额作出修改,或:
正如Perceptron Convergence Theorem中所说,perceptron的学习是被保证的。在定律中指出,如果一个解决方案可以在perceptron上实现,则学习规则可以在有限数目的步骤内找出它的解决方案。这条定律的证明可以在Minsky and Papert's book, Perceptrons (1989)中找到。
Perceptron Java Applet
At this stage, open the Generation5 Perceptron Applet and play. Try different placing groups of data in different quadrants and placing the data quite close together (or far apart). The perceptron should successfully manage to find a line that separates the two datasets apart. Now try mixing the data up and look at the error message you receive.
What does "linearly inseparable" mean?