【机器学习-西瓜书】-第5章-神经网络-学习笔记

5.1 神经元模型

神经网络的定义

  • 神经网络是具有适应性的简单单元组成的广泛并行互联的网络
  • 它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应

机器学习中谈论的神经网络

通常指的是"神经网络学习"

神经网络的结构及原理

  • 最基本单元神经元模型
    • neuron/unit
  • 接收到别的神经元的电位超过阈值,神经元被激活
    • 阈值threshold/阀值bias

M-P神经元模型
【机器学习-西瓜书】-第5章-神经网络-学习笔记_第1张图片

M-P神经元,也称为阈值逻辑单元

激活函数/响应函数

处理输入结果以产生神经元的输出

常见的激活函数

1)阶跃函数

缺点:不连续、不光滑

2)Sigmoid函数

将输入值挤压到(0,1)输出值范围内,有时也称为"挤压函数"(squashing function)

【机器学习-西瓜书】-第5章-神经网络-学习笔记_第2张图片

计算机角度理解神经网络

将神经网络看成包含了很多参数的数学模型

例: y j = f ( ∑ i w i x i − θ j ) y_{j}=f\left(\sum_{i} w_{i} x_{i}-\theta_{j}\right) yj=f(iwixiθj)相互嵌套代入得动的模型

有效的神经网络学习算法大多以数学证明为支撑

5.2 感知机与多层网络

感知机

结构
【机器学习-西瓜书】-第5章-神经网络-学习笔记_第3张图片

  • 两层神经元
    • 输入层仅是接收输入,不进行函数处理
    • 输出层是M-P神经元,包含功能神经元

应用范围

  • 很容易地实现逻辑与、或、非运算
  • 缺点
    • 不能解决异或问题

【机器学习-西瓜书】-第5章-神经网络-学习笔记_第4张图片

参数

  • 权重 w i ( i = 1 , 2... , n ) w_i(i=1,2...,n) wi(i=1,2...,n)
  • 阈值 / t h e t a /theta /theta

在这里可以将阈值 θ \theta θ看成是固
定输入为-1.0的"哑结点"

看成连接权重为 w i + 1 w_{i+1} wi+1

权重更新过程

w i ← w i + Δ w i Δ w i = η ( y − y ^ ) x i \begin{array}{c} w_{i} \leftarrow w_{i}+\Delta w_{i} \\ \Delta w_{i}=\eta(y-\hat{y}) x_{i} \end{array} wiwi+ΔwiΔwi=η(yy^)xi

这里面 η \eta η为学习率

多层神经网络

可解决非线性可分问题

在输出层与输入层之间添加隐层或隐含层

  • 隐含层和输出层神经元都是拥有激活函数的功能神经元

多层前馈神经网络

multi-layer feedforward neural network
【机器学习-西瓜书】-第5章-神经网络-学习笔记_第5张图片

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

神经网络学习到的东西都蕴含在

  • 连接权
    • 神经元连接的权重
  • 阈值

5.3 误差逆传播算法

反向传播算法

BackPropagation(BP)

  • 一种神经网络学习算法
  • 基于梯度下降策略
  • 目标是最小化训练集 D D D上的累计误差
    • E = 1 m ∑ k = 1 m E k E=\frac{1}{m} \sum_{k=1}^{m} E_{k} E=m1k=1mEk

不仅可以训练多层前馈神经网络还用于其他类型神经网络训练,如:递归神经网络

BP网络

BP算法训练的多层前馈神经网络

BP算法的详细过程

标准BP算法 v.s. 累积BP算法

标准BP算法 累积BP算法
随机梯度下降 ( stochastic gradient descent , SGD) 标准梯度下降
每次更新只针对单个样例 直接针对累积误差最小化
参数更新非常频繁 读取整个数据集 D D D一遍之后才对参数进行更新
参数更新的频率低很多
对不同样例进行更新的效果可能出现"抵消"现象
为了达到同样的累积误差极小点,标准BP算法往往需要进行更多次数的迭代
训练集 D D D非常大时,标准BP往往会更快或得较好的解 累积误差下降到一定程度之后,进一步下降会非常缓慢

“一轮”:读取训练集一遍称为进行了一轮学习

试错法 ( trial-by-error )

通过尝试来设置隐层神经元的个数

理论上足够多神经元的隐层能以任意精度逼近任意复杂度的连续函数

解决BP算法过拟合的方法

早停 ( early stopping )

将数据分为训练集和验证集

  • 训练集:计算梯度、更新权值和阈值
  • 验证集:估计误差

当训练集误差降低但验证集误差升高,停止训练,返回具有最小验证集误差的权值和阈值

正则化

基本思想

  • 在误差目标函数中增加一个用于描述网络复杂度的部分

E = λ 1 m ∑ k = 1 m E k + ( 1 − λ ) ∑ i w i 2 E=\lambda \frac{1}{m} \sum_{k=1}^{m} E_{k}+(1-\lambda) \sum_{i} w_{i}^{2} E=λm1k=1mEk+(1λ)iwi2

其中 λ ∈ ( 0 , 1 ) \lambda \in(0,1) λ(0,1)用于对经验误差与网络复杂度这两项进行折中,常通过交叉验证法来估计

参考资料

[1]周志华. 《机器学习》[J]. 中国民商, 2016, 03(No.21):93-93.

你可能感兴趣的:(机器学习)