本章目录

上一章的一个神经元只能画出一个超平面。加入隐藏层后,网络可以先判断“点在每条线的哪一侧”,再把这些判断组合成最终类别。这样,多层网络的手算不再是一团箭头,而是两个步骤:隐藏层编码位置,输出层识别编码。

本章聚焦课程中的二值激活网络。它与下一章使用平滑激活和反向传播的 MLP 关系密切,但求权重的方法不同:本章可以根据几何关系直接设计权重。[NN2 pp.17、52–65;NN3 pp.1–4]

1. 多层前向传播:每层都要补上偏置

设输入为 ,隐藏层有 个神经元,输出层有 个神经元。偏置放在最后时:

矩阵尺寸为 、, 表示逐分量应用激活函数。输入层只传递信号,课程说“两层网络”时通常不把输入层计为计算层。画图时的常数节点 也不能与真实特征数量混为一谈。[NN1 p.24;NN2 pp.13–17、55]

本章默认双极性函数 ()或 (),并在 XOR 例题处显式改用单极性函数。这个零点约定直接决定区域边界是否包含在正类中。[NN2 pp.6、20、23]

2. 从一条线到一个隐藏神经元

若目标半平面为 ,隐藏神经元可以取 ;这使目标一侧输出 。如果目标条件是 ,则将全部系数取反即可。先写不等式再抄权重,比先画箭头再猜符号可靠。[NN2 pp.33–35、69–70;不等式转换为教学归纳]

当 个隐藏神经元都必须输出 时,可用一个输出神经元做双极性 AND:

全为 时,激活为 ;只要一个变为 ,总和至少下降 ,激活至多为 。偏置并非唯一:要实现同样的 AND,阈值 只需满足 ,其中 。不要把 逻辑门的阈值未经换算地搬到 编码上。[基于 NN2 pp.19–21 的直接推导]

算例1:完整设计一个矩形分类器

目标是把矩形 内的点映射为 ,其余映射为 。四个边界条件分别为:

据此设置:

这正是 NN2 第一个矩形例子的权重。输出激活为 。[NN2 pp.18–21]

对内部点 :

四个隐藏输出均为 ,所以 ,最终为 。对外部点 ,隐藏激活为 ,隐藏输出为 ,故 ,最终为 。对角点 ,前四个激活为 ,零也输出 ,所以边界包含在矩形内。[对该课件权重的逐点验算]

这个网络有两个真实输入、四个隐藏神经元和一个输出神经元。若每个计算神经元都有独立偏置,参数总数为 。图中的常数节点只是偏置的画法,不增加真实输入维数。[结构依据 NN2 pp.18–19;参数数量为直接计数]

3. 隐藏层空间:把无限多个点压成少数编码

对二值激活网络,一片区域内所有点可能具有完全相同的隐藏输出。矩形四条边把平面划成九个开区域;每一区域被映射到一个四维符号向量,输出层只需区分这些符号向量。NN2 pp.66–75 采用另一组边界方向来演示这一点;同一条几何边界可以用不同朝向的法向量表示,只要输出层相应调整即可。[NN2 pp.66–75]

但边界上的等号必须单独处理。例如用 ,条件 表示 ;用 ,条件 表示 。两种设计对区域内部可以完全一致,对线上的点却可能不同。纸面阴影图通常不突出这一点,严格计算时应把开闭条件写出来。[由 NN2 p.6 的激活约定直接推得]

算例2:Tutorial 2 Q1 的菱形区域

原题给定:

以及输出权重 ,全部使用双极性激活。[TN2 Q1]

第一步,写出隐藏激活:

第二步,寻找使输出激活最大的编码。由于输出权重的符号为 ,最佳编码是 。此时四项都贡献 ,所以 。若任意一项编码反转,总和至少下降 ,得到 。因此这组编码是唯一能输出正类的编码。[TN2 Q1;上述符号推导与 SN2 pp.8–9 的中心区域结果一致]

第三步,把编码翻译回输入条件:

区域内部是以 为顶点的菱形,即 ;准确的边界归属以刚才两个半开区间为准。不要把整个闭菱形不加区分地写作答案。[由 TN2 Q1 权重及 直接推导]

