人工神经元(二)

    技术2025-03-05  35

    S型神经元

    背景模型与感知器对比附阶跃函数

    背景

    每个神经网络都具有其独特的学习算法,对于感知器网络而言我们希望网络可以学习 w e i g h t weight weight(简记为 w w w)和 b i a s bias bias(简记为 b b b),从而实现网络的正确输出。因此如果我们对 w w w b b b做一些微小改动,我们希望网络的输出也会有微小变化,同时希望网络的表现是按照我们需要的方向改变,这样我们便可以通过不断地修改 w w w b b b来产生更好的输出。 然而当网络包含上文所提及的感知器时,我们无法通过修改 w w w b b b来产生符合我们意愿的输出。原因在于对网络中单个感知器的 w w w b b b做微小改动,有时会直接引起感知器的输出完全相反,而这又会引起网络中更深层的感知器以无法预测的方式改变输出,所以在感知器网络中,通过修改 w w w b b b来让网络产生期望的行为是非常困难的。 而这一问题可以由另一种人工神经元——S型神经元克服。

    模型

    S型神经元和感知器是类似的,不同的地方在于感知器的输出只能为0/1,而S型神经元的输出是 [ 0 , 1 ] [0,1] [0,1]范围内的值,这是因为在该神经元输出之前添加了一个激活函数——S型函数: 在一些地方该函数也被称为逻辑函数,对应的这种神经元称之为逻辑神经元。该函数的图象如下图所示: 对于一个具有输入 x 1 , x 2 , x 3 , ⋯ x_1,x_2,x_3,\cdots x1,x2,x3,,权重 w 1 , w 2 , w 3 , ⋯ w_1,w_2,w_3,\cdots w1,w2,w3,和偏置 b b b S S S型神经元,其输出为 σ ( w ⋅ x + b ) \sigma(w\cdot{x}+b) σ(wx+b),即: 不同于感知器,S型神经元可以输出 0 0 0 1 1 1之间的任何实数,比如 0.618 , ⋯ 0.618,\cdots 0.618,。如果输出为 0 / 1 0/1 0/1,那么结果是非常明显的,否则,我们可以认为S型神经元的输出为事件成立的概率。比如我们的输入是一副手写数字9的图像,输出为 0.732 0.732 0.732,那么我们可以认为输入图像是一个 9 9 9,反之若输出为 0.162 0.162 0.162,那么我们认为输入图像不是一个 9 9 9。在实际问题中,常常约定 0.5 0.5 0.5为边界,超过 0.5 0.5 0.5的输出等价于输出为 1 1 1,而低于 0.5 0.5 0.5的输出则认为等价于 0 0 0

    与感知器对比

    我们假设输入 z ≡ w ⋅ x + b z\equiv{w}\cdot{x}+b zwx+b是一个非常大的正数,则 σ ( z ) ≈ 1 \sigma(z)\approx1 σ(z)1,即S型神经元的输出近似为 1 1 1,此时与感知器的表现一致;反之若输入 z ≡ w ⋅ x + b z\equiv{w}\cdot{x}+b zwx+b是一个非常小的负数,则 σ ( z ) ≈ 0 \sigma(z)\approx0 σ(z)0,即S型神经元的输出近似为 0 0 0,此时S型神经元的行为也类似于感知器;而只有输入 z ≡ w ⋅ x + b z\equiv{w}\cdot{x}+b zwx+b取中间值时,S型神经元和感知器会有较大的行为偏离。也可以认为感知器的输出是离散的,只有 0 / 1 0/1 0/1,而S型神经元的输出则是连续的。

    附阶跃函数

    s i g m o i d sigmoid sigmoid f u n c t i o n function function实际上是阶跃函数平滑后的样子: 利用 σ \sigma σ函数,我们得到的S型神经元可以看作是一个平滑的感知器,这意味着 w w w b b b的微小变动 △ w j \triangle{w_j} wj △ b \triangle{b} b可以令神经元的输出产生一个符合期望的变化 △ o u t p u t \triangle{output} output,利用微积分我们可以得到: 容易看出, △ o u t p u t \triangle{output} output是关于 △ w j \triangle{w_j} wj △ b \triangle{b} b的一个线性函数,这一性质使得通过改变 w w w b b b来改变输出变得容易,这也是为什么S型神经元可以客服感知器存在的问题。实际上, σ \sigma σ函数是实际问题中比较常用的一个激活函数。

    Processed: 0.011, SQL: 9