深度学习-常用概念

2018-01-20  本文已影响38人  翁支和
常用概念

(1)神经元

神经元将输入数据经过非线性激活函数(logistic sigmoid 函数)转换后进行输出,一般情况下一个神经元会有几个输入连接和几个输出连接


单个神经元

(2)输入层

有多个输入值组成,每个输入必须是线性无关的

(3)隐藏层

区别于输入和输出层。输入值进入隐藏层经过加权计算与及一组非线性函数(大多数时候非线性)转换后,将这些值输出传递给下一层。


神经网络示意图

(4)批标准化

批标准化(Batch Normalization )简称BN算法,是为了克服神经网络层数加深导致难以训练而诞生的一个算法。根据ICS理论,当训练集的样本数据和目标样本集分布不一致的时候,训练得到的模型无法很好的泛化。而在神经网络中,每一层的输入在经过层内操作之后必然会导致与原来对应的输入信号分布不同,,并且前层神经网络的增加会被后面的神经网络不断的累积放大。这个问题的一个解决思路就是根据训练样本与目标样本的比例对训练样本进行一个矫正,而BN算法(批标准化)则可以用来规范化某些层或者所有层的输入,从而固定每层输入信号的均值与方差。

批标准化一般用在非线性映射(激活函数)之前,对y= Wx + b进行规范化,使结果(输出信号的各个维度)的均值都为0,方差为1,让每一层的输入有一个稳定的分布会有利于网络的训练

在神经网络收敛过慢或者梯度爆炸无法训练的情况下都可以尝试

把数据分成小批小批(规模为m的小批量数据 x1 ... m)进行随机梯度下降的计算。在每批数据进行前向传递的时候, 对每一层都进行标准化处理

(5)损失最小化函数、目标最大化函数

(6)正则化

(7)激活函数

给定一个输入或一组输入,定义该节点的输出。

各种激活函数

  • ReLU
  • Sigmoid / Logistic
  • Binary(二进制)
  • Tanh(正切)
  • Softplus
  • Softmax
  • Maxout
  • Leaky ReLU, PReLU, RReLU, ELU, SELU, and others.

(8)学习率

神经网络通常通过权重梯度下降来训练。这意味着在每次迭代中,我们使用反向传播计算损失函数相对于每个权重的导数,并从该权重中减去损失函数的导数。

但是,如果你真的尝试这样做,权重会在每次迭代中变化太多,这将使他们“过度纠正”,而损失实际上会增加或偏离。所以在实践中,通常会把每个导数乘以一个称为“学习率”的小数值,再对相应的权重做更新。

学习率使用技巧

  • 最简单的方法:保持固定,并使用相同的所有参数。
  • 更好的是允许学习率降低,如:验证误差停止改进时,减少0.5

    由于理论上的收敛保证,O(1 / t)减少,ε0是超参数,τ和t是迭代次数。
    更好的方法:通过使用AdaGrad,无需手动设置学习率

(9)优化- 推荐文章

(10)权重初始化

其他参考文章

深度学习思维导图

上一篇 下一篇

猜你喜欢

热点阅读