最后验算:中心点 给出激活 ,输出为 ;点 给出隐藏输出 ,输出激活为:

因此输出为 。边界点 因 ,,同样为负类;另一侧点 给出目标编码,因此为正类。[对原题权重的逐点验算]

4. XOR:隐藏层为什么有用

XOR 的四个输入是 ,中间两个属于正类,另两个属于负类。单条直线无法把这两对对角点分开;隐藏层可以先切出一条带状区域。下面完全采用课件的单极性激活 (),否则为 。[NN2 pp.22–28]

算例3:把课件 XOR 网络算到底

隐藏层和输出层分别是:

输入 输出激活
0 0 0
0 1 1
0 1 1
1 1 0

对于连续输入 ,输出为 的条件为 。只有再把输入限制到四个二进制顶点时,这个几何分类器才正好是 XOR 真值表。训练域或题设输入范围是答案的一部分。[NN2 pp.22–28;表为逐点代入]

5. Tutorial 3 Q3:先读清楚定义域

该题把输入限制在 的方形内,阴影与非阴影区域由两条斜线分开。已核对原题图和解答,边界为 、。因此只需两个隐藏神经元,不必额外用四个神经元判断方形边缘,因为输入已经保证在方形内。[TN3 Q3;SN3 pp.15–17]

取:

当 时,输出激活为 ;其余三个二值组合的激活为 ,因此只有目标编码输出正类。该权重与参考解答一致。[SN3 pp.16–20]

例如 产生 ,落入正类; 产生 ,落入负类; 产生 ,也落入负类。精确区域条件是 且 。对两个条件的等号采用不同处理,来自隐藏输出编码,而非随意省略边界。[对原题与参考权重的验算]

6. 做题模板与容易漏掉的条件

“给权重求区域”按四步完成:写每个隐藏激活;判断各隐藏输出的正负条件;枚举或推导能使最终激活非负的编码;把编码还原成输入不等式。“给区域设计网络”则反过来:明确输入域,拆出边界半平面,确定隐藏权重,选择 AND/OR 或隐藏空间分类器,最后用内部点、外部点和边界点验算。[综合 NN2 pp.54–75、TN2 Q1、TN3 Q3]

四条边界不代表任意非凸区域都能用简单 AND 表示。AND 实现的是半平面的交集;多个分离区域可能需要先形成多个子区域,再做 OR,或采用更深的网络。课内矩形例子不应被误记成“隐藏层一条边一个神经元、输出永远全加起来”的万能公式。[根据本章布尔组合推导的适用条件说明]

NN2 后半部分矩形例子存在两处应按上下文核对的标记:p.71 右侧竖线写成 ,但 p.69–70 的边界与权重是 ;p.74 求负类均值时,应排除唯一正类 。本章完整矩形计算采用 pp.18–21 那组明确朝内的权重,避免把不同构造与排版标记混在一起。[NN2 pp.69–74]

7. 自测与答案

题1。 三个双极性隐藏输出必须全部为 才判正类,给一组输出权重。

答案: ;全正激活为 ,一个负号时为 。

题2。 怎样构造 的第一象限分类器,包含两条坐标轴?

答案: 、、。

题3。 两输入、五隐藏神经元、一个输出的全连接网络,含偏置共有多少参数?

答案: ,输入层没有需要另计的激活参数。

题4。 为何 Tutorial 3 的设计不能自动保证方形外部全部输出负类?

答案: 网络只编码两条斜线,没有编码方形四条边;原题对输入范围的保证代替了这部分判断。

本章资料

  • NN1:EE4285-NN1.pdf;NN2:EE4285-NN2.pdf;NN3:EE4285-NN3.pdf。
  • TN2 / SN2:Tutorial-NN2.pdf / TutorialSolution-NN2.pdf。
  • TN3 / SN3:Tutorial-NN3.pdf / TutorialSolution-NN3.pdf。

下一章不再手工规定每条线,而是用误差、链式法则和梯度下降让隐藏层权重一起学习。