神经网络与深度学习第二周课程总结
2.线性分类与感知机
2.4神经元
由于神经网络的模拟对象是人的大脑,那么在讨论具体的模型之前,我们有必要先从生物学的角度来看看人的大脑有哪些特性。
根据生物学的研究,人脑的计算单元是神经元(neuron)。它能根据环境变化做出反应,再将信息给其他的神经元。在人脑中,大约有860亿个神经元,它们相互联结构成了极其复杂的神经系统,而后者正是人类智慧的物质基础。因此遵循人脑的生物结构,我们首先需要搭建模型来模拟人的神经元。
2.4.1神经元模型
生物神经网络:
生物神经元:
一个典型的神经元由4个部分组成。
树突:一个神经元有若干个树突,它们能接收来自其他神经元的信号,并将信号传递给细胞体。
细胞体:细胞体是神经元的核心,它把各个树突传递过来的信号加总起来,得到一个总的刺激信号。
轴突:当细胞体内的刺激信号超过一定阈值之后,神经元的轴突会对外发送信号。
突触:该神经元发送的信号(若有)将由突触向其他神经元或人体内的其他组织(对神经信号做出反应的组织)传递。需要注意的是,神经元通常有多个突触,但它们传递的信号都是一样的。
生物神经元(Spiking模型):
生物神经元: Integrate-and-fire 模型
人工神经元模型 : M-P
单神经元模型:
将生物神经元模型抽象陈数学概念得到如图单神经元模型,其中x为输入变量,代表神经元的树突。偏置b代表线性模型,对应神经元的细胞体。激活函数为非线性,控制是否对外发送信号,代表轴突。最终各部分联结得到输出箭头,代表突触。
2.4.2作用函数
Sigmoid函数:
也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。
非对称Sigmoid函数:
简称S型作用函数,表达形式如下:
对称型Sigmoid函数:
可微,表达形式如下:
对称型阶跃函数:
即具有阶跃作用函数的神经元,称为阈值逻辑单元,表达形式如下:
2.4.3Hebb规则
Hebb学习规则是一种神经网络连接权值的调整方法,它基于心理学家D.O.Hebb提出的“突触修正”假设。该假设指出当该突触前神经元和后神经元同时兴奋或抑制时,则该突触连接增强;反过来,若同一时刻两者状态相反,则突触连接减弱。
2.5感知机模型
2.5.1感知机原理
感知机是二分类的线性模型,其输入是实例的特征向量,输出的是实例的类别,分别是+1和-1,属于判别模型。
假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集正实例点和负实例点完全正确分开的分离超平面。如果是非线性可分的数据,则最后无法获得超平面
2.5.2感知机模型
感知机输入到输出模型定义为:
由于感知机为判断模型,对于正确分类只有两类样本:
由此可以定义损失函数:
于是我们要找到超平面参数满足:
3.多层前馈网络与误差反传算法
3.1多层感知机
多层感知机相对于单层多了以下特点:
-
引入了隐藏层(hidden layer)的结构,隐藏层通常指代的是,输入层(input layer)和输出层(output layer)中间的具有 N 个神经元的结构。其中层与层之间采用全连接的结构,跨层之前没有相连。
-
引入了新的非线性激活函数。
-
采用了反向传播算法(back propagation)。
多层感知机模型的提出是为了解决线性不可分问题(XOR)
大致原理图如下:
3.2多层前馈网络及BP算法概述
多层前馈网络的反向传播学习算法即为BP算法,基于梯度下降策略,以目标的负梯度方向对参数进行调整。
3.3BP算法
3.3.1BP算法计算步骤
(1)初始化连接权值和阈值为一小的随机值,即W(0)=任意值,θ(0)=任意值。
(2)输入一个样本X。
(3)正向传播,计算实际输出,即根据输入样本值、互联权值和阈值,计算样本的实际输出。
其中输入层的输出等于输入样本值,隐含层和输出层的输入为地球物理勘探概论输出为地球物理勘探概论式中:f为阈值逻辑函数,一般取Sigmoid函数,即地球物理勘探概论式中:θj表示阈值或偏置;θ0的作用是调节Sigmoid函数的形状。
较小的θ0将使Sigmoid函数逼近于阈值逻辑单元的特征,较大的θ0将导致Sigmoid函数变平缓,一般取θ0=1。
(4)计算实际输出与理想输出的误差地球物理勘探概论式中:tpk为理想输出;Opk为实际输出;p为样本号;k为输出节点号。
(5)误差反向传播,修改权值地球物理勘探概论式中:地球物理勘探概论地球物理勘探概论(6)判断收敛。若误差小于给定值,则结束,否则转向步骤(2)。
3.3.2BP算法推导
正式推导:
为了方便书写,我们将采用向量的方式进行推导,输入仍然使用一组数据(X,y),并令x = a [ 0 ] ,则对于一般的神经网络,我们有:
则对于第L层(输出层)有:
对于隐藏层则有公式:
再根据如下公式:
所有值便可计算出来。
误差反传:
在逆向传播的过程中,δ i [ l ] 是沿着神经网络的反方向有规律的进行传播的,以三层为例:
其结构跟前向神经网络结构是保持一致的,只不过前向传播的是信号,后向传播的是误差。
3.4算法扩展
3.4.1神经网络分类
输出层线性:
计算得:
二分类问题:
计算得:
3.4.2权值正则化
给定一些训练数据和一种网络结构,很多组权重值(即很多模型)都可以解释这些数据。简单的模型比复杂模型更不容易过拟合。这些简单模型是指参数分布的熵更小的模型(或参数更少的模型)。因此一种常见的降低过拟合的方法就是强制让模型的权重只能取较小的值,从而限制模型的复杂度,这使得权重值的分布更规则。
这类方法就叫做正则化。
正则项:
计算得:
4.性能优化
4.1动量法
使用梯度下降法,每次都会朝着目标函数下降最快的方向,这也称为最速下降法。这种更新方法看似非常快,实际上存在一些问题。因此便采取动量法来应对这种问题。
4.1.1病态曲率
如图,我们在进入以蓝色标记的山沟状区域之前随机开始。颜色实际上表示损失函数在特定点处的值有多大,红色表示最大值,蓝色表示最小值。我们想要达到最小值点,为此但需要我们穿过山沟。这个区域就是所谓的病态曲率。
4.1.2动量法
原始的病态曲率特性想象为纸团,在重力作用下向下滚动,由于质量小受到山壁弹力的干扰大,导致来回震荡;或者在鞍点处因为质量小速度很快减为 0,导致无法离开这块平地。
而动量法相当于把纸团换成铁球,轨迹稳定,外界干扰小。
公式如下:
4.2自适应梯度算法
4.2.1自适应梯度
概念:
⚫ 参数自适应变化:具有较大偏导的参数相应有一个较大的学习
率,而具有小偏导的参数则对应一个较小的学习率
⚫ 具体来说,每个参数的学习率会缩放各参数反比于其历史梯度平方值总和的平方根
问题:
学习率单调递减,后期训练困难,同时需要设置全局的初始学习率。
4.2.2RMSProp算法
RMSprop的思想是,对于梯度震动较大的项,在下降时,减小其下降速度;对于震动幅度小的项,在下降时,加速其下降速度。
在应用过程中,可以利用该算法来解决AdaGrad 方法中学习率过度衰减的问题。通过使用指数加权平均计算得到Sdw, Sdb,因此可以快速收敛,并使用他们来更新参数:
同时,RMSProp还加入了超参数 𝜌控制衰减速率。
4.2.3Adam算法
Adam在RMSProp的基础上更进一步,不仅加入了历史梯度平方的指数衰减平均(r),还保留了历史梯度的指数衰减平均(s),相当于动量.
Adam 算法的偏差修正令其在梯度变得稀疏时要比 RMSprop 算法更快速和优秀。