定义:"神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界体所作出的交互反应”【Kohonen, 1988】
基本部分:神经元模型
在生物神经网络中,每个神经元与其他神经元相连,如果某神经元的电位超过了某个"阔值" ,那么它就会被激活“兴奋”起来,向其他神经元发送化学物质.
由此抽象出数学模型:神经元接收到其他连结的神经元传递过来的n个输入信号,每个神经元的输入信号都具有相应权重,加权求和后神经元接收到的即为总输入值,将其与神经元的阀值进行比较,并进行处理后输出。
图源《机器学习》,周志华
此模型称为"M-P 神经元模型“
神经元输出时,需要通过”激活函数”(又称'响应函数")处理。常用激活函数有Sigmoid函数(又称"挤压函数"),函数公式为:。另有ReLU函数和softmax函数也作为激活函数。
感知机和多层网络
利用神经元可以构建感知机和多层网络。
感知机 多层网络
其中感知机由两个神经元组成,输入层接收外界输入信号后传递给输出层, 输出层是 M-P 神经元。感知机可以解决简单线性问题,如逻辑与、或、非运算。具体方式见表
与 (X1 | 令ω1=ω2 = 1, |
或 (X1 | 令ω1=ω2 = 1, |
非 (-X1) | 令ω1= -0.6, ω2 =0, |
多层网络由输入层,隐层,输出层构成,其中输入层神经元接收外界输入,隐层与输出层神经元对信息进行处理,最终结果由输出层神经元输出。
机器学习得到相关参数值
对于感知机的参数训练:将阈值看作是(-1)*
, 将问题统一为求解n+1个权重。
对训练样例(x, y), 若当前感知机的输出为,那么有以下的调整:
, 其中
其中为学习率, 通常设置为一个非常小的正数。
对于线性可划分的问题,学习过程最后将收敛而求得合适的解
而对于多层网络的参数训练,最常用的一种方式为误差逆传播算法(error BackPropagation ,简称 BP)
BP总体运算步骤:
先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果; 然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整
算法目标:调整参数使训练集上的累积误差达到最小
其中累计误差:,
为均方误差
对参数值误差的调整
若给定训练集, 即D中包含了m对向量组,其中
包含了d个元素,对应输入层d个数据;
包含了l个元素对应输出层l个数据。
记输出层第j个神经元的阈值为 ,隐层第h个神经元的阈值用
表示。输入层第i个神经元与隐居第h 个神经元之间的连接权为
,隐层第h个神经元与输出层第j个神经元之间 的连接权为
。记隐层第h个神经元接收到的输入为
输出层第j个神经元接收到的输入为
, 其中
为隐层第h个神经元的输出
对于训练集中的某一个向量组, 通过机器学习得到了它的一组输出结果
, 那么它的均方误差为
。根据已知的结果和机器给予的结果,对参数进行修正,公式类似于上述感知机的训练:
基于梯度下降策略,可以计算得到各个参数的改变量计算公式
输入层到隐层的d*q个权值
:
隐层到输出层的q*l个权值
:
q个隐层神经元的阈值
:
l个输出层神经元的阈值
:
其中,为学习率,
,
为隐层第h个神经元的输出,
为同时兼顾准确性和效率,,
和
,
可以使用不同的学习率。
权重更改时刻:
标准BP算法:权重的更新是在每个训练样本
上计算梯度后立即进行的
累计误差逆传播算法:读取整个训练集
一遍后才对权重进行更新
两种算法的优劣:
累积误差逆传播算法在一批训练样本上进行权重更新,从而加速了训练过程;在每批训练样本中更准确地计算梯度,避免权重更新的过度波动。
但在很多任务中,累积误差下降到一定程度之后,进 一步下降会非常缓慢,这时标准 BP 往往会更快获得较好的解。
过拟合和改正
BP算法具有强大的表示能力。[Hornik et al., 1989] 证明,只需二个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。正是由于其强大的表示能力, BP 神经网络经常遭遇过拟合。
常用两种方式来预防过拟合:
早停:将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值;验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
正则化:在误差目标函数
中增加一个用于描述网络复杂度的部分,如连接权和阈值的平方和。公式变为
,其中
表示连接权和阈值;
通过交叉验证法来估计
全局最小的寻找:算法目标是找到最小时的参数,为跳出局部最小而接近全局最小,常常使用以下方式:以多组不同参数值初始化多个神经网络,取其中误差最小的解为最终参数;使用“模拟退火”技术;使用随机梯度下降;使用遗传算法等方式。