「吃瓜记」第5章 神经网络

5.1 神经元模型

神经网络 neural networks:由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。

神经元模型 neuron:神经网络中最基本的单元。

M-P神经元模型:神经元接收到n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接传递给细胞体,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过激活函数处理产生神经元的输出。M-P神经元模型如下图所示:

2.png
激活函数 activation function:神经元模型理想的激活函数是阶跃函数,但阶跃函数不连续,不光滑,实际常用Sigmoid函数,它将较大范围内变化的输入值挤压到 (0,1) 输出值范围内,所以也称为挤压函数(squashing function)。

3.png

5.2 感知机与多层网络

感知机 Perceptron:由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称阈值逻辑单元(threshold logic unit)。感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元(functional neuron)

线性可分 linearly separable:存在一个线性超平面能将它们分开,则感知机的学习过程一定会收敛(converge);否则感知机学习过程就会发生振荡(fluctuation)。

隐层/隐含层 hidden layer:输入层与输出层之间的层,隐层和输出层的神经元都是具有激活函数的功能神经元。只需包含一个隐层便可以称为多层网络

多层前馈神经网络 multi-layer feedforward neural network:每层神经元与下一层神经元之间完全互连,神经元之间不存在同层连接,也不存在跨层连接。

前馈 feedforward:网络拓扑结构中不存在环或回路,并不意味着网络中信号不能向后传。

5.3 误差逆传播算法

误差逆传播算法 error BackPropagation:迄今最成功的的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练。通常说的BP网络一般是指BP算法训练的多层前馈神经网络。

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

学习率 learning rate: η∈(0,1)控制着算法每一轮迭代中的更新步长,若步长太大则下降太快容易产生振荡,若步长太小则收敛速度太慢,一般地常把η设置为0.1。

BP算法的基本流程如下所示:

10.png

BP算法的目标:最小化训练集D上的累积误差。

BP算法的更新规则:基于每个样本的预测值与真实类标的均方误差来进行权值调节,即BP算法每次更新只针对于单个样例。

基于累积误差最小化的更新规则,则得到了累积误差逆传播算法(accumulated error backpropagation),即每次读取全部的数据集一遍,进行一轮学习,从而基于当前的累积误差进行权值调整,因此参数更新的频率相比标准BP算法低了很多,但在很多任务中,尤其是在数据量很大的时候,往往标准BP算法会获得较好的结果。

如何设置隐层神经元个数?至今仍然没有好的解决方案,常使用 试错法(trial-by-error) 进行调整。

BP神经网络强大的学习能力常常容易造成过拟合问题,有以下两种策略来缓解BP网络的过拟合问题:

  • 早停 early stopping:将数据分为训练集与验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
  • 正则化 regularization:基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和。其中 λ∈(0,1)用于对经验误差与网络复杂度这两项进行折中,常通过交叉验证法来估计。
    12.png

5.4 全局最小与局部最小

神经网络的训练过程可看作一个参数寻优过程,即在参数空间中,寻找一组最优参数使得E最小。

局部极小 local minimum:参数空间中的某个点,其邻域点的误差函数值均不小于该点的误差函数值。

全局最小 global minimum:参数空间中的某个点,所有其他点的误差函数值均不小于该点的误差函数值。

基于梯度的搜索是使用最为广泛的参数寻优方法。由于负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解。

在现实任务中,通常使用以下策略跳出局部极小,尽可能地去接近全局最小。

  • 以多组不同参数值初始化多个神经网络,按标准方法训练,迭代停止后,取其中误差最小的解作为最终参数。
  • 模拟退火 simulated annealing,每一步都以一定的概率接受比当前解更差的结果。
  • 随机梯度下降,即在计算梯度时加入了随机因素,使得在局部最小时,计算的梯度仍可能不为0,从而迭代可以继续进行。
  • 遗传算法 genetic algorithms

5.5 其他常见神经网络

5.6 深度学习

理论上,参数越多,模型复杂度就越高,容量(capability)就越大,从而能完成更复杂的学习任务。

怎么增大模型复杂度?

  • 增加隐层的数目
  • 增加隐层神经元的数目

前者更有效一些,因为它不仅增加了功能神经元的数量,还增加了激活函数嵌套的层数。但是对于多隐层神经网络,经典算法如标准BP算法往往会在误差逆传播时发散(diverge),无法收敛达到稳定状态。

怎么有效地训练多隐层神经网络?

  • 无监督逐层训练 unsupervised layer-wise training:每次训练一层隐节点,把上一层隐节点的输出当作输入来训练,本层隐结点训练好后,输出再作为下一层的输入来训练,这称为预训练(pre-training)。全部预训练完成后,再对整个网络进行微调(fine-tuning)训练。一个典型例子就是深度信念网络(deep belief network,简称DBN)。这种做法其实可以视为把大量的参数进行分组,先找出每组较好的设置,再基于这些局部最优的结果来训练全局最优。
  • 权共享 weight sharing:令同一层神经元使用完全相同的连接权,典型的例子是卷积神经网络(Convolutional Neural Network,简称CNN)。这样做可以大大减少需要训练的参数数目。

深度学习可以理解为一种特征学习(feature learning)或者表示学习(representation learning)

传统任务中,样本的特征需要人类专家来设计,这称为特征工程(feature engineering)。特征好坏对泛化性能有至关重要的影响。而深度学习为全自动数据分析带来了可能,可以自动产生更好的特征。

参考资料

  1. 机器学习,周志华,清华大学出版社
  2. 【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀球Gang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值