第 8 章 神经网络:表述
神经网络用于处理更复杂的非线性假设。课程用手写数字识别等问题说明:当特征数量很大时,普通多项式特征会迅速膨胀,神经网络是一种更合适的表达方式。
8.1 非线性假设
如果输入图像是 20 x 20 像素,那么原始特征就有 400 个。若再构造二次项、三次项,多项式特征数量会非常大。
这说明在复杂任务中,单纯手工构造多项式特征不现实。
神经网络可以学习复杂的非线性函数,适合图像、语音等高维输入。
8.2 神经元和大脑
神经网络的灵感来自生物神经元。
一个神经元可以看作接收若干输入,经过计算后输出一个值。机器学习中的人工神经元通常使用类似逻辑回归的形式:
其中 g 是 Sigmoid 函数。
8.3 模型表示 1
神经网络由多层组成:
- 输入层
- 隐藏层
- 输出层
常用记号:
| 符号 | 含义 |
|---|---|
a_i^(j) | 第 j 层第 i 个单元的激活值 |
Theta^(j) | 从第 j 层映射到第 j + 1 层的参数矩阵 |
如果第 j 层有 s_j 个单元,第 j + 1 层有 s_(j+1) 个单元,那么参数矩阵维度为:
text
s_(j+1) x (s_j + 1)多出来的 1 来自偏置单元。
8.4 模型表示 2
神经网络的前向传播,就是从输入层开始,一层一层计算激活值,直到输出层。
以三层网络为例:
加入偏置单元后继续计算:
这种从左到右的计算过程就是前向传播。
8.5 特征和直观理解 1
隐藏层可以看作自动学习出来的新特征。
逻辑回归只能直接使用输入特征,而神经网络可以先在隐藏层中组合原始输入,得到更适合分类的新表示,再由输出层完成预测。
8.6 样本和直观理解 2
神经网络可以组合简单特征来表达复杂函数。
课程中用逻辑运算作直观例子:通过设置不同参数,神经元可以模拟 AND、OR、NOT 等逻辑关系。
多个神经元组合后,可以表达更复杂的非线性判定区域。
8.7 多类分类
神经网络可以自然处理多类别分类。
如果有 K 个类别,输出层可以设置 K 个输出单元。每个输出单元对应一个类别。
例如手写数字识别中,可以用 10 个输出单元分别表示数字 0 到 9。
输出可以写成向量形式: