径向基函数神经网络_神经网络

fb11da82689358f3638e6628330461b7.png

本文主要参考周志华老师的《机器学习》和Tom M. Mitchell老师的《机器学习》。

神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。

一、神经网络的基本要素

如下为一个简单的“M-P神经元模型”。在这个模型中,神经元接收来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。

3a6cd394ff8b50309507099ab57b7ea0.png

其中常用的激活函数为sigmoid函数,tanh函数等。

7802583dd0c50f519d86c3b6e9ce8982.png

把许多个如上类似的神经元按照一定的层次连接起来,就得到了神经网络。

感知机就是一个简单的神经网络。感知机的内容可以参考:https://zhuanlan.zhihu.com/p/47878242

但感知机不能解决异或等线性不可分问题,因此,可以通过改变神经网络的结构来解决更多问题。

一般来说,神经网络的结构如下图所示:

404817cd53c6fca4b33506b6eabaa8e5.png

输入:训练样本,神经网络的结构

输出:训练后的神经网络(主要学习到的为神经网络的权重)

二、神经网络的模型、策略、算法

1、反向传播算法(BackPropagaton)

对于由一系列确定的单元互连形成的多层网络,反向传播算法可以用来学习这个网络的权重。它采用梯度下降方法试图最小化网络输出值和目标值之间的误差平方。

首先定义误差E

其中outputs是网络输出单元的集合,

是与训练样例d和第k个输出单元相关的输出值。

如下描述了一个适用于包含两层sigmoid单元的分层前馈网络,并且每一层的单元与前一层的所有单元相连(全连接)。

输入:

1) training_example中每一个训练样本的形式为

的序偶,其中
是网络输入值向量,
是目标输出值。

2)

是学习速率(例如0.05)。

3)

是网络输入的数量,
是隐藏层单元数,
是输出层单元数。

步骤:

1) 按照输入创建神经网络;

2) 初始化所有网络权值为小的随机值;

3) 在遇到终止条件前:

对于训练样本training_example中的每个

把输入沿网络前向传播:

1. 把实例

输入网络,并计算网络中每个单元u的输出

使误差沿网络反向传播:

2.对于网络的每个输出单元k,计算它的误差项

3.对于网络的每个隐藏单元h,计算它的误差项

4.更新每个网络权值

其中

反向传播的终止条件有很多:可以在迭代的次数到了一个固定值时停止,或者当在训练样例上的误差讲到某个阈值以下时,或者在分离的验证样例集合上的误差符合某个标准时。

2、局部极小值

反向传播算法实现了一种对可能的网络权值空间的梯度下降搜索,它迭代地减小训练样例的目标值和网络输出间的误差。因此对于多层网络,误差曲面可能含有多个不同的局部极小值,梯度下降可能陷入这些局部极小值中的任何一个。

为了缓解局部极小值问题,一些常见的启发式规则包括:

1)为梯度更新法则加一个冲量项。

2)使用随机的梯度下降而不是真正的梯度下降。

3)使用同样的数据训练多个网络,但用不同的随机权值初始化每个网络。如果不同的训练产生不同的局部最小值,那么对分离的验证集合性能最好的那个网络将被选中。或者保留所有的网络,并且把它们当做一个网络“委员会”,它们的输出是每个网络输出的平均值。

3、前馈网络的表征能力:

1)布尔函数:任何布尔函数都可以被具有两层单元的网络准确表示,尽管在最坏的情况下所需隐藏单元的数量随着网络输入数量的增加成指数级增长。

2)连续函数:每个有界的连续函数可以由一个两层的网络以任意小的误差逼近。这个理论适用于在隐藏层使用sigmoid单元、在输出层使用线性单元的网络,所需要的隐藏单元数量依赖于要逼近的函数。

3)任意函数:任意函数可以被一个有三层单元的网络以任意精度逼近。输出层使用线性单元,两个隐藏层使用sigmoid单元,每一层所需的单元数量一般不确定。

4、神经网络的过拟合:

由于神经网络强大的表征能力,很容易遭遇过拟合,训练误差持续降低,但测试误差却可能上升。有两种策略常用来缓解网络的过拟合。

第一种策略是早停:将数据分成训练集合验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。

第二种策略是正则化,其基本思想是在目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和。令

表示第k个训练样例上的误差,
表示连接权和阈值,则误差目标函数变为:

三、其他常用神经网络:

RBF(径向基函数)网络是一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。

典型的深度学习模型就是很深层的神经网络,深度学习模型通常由八九层甚至更多的隐层。

输入:训练集

学习率

过程:

1) 在(0,1)范围内随机初始化网络中所有连接权和阈值

2) repeat

3) for all

do

4) 根据当前参数和

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值