CNN

CNN经典三级结构:

输入层-->卷积层-->激活函数-->池化层-->输出

CNN特点:

  • 局部连接(卷积层)

与传统神经网络的全连接相比,卷积层的每个神经元与输入数据的一个局部(感受野)相连。当卷积核的大小与输入层的大小一致时,与全连接类似。

感受野的计算:RF(i + 1) = (RF(i) - 1) * stride(i) + Ksize; RF(1) = Ksize;

  • 参数共享(卷积层)

把局部连接(感受野)中的每一个卷积核中对应的权值进行共享,大减少网络训练参数的同时,还可以实现并行训练。

  • 局部平移不变性(参数共享和池化)

局部平移不变性是一个很有用的性质,尤其当我们关注某个特征是否出现而不关心它出现的具体位置时。但当一项任务依赖于保存精确的空间信息,那么在所有的特征上使用池化将会增大误差。

池化:

池化本质上是一种通过统计特征代替原始特征向量的数学变换,是一种非线性变换,池化函数和卷积核一样,也有一个感知野,在感知野内,池化函数使用某一位置的相邻输出的总体统计特征来代替网络在该位置的输出。

池化作用

  • 提高卷积神经网络的局部平移不变性
  • 减少网络参数个数的同时保留输入层的整体结构信息
  • 解决输入层数据尺寸不一致的问题,通过动态调整池化区域的大小来调整数据尺寸。

激活函数:

引入非线性因素,增加模型的复杂度和表达能力

激活函数需要具备三个特性:

  • 非线性
  • 可微性
  • 单调性(保证单层网络是函数)
  • 易于计算

常见的激活函数:

e^x记为a, e^(-x)记为b

  • sigmoid = 1/(1 + a)

值域为(0,1),开区间,当x>0时,函数值趋于1,当x<0时,函数值趋于0

优点:

  1. 平滑
  2. 易于求导
  3. 可以作为概率,辅助模型解释

缺点:

  1. 当输入数据很大或很小时,函数梯度接近0,对反向传播不利
  2. 函数值均大于0,训练时只会出现全正或的全负的反馈
  3. 导数值均小于1,反向传播时容易出现梯度消失

  • Tanh = (a - b) / (a + b)

值域为(-1, 1),开区间,当x>0时,函数值趋于1,当x<0时,函数值趋于-1

实际上时sigmoid函数的缩放形式,tanh = 2 * sigmoid - 1

优点:

  1. 平滑
  2. 易于求导
  3. 把输入数据映射到(-1, 1),解决了sigmoid函数值均值不为0的问题,在实践中常常比sigmoid函数更容易收敛

缺点:

  1. 当输入数据很大或很小时,函数梯度接近0,对反向传播不利
  2. 导数值均小于1,反向传播时容易出现梯度消失

  • Relu = max(0, x)

值域为[0, 正无穷)

优点:

  1. 计算简单, 具有稀疏性,可以更快的提取稀疏特征
  2. 易于求导,并且当x>0时,梯度为常数1,不衰减,不易产生梯度消失现象

缺点:

  1. 没有负值反馈
  2. 训练中可能会导致某些神经元永远无法更新

  • Elu

x<0 Elu = y(a + 1) (y为超参); x>=0 Elu = x

优点:

  1. 对Relu进行改进,能避免Relu中一些神经元无法更新的现象
  2. 相对于Relu来说,可以得到负值输出,从而帮助网络向正确的方向更新参数

缺点:

  1. 包含指数运算,计算时间比Relu长
  2. y为超参,网络无法自行学习

  • softmax

是一个网络预测多分类问题的最佳激活函数。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务