人工智能导论 笔记2


第二章 神经网络和深度学习

神经网络 —— 从数字识别说起

  • 深度学习 $\subseteq$ 机器学习 $\subseteq$ 人工智能.

  • $w_i(1\le i\le n)$ 表示数字模式, $x_i(1\le i\le n)$ 表示数字图像, 大小表示匹配程度.

  • Sigmoid 函数: 评判匹配的程度, 将匹配结果变换到 0~1 之间.

  • 增加偏置项: 使 Sigmoid 函数平移.

  • 神经元代表一个模式, 其输出为匹配结果.

  • 神经网络的扩展:

    • 横向 —— 增加模式.

    • 纵向 —— 局部模式.

    • 网络更深 —— 模式组合.

  • 获得模式:

    • 模式通过神经元的连接权重表示.
    • 通过训练样本, 自动学习权重 (模式), 不是人工设计.
    • 学习到的模式是一种隐含表达.

神经元与神经网络

  • 神经元:

  • 激活函数:

    • 符号函数.

    • Sigmoid 函数.

    • 双曲正切函数.

    • ReLU 函数.

    • Softmax 函数.

如何训练神经网络

  • 建立数据集 (以动物识别为例):

    • 收集各种动物的照片:
      • 不同姿势.
      • 不同角度.
      • 不同大小.
    • 数据标注:
      • 每张照片标注上动物的名称.
    • 训练集与测试集:
      • 样本.
  • 训练网络: 调整神经元权重.

  • 评价效果: 损失函数.

  • 误差平方和损失函数:

    • 用于输出是具体数值的问题.

    • 对样本 $d$ 的误差:

    • 对所有样本的误差:

  • 梯度下降法:

    • 迭代公式: 对权重求导, 作为下降的梯度大小.

    • 梯度下降算法:

      • 批量梯度下降算法.
      • 随机梯度下降算法.
      • 小批量梯度下降算法.

    • 输出层 (只影响一个输出):

    • 隐含层 (影响多个输出):

    • 整体梯度计算:

  • 反向传播算法 (BP算法): 随机梯度下降算法的一种实现.

    • 随机梯度下降版: 初始化所有权值为小的随机值, 如 $[-0.05,0.05]$.
    • 算法条件:
      • 全连接网络.
      • 批量、小批量梯度下降算法.
      • 激活函数: Sigmoid 函数.
      • 损失函数: 误差平方和.
  • 交叉熵损失函数:

    其中 $t_{kd}$ 为样本的希望输出值, $o_{kd}$ 为样本的实际输出值, 需要为概率值. 这给出了两个不同的概率分布间的距离. 对于分类问题, 对于给定输入样本 $d$, 只有 $d$ 对应的希望输出为 1, 其他为 0. 此时

卷积神经网络 (CNN)

  • 全连接网络的不足:

    • 连接权重过多.
    • 影响训练速度.
    • 影响使用速度.
  • 卷积神经网络的特点:

    • 参数少, 只与卷积核的大小和数量有关.
    • 具有特征抽取能力.
    • 特征的平移不变性 (一定程度上).
  • 提取局部模式:

    • 局部连接, 权值共享.

    • 卷积核训练通过 BP 算法进行.

    • 多卷积核: 一个卷积核产生一个通道, 输出的通道数等于卷积核数.

    • 多输入通道 (例: RGB 识别):

      此时视为多厚度单卷积核.

    • 卷积核大小: 多层小卷积实现大卷积 (两层 3×3 卷积等效 5×5 卷积).

    • 池化: 一种降维的手段 (最大池化/平均池化), 池化不改变通道数.

    • 卷积核具有抽取特征的能力.

  • LeNet 神经网络 (数字识别):

  • VGG-16 神经网络 (图像识别):

