感知机

感知机

在许多神经网络的工作里,主要使用的是一种叫做sigmoid神经元(sigmoid neuron)的神经元模型。

感知机是怎么工作的呢?

感知机的输入是几个二进制,$x_1$,$x_2$,...,$,输出是一位单独的二进制:

graph LR;
X1-->C((neuron));
X2-->C;
X3-->C;
C-->Output;

本例中的感知机有三个输入:通常,它可以有更多或更少的输入,但是只有一个输出。

Rosenblatt提出了一种计算输出的简单的规则。他引入了权重(weight),$w_1,w_2,...$,等实数来表示各个输入对于输出的重要程度,神经元的输出是0还是1,由加权和$\sum_jw_jx_j$是否小于或者大于某一个阀值(threshold value)。和权重一样,阀值也是一个实数,同时它是神经元的一个参数。使用更严格的代数形式来表示:

$$ output=\begin{cases} 0 \quad if\sum_jw_jx_j \leq threshold\\ 1 \quad if\sum_jw_jx_j > threshold \end{cases} $$

这就是感知机的工作方式!

举个例子:

假设你非常喜欢奶酪,你所在的城市举办一个奶酪节,你正在犹豫是否去参加这个节日 你需要权衡以下几个因素来作决定:

  1. 天气好不好?
  2. 你的男朋友或者女朋友会陪你去吗?
  3. 坐公共交通方便去吗?

我们使用x1,x2,x3这几个二进制变量来表示这三个因素。

天气很好 x1 = 1 天气不好 x1 = 0

你女朋友也想去 x2 = 1 你女朋友不想去 x2 = 0

坐公共交通方便去 x3 = 1 坐公共交通不方便去 x3 = 0

假设你超级喜欢奶酪,即便是你的男朋友或者女朋友对此没兴趣,并且交通也不方便的情况下,你也依然很想去。不过,你非常在意天气状况,如果天气不好的话你就不会去参加了。你可以用感知机来为这样的决策建立模型。

w1 = 6
w2 = 2
w3 = 2

一种方式是,为天气赋予权重w1=6, 为另外两个条件赋予权重w2=2和w3=2,相对来说,值比较大的w1表明了天气情况对你的决策影响更大,胜过了你的男朋友或者女朋友是否会陪你去,以及交通的便捷程度。最后,假设选择5作为感知机的阀值。这样,这个感知机就构建起了一个决策模型。

$$ ouput=\begin{cases} 0\quad if \sum\\ 1 \end{cases} $$

只要天气好,$\sum_jw_jx_j$就一定大于5,那么就输出1 (w1 x1 + w2 x2 + w3 * x3)
= 6 1 + 2 0 + 2 * 0 = 6 > 5
output = 1

只要天气不好,$\sum_jw_jx_j$就一定小于5,那么就输出0 (w1 x1 + w2 x2 + w3 * x3)
= 0 1 + 2 1 + 2 * 1 = 4 < 5
output = 0

通过调整权重和阀值的大小,我们可以得到不同的决策模型。例如。假设我们选择的阀值为3,那么此时,如果要让感知机做出你应该去参加这个节日的决策,就需要满足天气很好或者交通方便的同时你女朋友也会陪你去。也就是说,这个决策模型与之前不同了。阀值降低意味着你参加这个节目的意愿越强。

这个例子阐明的是感知机如何赋予不同evidence权重来达到做出决策的目的。一个由感知机构成的复杂网络能够做出更加精细的决策。

我们来简化一下对感知机的描述,第一我们用点乘来代替$\sum_jw_jx_j$,$w*x=\sum_jw_jx_j$,其中w和x都是向量,它们的元素分别代表了权重和输入。第二是将阀值移到不等号的另一侧,并使用偏移(bias)来代替阀值threshold, b = -threshold,于是感知机的规则可以重写为:

$$ output=\begin{cases} 0 \quad if w*x+b\leq0\\ 1 \quad if w*x+b>0 \end{cases} $$

我们可以把偏移(bias)理解为感知机为了得到输出为1的容易度的度量。如果一个感知机的偏移非常大,那么这个感知机输出就很容易为1,相反如果偏移非常小,那么输出1就很困难。

感知机就是通过权衡evidence做出决策的一种方法。感知机的另一种用途是计算初等逻辑函数。我们可以设计学习算法,使得能够自动地调整人工神经元网络的权重和偏移。

2018-04-15 04:56

留言