用于 OR 函数的带有 S 型神经元的简单非线性边界
Simple non-linear boundary with sigmoid neuron for OR function
我想用带有输入层和输出层的 sigmoid 神经元计算非线性边界。神经元有 2 个输入 x1、x2 和一个偏差。我正在尝试计算这个。
这是怎么做到的。对于感知器 if
w*x +b >= 0 for negative samples then
we perform w = w -x[![enter image description here][2]][2]
and if w*x+b <0 for positive samples then
w = w + x
直到错误减少到一个较低的值。我为此使用 Octave
计算.
有没有sigmoid神经元的迭代方法。我们如何得到非线性边界?
这个问题有两个部分,一个是关于绘图的,一个是关于网络本身的。让我们从第二部分开始,你需要明白:
- 单个神经元,没有任何激活或上面有 sigmoid 是线性模型。为了具有非线性,您需要非单调激活(如 rbf)或至少 1 hidden 层。
有些逻辑门是线性的,有些则不是。特别是 OR 是线性的(以及 AND),但同时 XOR 不是。证明非常简单(对于 OR 的线性),因为它可以实现为
cl(x) = x1 + x2 - 0.5
如果你现在对上面的等式取号,你会发现当且仅当 x1+x2>0.5 时它是 1,并且显然当至少一个为 1 而另一个为 0 时(在其他情况下)会发生这种情况。
在决策边界方面。对于线性模型,它是直截了当的,因为可以分析地确定决策边界,但是,如果通常具有非线性模型 ,则不可能。因此我们所做的是一个近似值,你想在平面上绘制决策边界,对于 x1 e [-T, T] 和 x2 e [-T, T] 所以你所做的 - 你只是从输入中非常密集地采样点space(如(-T,-T),(-T+0.01,-T+0.01),...)并检查分类。你得到一个由 0 和 1 组成的巨大矩阵,你只需绘制 这个函数的计数图 。
这是怎么做到的。对于感知器 if
w*x +b >= 0 for negative samples then
we perform w = w -x[![enter image description here][2]][2]
and if w*x+b <0 for positive samples then
w = w + x
直到错误减少到一个较低的值。我为此使用 Octave 计算.
有没有sigmoid神经元的迭代方法。我们如何得到非线性边界?
这个问题有两个部分,一个是关于绘图的,一个是关于网络本身的。让我们从第二部分开始,你需要明白:
- 单个神经元,没有任何激活或上面有 sigmoid 是线性模型。为了具有非线性,您需要非单调激活(如 rbf)或至少 1 hidden 层。
有些逻辑门是线性的,有些则不是。特别是 OR 是线性的(以及 AND),但同时 XOR 不是。证明非常简单(对于 OR 的线性),因为它可以实现为
cl(x) = x1 + x2 - 0.5
如果你现在对上面的等式取号,你会发现当且仅当 x1+x2>0.5 时它是 1,并且显然当至少一个为 1 而另一个为 0 时(在其他情况下)会发生这种情况。
在决策边界方面。对于线性模型,它是直截了当的,因为可以分析地确定决策边界,但是,如果通常具有非线性模型 ,则不可能。因此我们所做的是一个近似值,你想在平面上绘制决策边界,对于 x1 e [-T, T] 和 x2 e [-T, T] 所以你所做的 - 你只是从输入中非常密集地采样点space(如(-T,-T),(-T+0.01,-T+0.01),...)并检查分类。你得到一个由 0 和 1 组成的巨大矩阵,你只需绘制 这个函数的计数图 。