前馈式神经网络

前馈式神经网络形似是多层、多神经元感知机,同样有梯度下降系列算法求解,因有多层、多个神经元,所以每层都有自己的导函数(梯度),“前馈式”的含义即首先解最靠近输出层的层的梯度,最后推到输入层。

神经网络由三个部分构成:1.输入层、2.隐藏层、3.输出层。输入层神经元个数需要与维度数量相同,隐藏层层数和神经元个数可以随意,输出层神经元个数与任务有关,比如多分类单标签任务,神经元个数与类的个数应相同,回归任务,神经元个数只有一个。正是因为前馈式的结构,神经网络在训练过程中易出现梯度消失梯度爆炸(递归神经网络常见)的问题,就是说底层(靠近输出层)的方差相比顶层小或大了很多,这样严重拖慢了训练速度,甚至使得算法根本无法收敛。

隐藏层的神经元包含一个激活函数:比如ELU,输出层也有一个激活函数,上面提到的多分类单标签任务通常用softmax,回归任务不需要激活函数。一般正常的深度网络训练包括以下步骤:

  1. 去“模型动物园”里找与你的任务相机且已经训练好的模型,根据是否找到已有的模型,及模型的质量来判断是否需要迁移学习;
  2. 扩增训练集(方法很多,比如旋转、变换一下图片的对比度);
  3. 归一化输入(归一化输入层的输入);
  4. 选择合适的隐藏层激活函数;
  5. 选择初始化神经元连接权重的方法,与隐藏层激活函数是配套的;
  6. 考虑是否需要“标准化”的方法,这个是针对每一层的输入和输出,这个通常在选择了激活函数和初始化权重之后,决定要不要使用;
  7. 选择梯度下降的方法(解方程的方法,通常称为优化的方法);
  8. 选择正规化的方法;
  9. 选择制定“学习计划”的方法。

迁移学习:

迁移学习就是把已经训练好的模型的权重放到你即将训练的模型中,只改变一下输入层和顶层(可能抛弃一些层或神经元),然后冻结底层(锁住底层的权重),只训练顶层(maybe,这就是他们说深度学习实际上是特征学习的原因???)

扩增训练集:

如果是图像数据,可以考虑旋转、缩放、偏移、翻转、裁剪,改对比度、饱和度、亮度等操作(TF有这些函数)。如果你有一堆已标记和一堆未标记的数据,可以通过半监督学习,如自动编码器、受限波尔兹机对数据进行训练。

隐藏层激活函数:

1.逻辑函数:

2.双曲正切函数:

3.ReLU(修正线性单元):

4.leaky ReLU:

a是超参数,一般设置为0.2。

5.RReLU:与leaky ReLU相似,只是a不是定值,是给定范围内的随机值。

6.PReLU:与leaky ReLU相似,只是a不是超参数了,而是反向传播中能更新(学习)的参数。

7.ELU

初始化权重的方法:

初始化权重的方法是为了尽量让输入和输出的方差保持一致,可以显著提高训练速度。

激活函数

标准正态分布(在(-r,r)之间)

正态分布(均值都为0)

逻辑函数

双曲正切函数

ReLU(及变种)

批量归一化的方法:

如果不使用批量归一化,顶层可能会产生不同尺寸的输入。

优化器选择:

1.Momentum(动量优化):

β 是超参数(摩擦系数),一般为0.9, 是超参数学习速率, 为代价函数 处的导数。

2.Nesterov:

性能优于Momentum,原因是因为矢量指向正确的方向,有助于减少振荡,加快收敛。

3.AdaGrad:

AdaGrad可以沿着最陡尺寸滑向最优解,在输入值维度尺寸相差大的情况下,可以避免 值快速滑入谷底,而使得收敛变慢。 为点乘, 为点除, 为接近0的值,防止

4.RMSProp:

AdaGrad会导致下降太快而没法收敛到最优解,加入超参数β 后,可防止以上问题,通常β=0.9

5.Adam

Adam融合了以上算法的思想,在表现上优于上述四种算法,超参数β1β2 一般设置为0.9和0.999。

学习计划:

学习计划简单来说就是使学习速率超参数 随迭代数变化。

  1. 指数调度:η=a∙10-t/r 其中t为迭代周期数,a、r为超参数。
  2. 功率调度:η=a∙(1+t/r)-c 其中c为超参数,常为1,其余与指数调度相同,表现不如指数调度。

正规化方法:

  1. 提前停止(早期停止法):每隔一个周期保存一次权重,如果训练经过5个周期或者更多周期,代价函数并未降低或是精度并未变高,则终止训练,并使用最优的权重作为最终解。
  2. dropout:每一个训练步骤中,每个神经元都设置一个丢失几率p ,常为0.5,训练结束后,所有神经元都不会被丢弃,但它们的权重应乘以(1-p) ,即乘以该神经元被保持的可能性。如果发现模型过度拟合,应提高p 值,相反则应降低。
  3. 最大范数正规化:该方法没有dropout流行,但依然很实用,即设置超参数r,使得输入每个神经元的权重的L2范数小于等于r,如果大于r,则:

以此更新输入权重。有了该正规化方法就不需要额外添加正规化项了。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人工神经网络(Artificial Neural Network, ANN)是一种模拟人脑神经系统的计算模型,通过模拟神经元之间的相互作用和信息传递,实现对复杂问题的建模和求解。其特点包括: 1. 分布处理:人工神经网络中的信息处理是分布的,不同的神经元之间通过连接进行信息交换和传递。 2. 自适应性:人工神经网络能够通过学习和适应不同的输入和输出,自动调整网络参数和结构,提高网络的性能和准确度。 3. 容错性:人工神经网络对噪声和干扰具有一定的容错性,能够处理一定程度的错误和扰动。 前馈神经网络(Feedforward Neural Network, FNN)是一种最简单、最基础的神经网络结构,信息只能从输入层到输出层单向流动,不会形成环路。它的特点是信息传递是单向的,不具有记忆功能,一般用于分类和回归问题的求解。前馈神经网络在图像识别、语音识别、自然语言处理等领域都有广泛的应用。 反馈神经网络(Recurrent Neural Network, RNN)是一种具有记忆功能的神经网络结构,信息可以在网络中形成环路,从而实现对序列数据的建模和处理。它的特点是信息传递不仅从输入层到输出层,还可以回传到前面的神经元,可以处理具有时间和空间关系的序列数据。反馈神经网络在自然语言处理、语音识别、时间序列分析等领域有广泛的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值