机器学习理论——吃瓜系列之4:神经网络

1、神经元模型

定义:神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界体所作出的交互反应。在机器学习中谈论神经网络时指的是”神经网络学“或者说是机器学习与神经网络这两个学科领域的交叉部分。

基本组成:神经元模型
M-P神经元模型中,神经元接收到其他n个神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元收到的总输入值将与神经元的阈值进行比较,然后通过激活函数(active function)处理以产生神经元的输出。

在这里插入图片描述
理想的激活函数是如下图所示的阶跃函数,它将输入值映射为“0”(神经元抑制),“1”(神经元兴奋)。但是,阶跃函数具有不连续不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数。

把许多这样的神经元按照一定的层次结构连接起来,就得到了神经网络。
事实上,从计算机科学的角度看,我们可以先不考虑神经网络是否真的模拟了生物神经网络,只需将一个神经网络视为包含了许多参数的数学模型,.有效的神经网络学习算法大多以数学证明为支撑

2.1 感知机

感知机由两层神经元组成,输入层接受外界信号,输出层时M-P神经元。亦称阈值逻辑单元。
学习规则:对于训练样本(x,y),当该样本进入感知机学习后,会产生一个对应的输出值y ^,若真实输出值y与其不一致,则感知机会对权重进行调整,若激活函数为阶跃函数,则调整方法为(基于梯度下降)

缺陷:感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限,只能处理线性可分的问题。

2.2 多层网络

考虑到现实任务的复杂性,更一般的,常见的神经网络是如下图所示的层级结构,每层神经元与下层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为“多层前馈神经网络”(multi-layer feedforward neural networks)。
在这里插入图片描述

  • 输出层:输出层神经元为功能神经元,进行函数处理
  • 隐层(hidden layer):隐层神经元为功能神经元,进行函数处理
  • 输入层:输入层神经元仅接收外界输入信息,不进行函数处理

神经网络的学习过程就是:根据训练数据来调整神经元之间的连接权和每个功能神经元的阈值。换言之,神经网络"学"到的东西,蕴涵在连接权与阙值中,

3、误差逆传播算法(BP算法)

多层网络拥有比感知机更强大的学习能力,之前论述的感知机学习规则对于多层网络来说显然不够用,需要更强大的学习算法,误差逆传播(error BackPropagation,简称BP)算法就是其中的杰出代表,是迄今最成功的神经网络学习算法。
BP算法除了运用在多层前馈神经网络之外,还可以用在许多其他类型的神经网络,例如训练递归神经网络等等。
BP是一个迭代学习算法,在迭代的每一轮采用广义的感知机学习规则对参数进行更新估计,与感知机的类似,对于任意参数v ,基于梯度下降策略寻找最小化均方误差,负的梯度方向为最速下降方向,
BP算法的工作流程:

在这里插入图片描述
BP算法的目标是要最小化训练集D DD上的累积误差E:

上图的更新规则是基于for循环下的单个E k 而进行的(但最终效果依然是最小化累积误差),若类似地推导出基于累积误差最小化的更新规则(即每次都是基于累计误差而不再是单个误差进行调整),就得到了累积误差逆传播算法。

过拟合缓解办法:
定义:训练误差持续降低,但测试误差却在上升,这就是BP神经网络经常遭遇的过拟合问题。

  • 早停 :将数据分成训练集和验证集,训练集用来计算梯度,更新连接权和阈值,验证集用来估计误差。若出现上文所述的过拟合现象,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
  • 正则化 :在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权和阈值的平方和。

全局最小和局部最小的区分:
局部最优 :参数空间内梯度为零的点,只要其误差函数值小于邻点的误差函数值;
全局最优 :多个局部最优解中最优的那个(以某一个标准来比较取其优)
基于梯度的搜索是使用最广泛的参数寻优方法,若误差函数在当前点的梯度为0,则已经达到局部极小,之后不会再做更新。
采用以下三种策略来试图跳出局部最小,从而进一步接近全局最小(不能保证得到的就是全局最小,只是逼更近):

  • 以多组不同的参数值初始化多个神经网络
  • 使用随机梯度下降。
  • 使用模拟退火(simulated annealing)技术。
  • 使用遗传算法(GA)技术

4、深度学习

理论上来说,参数越多的模型复杂度越高、 “容量” (capacity) 越大,这意味着它能完成更复杂的学习任务。但一般情形下,复杂模型的训练效率低,易陷入过拟合。

无监督逐层训练 是多隐层网络训练的有效手段,基本思想:预训练+微调 ,将大量参数分组,对每组先找到局部看来比较好的设置,然后再基于这些局部较优的结果联合起来远行全局寻优。
权共享:即让一组神经元使用柑同的连接权,在CNN中发挥了重要作用。

换一个角度来理解深度学习 :无论是 DB 还是 CNN,其多隐层堆叠、每层对上一层的 进行处理的机制,可看作是在对输入信号进行逐层加工,从而把初始的 输出目标之间关系不太密切的输入表示 转化成与输出目标的表示,使得原来仅基于最后 一层输出映射难以完成的任务 成为可能。
换言之 ,通过多层处理,逐渐将初始 低层 "特征表示转化为高层 表示后 用"简单模型 复杂的分类等学习任务,由此可将 深度学习理解 进行"特征学习“ (feature earning) 或表示学习(representation learning)。

以往在机器学习用于现实任务时,描述样本 的特征通常需要 专家来设计,这称为 特征工程" (feature ineering) 。众所周知 特征的好坏对 泛化性能有至关重要的影响,人类专家设计出好特征也并非易事;特征学习则通过机器学习技术自身来产生好特征,这使机器学习向"全自动数据分析"又前进了一步。

5、其他常见的神经网络

RBF网络

单隐层前馈神经网络 使用径向基函数作为隐层的激活函数,而输出层为对隐层神经元输出的线性组合。
已证明定理:具有足够多隐层神经元的 RBF 网络能以任意精度逼近任意连续函数.

ART网络

竞争型学习 (competitive learning) 是神经网络中一种常用的无监督学习策略。

SOM网络

SOM(Self-Organizing Map ,自组织映射)网络 [Kohonen 1982] 是一种竞争学习型的无监督神经网路。

级联相关网络

级联相关(Cascade-Correlation )网络[Fahlman and Lcbiere, 1990] 是结构自适应网络的重要代表。

Elman网络

Elman网络 [Elman,1990] 是最常用的递归神经网络之一。

Boltzmann机

Boltzmann 机[Ackley , 1985] 就是一种"基于能量的模型" (energy-based model)。神经网络中有一类模型是为网络状态定义一个"能量" (energy) ,能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数。

参考资料:
机器学习,周志华
https://blog.csdn.net/shichensuyu/article/details/90907029

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笨猪起飞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值