Perceptron感知机

感知机:权衡输入的因素,做出决策。同时,能做出逻辑判断,并、或、异或。

单个感知机

  1. 输入\(x_i\),依据各自的权重,计算出输出。

image

  1. 根据阈值,判断输出是1还是0。

\[output = \begin{cases} 0, &{if }\sum_j w_jx_j \leq threshold \\ 1, &{if }\sum_j w_jx_j \geq threshold \end{cases} \]

以上就是感知机的大致流程。

注意:最后感知机经过了threshold后输出0或者1,这里相当于使用了step function(跃阶函数)作为了激活函数。该函数不可导,不可微,所以不利于进行参数更新。这里仅是为了理解感知机更简单。

image

形象例子

假设,你听说这周末在你的城市将会举办奶酪节。你喜欢奶酪,然后在考虑是否要去奶酪节。你要权衡以下三个因素:

  1. 是否是个好天?
  2. 你的对象是否会陪你一起?
  3. 奶酪节附件有没有公共交通?(假设你没有车)

用二进制表示这些输入。\(x_i\)表示第i个因素,如果为1,表示是天气好或者对象会陪你或者有公共交通;如果为0,则相反。

假设,你自己十分想去奶酪节,无论对象想不想去,无论周围是否有公共交通,你都想去。那么可以将权重设置为\(w_1 = 6、w_2 = 2、w_3 = 2\),然后阈值设置为5。也就意味着只要天气好,你就会去。可以通过改变权值和阈值,得到不同的决策模型。 阈值越低,表明你越想去参加奶酪节;某个因素的权重越高,表明该因素越重要。

多层感知机

一个感知机肯定不是一个彻底的人类决策模型。但是,越复杂的感知机网络可以做出更加精秒的决策。

简单理解:将输入向量赋予不同的权重向量,整合后加起来(多项式求和),并通过激活函数输出1或-1。

image

  1. 第一层感知机有三个感知机。通过对输入加权,这一层可以做出三个简单的决策。
  2. 第一层的输出是第二层感知机(4个感知机)的输入。这样,第二层的感知机可以做出更加复杂,更加抽象的决策。
  3. 这样,多层感知机后,就可以做出更加复杂的决策。

简化表示方式

对$\sum_j w_jx_J > threshold $ 做出两个变化:

  1. \(\sum_j w_j x_j\)表示为向量点乘\(w\cdot x\)

解释:\(\sum_j w_j x_j = w_1x_1 +w_2x_2+w_3x_3+...+w_jx_j\)转念一想这和矩阵乘法如出一辙。这就相当于

\[\sum_j w_jx_j = \left( \begin{matrix} w_1 & w_2 & w_3 & ... & w_j \end{matrix} \right) \cdot \left( \begin{matrix} x_1 \\ x_2 \\ x_3 \\ . \\ . \\ . \\ x_j \end{matrix} \right) \]

  1. $\sum_j w_jx_J > threshold $ 将阈值从不等式的右边,移到左边,作为bias偏置,即\(b = -threshold\)

简化后:

\[output = \begin{cases} 0, &{if }\quad w \cdot x + b \leq 0 \\ 1, & {if}\quad w \cdot x + b \geq 0 \end{cases} \]

偏置bias的含义是:感知机能多么轻易输出1。如果bias很大,那么很容易整体值就大于0,则输出1了。如果bias是负,则整体值要很大才能大于0,最终才能输出1。

模型训练过程就是通过学习算法,自动地调节神经网络的权重和偏置。

posted @ 2024-04-06 22:49  顾子郤  阅读(19)  评论(0编辑  收藏  举报