我在研究神经网络时,遇到了以下一个关于xor的练习题(这是一个玩笑!)。
我问我的朋友是否需要实现感知器算法来解决这个问题,他说“不需要——只要思考一下就好”。我确实思考了,但我的小猴子大脑只能想到以下这些:
我朋友的话让我觉得这是一个 trick 问题,而我们到目前为止讨论过的唯一 trick 就是感知器无法执行 XOR 函数。
这个问题是不是在暗示这个?
如何解决这个问题?…
A simple Perzeptron with two inputs x₁, x₂, BIAS, and transfer function y = f(z) = sgn(z), separates the two dimensional input space into two parts with help of a line g. Calculate for this Perzeptron the weights w1, w2, wb, so that the line separates the given 6 patterns (pX1, pX2; Py) into two classes:1X = (0, 0; -1), 2X = (2, -2; +1), 3X = (7 + ε, 3 - ε; +1), 4X = (7 - ε, 3 + ε; -1), 5X = (0, -2 - ε; +1), 6X = (0 - ε, -2; -1), Remark: 0 < ε << 1.
回答:
如果你绘制这些点,你会发现所有标记为-1的点都在左上方,而所有标记为+1的点都在右下方。你可以画一条经过点(0, -2)和(7,3)的线,这条线的表达式为:
y = 5x/7 - 2
这足以避免运行任何算法。
预测+1出现的线的方程为:
y < 5x/7 - 2
上面的线将二维空间分成两部分。阴影区域位于线的下方,线向右上方延伸。因此,对于任意一点,你只需要判断它是否在阴影区域内(正预测 = +1)。
假设,(pX1, pX2) = (35, 100),
1) 一种方法是将 pX1 代入公式(对于 x’ = pX1)以找到线上最接近的点(其中 y=5x/7-2):
y' = 5(35)/7 - 2y' = 23
由于线上的点是(35, 23),而我们感兴趣的点是(35, 100),它位于线的上方。换句话说,pX2 不是 < 23,预测结果为 -1。
2) 设 y’=100,因此
100 = 5x/7-2 x = 142.8
线上的点=(142.8, 100),你的点(35, 100),我们的点位于线点的左侧,仍然落在阴影区域之外。
3) 你甚至可以绘制图形并视觉检查它是否在阴影区域内
关键是必须进行一些计算来检查它是“在”还是“不在”。这就是线性回归的意义所在。对于机器来说,这应该非常简单,因为你只需要计算一件事。一旦你有了公式,预测应该很快。最难的部分是确定线的公式,我们已经通过绘制点并看到一个明显的解决方案来完成了。如果你使用机器学习,在这种情况下会花费更长时间。