5.1 神经元模型

  • 神经网络的定义

    • 神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的反应
  • 神经元模型:即上述定义中的“简单单元”是神经网络的基本成分

  • M-P 神经元模型

    • 输入:来自其他 n 个神经元传递过来的输入信号
    • 处理:输入信号通过带权重的连接进行传递,神经元接受到总输入值将与神经元的阈值进行比较
    • 输出:通过激活函数的处理以得到输出
    • 激活函数:sgn 阶跃函数(没办法求导)、Sigmoid 函数【y’ = y(1-y),优点:求导简单,可以求无穷次导数;缺点:y(1-y) 值会变小】

5.2 感知机与多层网络

  • 感知机能够容易实现逻辑与、或、非运算

  • w i w i + Δ w i Δ w i = η ( y <mover accent="true"> y ^ </mover> ) x i η ( 0 , 1 ) ( l e a r n i n g r a t e ) ( x , y ) <mover accent="true"> y ^ </mover> = y w_i\leftarrow w_i+\Delta w_i \\ \Delta w_i = \eta(y-\hat{y})x_i \\ 其中,\eta \in (0,1)称为学习率(learning rate) \\ 若感知机对训练样例(x,y)预测正确,即 \hat{y} = y,则感知机不发生变化 wiwi+ΔwiΔwi=η(yy^)xiη(0,1)(learningrate)(x,y)y^=y

  • XOR 异或问题:不能用单层感知机划分(但是可以用两层感知机解决)

  • 多层前馈神经网络

    • 要有隐层(隐藏层 hidden layer)

    • 定义:每层神经元与下一层神经元全互联,神经元之间不存在同层连接也不存在跨层连接

    • 前馈:输入层接受外界输入,隐含层与输出层神经元对信号进行加工,最终结果由输出层神经元输出

    • f ( w 1 , 2 x θ ) x f ( w 2 , 3 x θ ) f(w_{1,2}x-\theta) \\ 把上面的值当成新的x,进行相同运算,f(w_{2,3}x-\theta) f(w1,2xθ)xf(w2,3xθ)

    • 学习:根据训练数据来调整神经元之间的“连接权”(connection weight)以及每个功能神经元的阈值

5.3 误差逆传播算法(Error BackPropagation,简称 BP)

  • 链导法则:参数往自己梯度的方向往前走【网上有个推导:神经网络BP算法推导

    • 所有因子都被存好了

    • 3 层有 2 个嵌套

    • v v + Δ v v \leftarrow v+\Delta v vv+Δv

    • BP 算法基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整

  • 梯度消失:没有办法学参数(就是传递到前面时,导数消失了,没办法更新)

  • ReLU 函数:梯度要么是 0,要么是 1,所以不会出现梯度消失的问题

  • 如果激活函数用线性函数,那么就相当于 x 乘一个个矩阵,最后还是线性函数,最后学到的是一个线性分类器,不能解决 XOR 问题

  • 标准 BP 算法

    • 每次针对单个训练样例更新权重与阈值(每来一个样本,进行更新)
    • 参数更新频繁,不同样例可能抵消,需要多次迭代
  • 累计 BP 算法

    • 一堆样本放进去,求平均误差,用平均误差更新

    • 其优化的目标是最小化整个训练集上的累计误差

    • E = 1 m <munderover> k = 1 m </munderover> E k E = \frac{1}{m}\sum_{k=1}^{m}E_k E=m1k=1mEk

    • 读取整个训练集一遍才对参数进行更新,参数更新频率较低

  • 实际应用

    • 累计误差下降到一定程度后,进一步下降会非常缓慢,这时标准 BP 算法往往会获得较好的解,尤其当训练集非常大时效果更明显
  • 多层前馈网络局限

    • 过拟合:训练误差持续降低,但测试误差却可能上升
    • 如何设置隐层神经元的个数仍然是个未决问题,实际应用中通常使用“试错法”调整
  • 缓解过拟合的策略

    • 早停:若训练误差降低,但验证误差升高,则停止训练
    • 正则化:在误差目标函数中增加一项描述网络复杂程度的部分,例如连接权值与阈值的平方和

5.4 全局最小与局部极小

  • 梯度下降,一定找到的是局部最优

  • ”跳出“局部最小的策略

    • 模拟退火技术:每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出局部极小
    • 随机梯度下降:在计算梯度时加入了随机因素
    • 遗传算法:遗传算法也常用来训练神经网络以更好地逼近全局极小

5.5 其他常见神经网络

  • RBF 网络

    • 单隐层前馈神经网络:和输入向量有关,一定是非线性

    • φ ( x ) = <munderover> i = 1 q </munderover> w i ρ ( x , c i ) q c i w i i ρ ( x , c i ) \varphi (x) = \sum_{i=1}^{q}w_i\rho (x,c_i) \\ q 为隐层神经元的个数,c_i和w_i分别是第i神经元对应的中心和权重,\rho(x,c_i)是径向基函数 φ(x)=i=1qwiρ(x,ci)qciwiiρ(x,ci)

    • RBF 网络性质

      • 以任意精度逼近任意连续函数(最基本条件
    • RBF 网络训练

      • Step1:确定神经元中心,常用方式(随机采样,聚类)
      • Step2:利用 BP 算法等确定参数
  • ART 网络

    • 竞争学习:无监督学习
    • 适合在线学习,在线更新
    • ART 网络由比较层、识别层、识别阈值和重置模块构成
    • 比较层负责接收输入样本,并将其传送给识别层神经元
    • 识别层每个神经元对应一个模式类,神经元的数目可在训练过程中动态增长以增加新的模式类
  • SMO 网络

    • 无监督学习
  • 级联相关网络

  • Elman 网络

    • 递归神经网络:输出的神经元继续作为下一时刻的输入神经元
  • RNN

  • LSTM

  • Boltzmann 机