Lecture 06 感知器
主要内容
- 感知器
- 人工神经网络简介
- 感知器模型
- 随机梯度下降(SGD)
1. 人工神经网络简介
1.1 生物学的灵感
- 人类在许多重要任务上都表现出色
- 最初,神经网络是一种模仿人脑的尝试
1.2 人工神经网络
- 作为一种粗略的近似,可以将人脑视为一张由互相连接的处理节点(神经元)组成的网络,这些节点中继电信号
- 人工神经网络是由处理单元构成的网络
- 每个处理单元将输入转换为输出
- 输出是输入的加权和的函数(称为激活函数)
1.3 概述
- 为了使用人工神经网络,我们需要:
(a) 设计网络拓扑
(b) 调整权重以适应给定数据
在本节中,我们将重点关注任务 (b) 下的一种称为前馈网络的特定网络类别 - 训练一个人工神经网络意味着在给定一个预定义网络拓扑的情况下调整权重以训练数据
- 我们将在下一节再回到人工神经网络并讨论人工神经网络的训练
- 现在,我们将注意力转移到单个网络单元上,因为它本身就是一个有趣的模型
2. 感知器模型
人工神经网络的基石,同时也是一种线性分类器
2.1 感知器模型
- $x_1,x_2$ 代表输入
- $w_1,w_2$ 代表突触权重(权值)
- $w_0$ 代表权重偏置(阈值)
- $f$ 代表激活函数
对比该模型和 Logistic 回归:当 $f$ 为 Logistic 函数时,二者是一样的
2.2 感知器是一个线性二分类器
-
感知器是一个二分类器:
如果 $s\ge0$,预测为 $A$ 类
如果 $s<0$,预测为 $B$ 类
其中,$s=\sum_{i=0}^{m}x_iw_i$ -
感知器是一个线性分类器:
$s$ 是输入的一个线性函数,并且决策边界是线性的
练习:找到能够完美分类以下数据集的感知器的权重
假设 $w_1=w_2=1$,将对应项相乘得到:
所以,为了将 Class A 和 Class B 分开,我们可以选择 $w_0=-1.5$
此时,决策边界为 $s=\sum_{i=0}^{2}x_iw_i=0$
2.3 感知器的损失函数
- 训练:找到使损失函数最小化的权重
- 我们的任务是二分类。我们可以将其中任意一个类编码为 $+1$,另一个类编码为 $-1$。所以,现在每个训练样本可以表示为 ${\boldsymbol x,y}$,其中 $y$ 可以为 $+1$ 或者 $-1$。
- 回忆,在感知器模型中,$s=\sum_{i=0}^{m}x_iw_i$,$s$ 的符号决定了预测的类别:
- 如果 $s>0$,为 $+1$
- 如果 $s<0$,为 $-1$
- 考虑一个单独的训练样本:
- 如果 $y$ 和 $s$ 的符号相同,那么说明该样本被正确分类
- 如果 $y$ 和 $s$ 的符号不同,那么说明该样本被错误分类
这与另一个常见的称为 Hinge Loss 的损失函数相似,但不相同
- 感知器使用的损失函数:
- 对于正确分类的样本没有惩罚项
- 对于错误分类的样本,其惩罚项(损失)等于 $s$
- 正式地:
- 如果 $s$ 和 $y$ 的符号相同,$L(s,y)=0$
- 如果 $s$ 和 $y$ 的符号相同,$L(s,y)=|s|$
- 这可以被重写为:$L(s,y)=\max(0,-sy)$
3. 随机梯度下降(SGD)
- 将训练集中所有的样本进行随机混洗 / 拆分成 B 批($batches$)
- 选择初始 $\boldsymbol {\theta}^{(1)}$
- 从 $i=1$ 到 $T$:(在整个训练集上的一次迭代称为一轮 $epoch$)
- 从 $j=1$ 到 $B$:
- 用第 $j$ 批的数据进行随机梯度更新
- 从 $j=1$ 到 $B$:
- 这种方法的好处:对于大型数据集的计算可行性
3.1 感知器训练算法
- 选择一个初始的 $\boldsymbol w^{(0)}$ 和 $k=0$
- 从 $i=1$ 到 $T$(轮):
- 从 $j=1$ 到 $N$(训练样本):
- 考虑样本 ${\boldsymbol x_j,y_j}$
- 更新:$\boldsymbol w^{(k++)}=\boldsymbol w^{(k)}-\eta\nabla L(\boldsymbol w^{(k)})$
其中,
$L(\boldsymbol w)=\max(0,-sy)$
$s=\sum_{i=0}^{m}x_iw_i$
$\eta$ 代表学习率
注意:当 $s=0$ 时,导数不存在,但这种情况已经在算法中有明确处理
- 从 $j=1$ 到 $N$(训练样本):
3.1.1 感知器训练规则
- 当 $sy>0$ 时,我们有 $\dfrac{\partial L}{\partial w_i}=0$
- 当一个样本被正确分类时,我们不需要进行更新
- 当一个样本被正确分类时,我们不需要进行更新
-
当 $y=1$ 并且 $s<0$ 时,我们有 $\dfrac{\partial L}{\partial w_i}=-x_i$
-
当 $y=-1$ 并且 $s>0$ 时,我们有 $\dfrac{\partial L}{\partial w_i}=x_i$
- $s=\sum_{i=0}^{m}x_iw_i$
3.1.2 感知器训练算法
- 当分类正确时,权重不会更新
- 当分类错误时:$\boldsymbol w^{(k+1)}=\boldsymbol w^{(k)}-\eta(\pm\boldsymbol x)$
($\eta>0$ 称为学习率)- 如果 $y=1$,但是 $s<0$:
$w_i\leftarrow w_i+\eta x_i$
$w_0\leftarrow w_0+\eta$ - 如果 $y=-1$,但是 $s\ge0$:
$w_i\leftarrow w_i-\eta x_i$
$w_0\leftarrow w_0-\eta$
- 如果 $y=1$,但是 $s<0$:
收敛定理:如果训练数据是线性可分离的,则可以保证算法收敛到一个解。也就是说,存在一个有限的 $K$ 使得 $L(\boldsymbol w^K)=0$
3.1.3 感知器收敛定理
- 假设
- 线性可分性:存在 $\boldsymbol w^* $ 使得 $y_i(\boldsymbol w^*)’\boldsymbol x_i\ge\gamma$ 对于全部训练数据 $i=1,…,N$ 都成立,其中,$\gamma$ 为某个正实数。
- 边界数据:$\|x_i\|\le R$ 对于全部 $i=1,…,N$ 都成立,$R$ 为某个有限实数。
- 简略证明
- 设 $(\boldsymbol w^* )’\boldsymbol w^{(k)}\ge(\boldsymbol w^*)’\boldsymbol w^{(k-1)}+\gamma$
- 那么,它满足 $(\boldsymbol w^*)’\boldsymbol w^{(k)}\ge k\gamma$
- 设 $\|\boldsymbol w^{(k)}\|^2\le kR^2$
- 注意到 $\cos(\boldsymbol w^* ,\boldsymbol w^{(k)})=\dfrac{(\boldsymbol w^* )’\boldsymbol w^{(k)}}{\|\boldsymbol w^*\|\|\boldsymbol w^{(k)}\|}$
- 利用 $\cos(…)\le 1$ 的事实
- 得到 $k\le\dfrac{R^2\|\boldsymbol w^*\|^2}{\gamma^2}$
3.2 感知器学习的优缺点
- 如果数据是线性可分的,那么感知器训练算法会收敛到一个正确的解
- 关于这点有正式的证明 $\leftarrow$ 很好
- 它会收敛到某个解(分类边界),无限多可能中的一个 $\leftarrow$ 不好
- 然而,如果数据不是线性可分的,训练会失败,而不是给出某个近似解
- 丑陋
4. 感知器学习的例子
-
初始设置
-
从随机权重开始
-
考虑训练样本 1
$0.2x_1+0.0x_2-0.1>0$
$w_1\leftarrow w_1-\eta x_1=0.1$
$w_2\leftarrow w_2-\eta x_2=-0.1$
$w_0\leftarrow w_0-\eta=-0.2$
-
更新权重
-
考虑训练样本 2
$0.1x_1-0.1x_2-0.2<0$
$w_1\leftarrow w_1+\eta x_1=0.3$
$w_2\leftarrow w_2+\eta x_2=0.0$
$w_0\leftarrow w_0+\eta=-0.1$
-
更新权重
-
下一个样本
$0.3x_1+0.0x_2-0.1>0$
第 3 个点:分类正确
第 4 个点:分类错误,更新
-
更多样本
最终,全部数据都被正确分类(在满足线性可分的前提下)
总结
- 感知器
- 人工神经网络简介
- 感知器模型
- 训练算法
下节内容:多层感知器、反向传播
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 欢迎转载,并请注明来自:YEY 的博客 同时保持文章内容的完整和以上声明信息!