梯度消失问题

  • 网络深度过深时:

  • 使用 ReLU 激活函数, 其导数恒为 1:

  • GoogLeNet 神经网络 (类比高楼供水系统):

    神经元依靠就近输出进行训练时的梯度计算补偿, 训练结束后只采用最终输出.

    • Inception 模块:

      —同时使用不同大小的卷积核.

    • 降维 Inception 模块:

      使用 1×1 卷积降维.

    • Inception 模块详析:

  • ResNet 残差网络:

    • 神经网络的退化现象 (与网络结构有关):

    • 残差模块:

      恒等映射的存在解决了梯度消失问题.

过拟合问题

  • 神经网络的过拟合问题 (与网络结构无关, 与训练轮次有关):

  • 使用验证集: 用于调整超参数.

  • 限制模型的复杂性:

    • 正则化项法: 考虑误差平方和损失函数:

      加入正则化项用于降低模型复杂性:

      • 2-范数: 很多参数值很小, 但基本不为 0, 抗干扰能力强.

      • 1-范数: 一些参数为 0, 起到特征选择的作用.

    • 舍弃法: 随机地临时舍弃一些神经元.

  • 增加数据量: 获得更多的数据.

    • 数据增强法: 数据越多, 过拟合的风险就越小.

词向量

  • 神经网络处理文本 (词&文本) 的方法.

  • 独热编码 (one-hot): 用与词表等长的向量表示一个词, 只有一个元素为 1.

    • 优点: 编码简单.
    • 缺点: 编码太长, 无法度量词之间的相似性 (例: 2-范数度量).
  • 分布式表示: 相比于独热编码, 是一种稠密表示.

  • 词嵌入: 把词向量从高维空间嵌入到低维空间中的一个方法.

  • 神经网络语言模型: 用神经网络实现的语言模型.

    标准的全连接网络 (前向神经网络):

    语言模型同时训练词向量权重:

  • 训练神经网络语言模型: 让联合概率最大化估计概率 (最大似然估计).

    • 联合概率分布一般含有参数.

    • 通过最大似然方法估计联合概率的参数.

    • 对于神经网络语言模型, 即是估计网络的参数值.

    • 损失函数 (负对数似然函数):

      其中 $\theta$ 表示神经网络的所有参数, $C$ 为语料库.

    • 存在问题:

      • 神经元个数等于词表长度 $K$.
      • $m(n-1)$ 个输入, 全连接参数多.
  • 训练词向量:

    每个词随机给定词向量, 并在进行训练实时更新 (输入层相当于一个新增的隐含层). 通过训练语言模型, 得到词向量 (自监督).

  • word2vec模型: 一种简化的神经网络语言模型.

    • 连续词袋模型 (CBOW): 不考虑上下文中词的顺序.

      输出处理得到的 $x_w$ 的长度即为一个词向量的长度, 使用语料库预生成Huffman Tree 替换隐含层及输出层. 每次训练时只计算与该词有关的参数, 且越是常用词涉及的参数越少, 训练速度快.

      $W$ 经过霍夫曼树每个节点时的概率为:

      损失函数:

    • 跳词模型 (Skip-Gram Model).
  • TextCNN: 词向量应用——情感分类问题.

循环神经网络 (RNN)

  • 网络辨析:

    • 数据角度:

      • 序列数据.
      • 数据之间有先后联系.
    • 网络结构角度:

      • 前馈网络 (CNN).
      • 反馈网络 (RNN).
    • 表示角度:

      • 句子向量、序列向量.
  • 循环模块:

  • 循环神经网络的训练: 与具体任务结合.

  • : 看图说话问题

  • 双向循环神经网络: 防止序列前面的内容被后面的内容淹没.

  • 序列到序列循环神经网络: 机器翻译、问答系统.

长短期记忆网络 (LSTM)

  • 简单 RNN 存在的问题:

    • 长期依赖问题.
    • 重点选择问题: 不同的任务词的重要性不同.
  • LSTM 模块:

    通过状态解决梯度消失问题; 通过“门”进行选择, 结构一样, 参数不同.

    同简单 RNN 一样, LSTM 模块也是共用的.

  • LSTM 具体结构:


文章作者: Chengsx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chengsx !
  目录