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

第五章 神经网络

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

5.1 神经元模型

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

5.2 感知机与多层网络

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

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

  • 哑结点(dummy node)

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

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

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

5.3 误差逆传播算法

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

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

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

  • 过拟合防止策略

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

5.4 全局最小与局部最小

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

5.5 其他常见神经网络

5.6 深度学习

你可能感兴趣的:(MLBOOK,01)