MLb-005 46《机器学习》周志华 第五章:神经网络

第五章 神经网络

此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…


5.1 神经元模型

  • 基本概念
    神经元(neuron)模型是神经网络最基本的成分
    阈值(threshold),亦称bias
  • M-P神经元模型
    • 图解MLb-005 46《机器学习》周志华 第五章:神经网络
    • **函数(activation function)
      • 理想中的**函数:阶跃函数
        sgn(x)={1,x00,x<0sgn(x)=\begin{cases}1, x≥0\\0, x<0\end{cases}
        将输入映射为输出值"0"或"1"
      • 典型的**函数:Sigmoid函数(挤压函数 squashing function)
        sigmoid(x)=11+exsigmoid(x)=\frac{1}{1+e^{-x}}
        将可能在**范围内变化的输入值挤压到(0,1)输出值范围内
        MLb-005 46《机器学习》周志华 第五章:神经网络

5.2 感知机与多层网络

  • 感知机(Perceptron):由两层神经元组成
    输入层:接收信号后传递给输出层
    输出层:M-P神经元(阈值逻辑神经元)
    感知机能容易地实现逻辑与、或、非运算

    两个输入神经元的感知机网络结构示意图:MLb-005 46《机器学习》周志华 第五章:神经网络

  • 哑结点(dummy node)

    • 统一权重和阈值的学习为权重的学习(把阈值看作固定值-1,0的哑结点所对应的连接权重)
    • 感知机学习规则
      对训练样例(x,y),当前感知机的输出
      感知机权重调整规则:
      {wiwi+ΔwiΔwi=η(yy^)xi\begin{cases}w_i\leftarrow w_i+\Delta w_i\\ \Delta w_i=\eta (y-\hat{y})x_i\end{cases}
    • 学习率(learning rate)
      过大:容易振荡
      过小:收敛速度过慢
  • 单层功能神经元网络

    • 对线性可分(linearly separable)问题的学习过程一定会收敛(converge)
    • 对线性不可分的问题的学习过程难以收敛,将会发生振荡(fluctuation)
      MLb-005 46《机器学习》周志华 第五章:神经网络
  • 多层功能神经元网络

    • 隐含层(hidden layer)
      与输出神经元都是拥有**函数的功能神经元MLb-005 46《机器学习》周志华 第五章:神经网络
    • 多层前馈神经网络(multi-layer feedforwaard neural networks)
      MLb-005 46《机器学习》周志华 第五章:神经网络

5.3 误差逆传播算法

  • 误差逆传播算法(BP: error BackPropagation)

    • 图解
      需要确定的参数:(d+r+1)*q+r
      {{d×qq×l{ql\begin{cases} 权值\begin{cases}输入层到隐层:d×q\\ 隐层到输出层:q×l\end{cases}\\ 阈值\begin{cases}q个隐层神经元\\l个输出层神经元\end{cases}\\ \end{cases}
      策略:梯度下降(gradient descent)
    • 算法过程
      MLb-005 46《机器学习》周志华 第五章:神经网络
  • 积累误差逆传播算法(accumlated error backpropagation) 对比

    • 标准BP算法
      每次更新只针对单个样例
      参数更新得非常频繁
      对不同样例进行更新的效果可能出现“抵消”现象
      往往需进行更多次数的迭代
      在训练集非常大时标准BP往往更快获得较好的解
    • 积累BP算法
      直接针对累积误差最小化
      参数更新的评率低得多
      在读取整个训练集D一遍后才对参数进行更新
  • 试错法(trial-byerror)
    证明:只需两个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数
    解决如何设置隐层神经元的个数问题

  • 过拟合防止策略

    • 早停(early stopping)
      训练集:计算梯度、更新连接权和阈值
      验证集:估计误差
      若训练集误差降低但验证集误差升高,则停止
    • 正则化(regularization)
      基本思想:在误差目标函数中增加一个用于描述网络复杂度的部分(如连接权与阈值的平方和)
      加入正则项的误差目标函数(BP算法最小化训练集D积累误差):
      E=1mk=1mEk()E=λ1mk=1mEk+(1λ)iwi2E=\frac1 m \sum_{k=1}^mE_k\Rightarrow(正则化)\Rightarrow E=\lambda \frac1 m\sum_{k=1}^mE_k+(1-\lambda )\sum_iw_i^2

5.4 全局最小与局部最小

  • 最为广泛的参数寻优方法:基于梯度的搜索
    负梯度方向:函数值下降最快的方向
    梯度下降法:沿着负梯度方向搜索最优解
    若误差函数在当前点的梯度为零,则已达到局部极小,更新量降为零,参数的迭代更新在此停止
  • 试图跳出局部极小策略
    以多组不同参数值初始化多个神经网络
    模拟退火(simulated annealing)
    随机梯度下降(stochasitc gradient descent)
    遗传算法(genetic algorithms)

5.5 其他常见神经网络

5.6 深度学习