CNN 基本部件-常用激活函数

简介: CNN 基本部件-常用激活函数

我们在项目中可能实际上就常用relu作为卷积层和全连接层的激活函数,但是,其他激活函数的特性和relu激活函数的问题及优点在哪也是我们需要知道的。本文为学习笔记,主要参考魏秀参的《CNN卷积神经网络》这本书和网上部分资料,加以自己理解,然后写的文章。

背景知识

反向传播算法

一文搞懂反向传播

梯度消失与梯度爆炸

左边是生物神经元,右边是数学模型。

网络异常,图片无法展示
|


激活函数的作用

激活函数实现去线性化。神经元的结构的输出为所有输入的加权和,这导致神经网络是一个线性模型。如果将每一个神经元(也就是神经网络的节点)的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了,这个非线性函数就是激活函数。 常见的激活函数有:ReLU函数、sigmoid函数、tanh函数

七种常用激活函数

神经网络中常用的激活函数有七种:Sigmoid 型函数、 tanh(x) 型函数、修正线性单元(ReLU)、Leaky ReLu、参数化 ReLU、随机化 ReLU 和指数化线性单元(ELU)。

Sigmoid型函数

Sigmoid型函数也称Logistic函数:σ(x)=11+exp(−x)\sigma (x) = \frac{1}{1+exp(-x)}σ(x)=1+exp(x)1。函数形状和函数梯度图,如下图所示:

网络异常,图片无法展示
|


从上图可以看出,经过sigmoid型函数作用后,输出响应的值被压缩到 [0,1] 之间,而 0 对应了生物神经元的“抑制状态”,1 则恰好对应了“兴奋状态”。但对于Sigmoid 梯度函数两端大于 5(或小于 −5)的区域,这部分输出会被压缩到 1(或 0)。这样的处理会带来梯度的“饱和效应”(saturation effect),也就是梯度消失现象。所谓梯度消失现象,可以对照 Sigmoid型函数的梯度图观察,会发现大于 5(或小于 −5)部分的梯度接近 0,这会导致在误差反向传播过程中导数处于该区域的误差很难甚至无法传递至前层,进而导致整个网络无法正常训练。 另外,还有一个问题是,Sigmoid型函数值域的均值并非为 0 而是全为正,这样的结果实际上并不符合我们对神经网络内权重参数数值的期望(均值)应为0的设想。

tanh(x)型函数

tanh(x)型函数是在 Sigmoid 型函数基础上为解决均值问题提出的激活函数:

tanh(x)=2σ(2x)−1tanh(x) = 2\sigma(2x)-1tanh(x)=2σ(2x)1

函数形状如下图所示:

网络异常,图片无法展示
|


tanh 型函数又称作 双曲正切函数(hyperbolic tangent function),其函数范围是 (−1, +1),输出响应的均值为 y。但由于 tanh(x) 型函数仍基于Sigmoid型函数,使用 tanh(x) 型函数依然会发生 “梯度消失” 现象。

修正线性单元(ReLU)

ReLU是 Nair 和 Hinton 于 2010 年引入神经网络的,是截止目前为止深度卷积神经网络中最为常用的激活函数之一,其定义如下:

网络异常,图片无法展示
|


函数及函数梯度形状如下图所示:

网络异常,图片无法展示
|


与前两个激活函数相比:

  • ReLU 函数的梯度在x >= 0 时为 1,反之则为 0;对 x >= 0 部分完全消除了sigmoid型函数的梯度消失现象。
  • 计算复杂度上,ReLU 函数也相对前两者更简单。
  • 同时,实验中还发现 ReLU 函数有助于随机梯度下降方法收敛,收敛速度约快 6 倍左右。

但是,ReLU函数也有自身缺陷,即在 x < 0 时,梯度便为 0。换句话说,对于小于 0 的这部分卷积结果响应,它们一旦变为负值将再无法影响网络训练——这种现象被称作“死区"

Leaky ReLU

为缓解死区现象,研究者将 ReLU 函数中 x < 0 的部分调整为 f(x)=α⋅xf(x) = \alpha\cdot xf(x)=αx,其中 α\alphaα 为 0.01 或 0.001 数量级的较小正数,称其为 "Leaky ReLU":

x & if x>=0 \\ \alpha\cdot x & if x < 0 \end{matrix}\right.

可以发现原始 ReLU 函数实际上是 Leaky ReLU 函数的一个特例,即α=0\alpha=0α=0,但是实际项目中发现,由于 Leaky ReLU 中 α\alphaα 为超参数,合适的值较难设定且很敏感,所以 Leaky ReLU函数在实际使用中性能并不十分稳定

参数化 ReLU

参数化 ReLU 直接将 α\alphaα 也作为一个网络中可以学习的变量融入模型的整体训练过程。具体怎么做,可参考相关文献。万事具有两面性,参数化 ReLU 在带来更大自由度的同时,也增加了网络模型过拟合的风险,在实际使用中需要格外注意。

网络异常,图片无法展示
|


总结

  • 建议首先使用目前最常用的  ReLU 激活函数,但需注意模型参数初始化和学习率的设置;
  • 为了进一步提高模型精度,可尝试 Leaky ReLU、参数化 ReLU、随机化 ReLU 和 ELU。但四者之间实际性能优劣并无一致性结论,需具体问题具体对待

参考资料

  • 《魏秀参-CNN解析神经网络》


相关文章
|
1月前
|
机器学习/深度学习 存储 自然语言处理
一文带你了解【深度学习】中CNN、RNN、LSTM、DBN等神经网络(图文解释 包括各种激活函数)
一文带你了解【深度学习】中CNN、RNN、LSTM、DBN等神经网络(图文解释 包括各种激活函数)
151 0
|
机器学习/深度学习
深度学习入门基础CNN系列——池化(Pooling)和Sigmoid、ReLU激活函数
池化是使用某一位置的相邻输出的总体统计特征代替网络在该位置的输出,其好处是当输入数据做出少量平移时,经过池化函数后的大多数输出还能保持不变。比如:当识别一张图像是否是人脸时,我们需要知道人脸左边有一只眼睛,右边也有一只眼睛,而不需要知道眼睛的精确位置,这时候通过池化某一片区域的像素点来得到总体统计特征会显得很有用。由于池化之后特征图会变得更小,如果后面连接的是全连接层,能有效的减小神经元的个数,节省存储空间并提高计算效率。
361 1
深度学习入门基础CNN系列——池化(Pooling)和Sigmoid、ReLU激活函数
|
机器学习/深度学习 异构计算
AlexNet相比传统的CNN(比如LeNet)有哪些重要改动呢:Data Augmentation,Dropout,(3) ReLU激活函数
AlexNet相比传统的CNN(比如LeNet)有哪些重要改动呢:Data Augmentation,Dropout,(3) ReLU激活函数
192 0
AlexNet相比传统的CNN(比如LeNet)有哪些重要改动呢:Data Augmentation,Dropout,(3) ReLU激活函数
|
11天前
|
机器学习/深度学习
【从零开始学习深度学习】23. CNN中的多通道输入及多通道输出计算方式及1X1卷积层介绍
【从零开始学习深度学习】23. CNN中的多通道输入及多通道输出计算方式及1X1卷积层介绍
【从零开始学习深度学习】23. CNN中的多通道输入及多通道输出计算方式及1X1卷积层介绍
|
10天前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络(CNN)的工作原理深度解析
【6月更文挑战第14天】本文深度解析卷积神经网络(CNN)的工作原理。CNN由输入层、卷积层、激活函数、池化层、全连接层和输出层构成。卷积层通过滤波器提取特征,激活函数增加非线性,池化层降低维度。全连接层整合特征,输出层根据任务产生预测。CNN通过特征提取、整合、反向传播和优化进行学习。尽管存在计算量大、参数多等问题,但随着技术发展,CNN在计算机视觉领域的潜力将持续增长。
|
11天前
|
机器学习/深度学习 Shell
【从零开始学习深度学习】22. 卷积神经网络(CNN)中填充(padding)与步幅(stride)详解,填充、步幅、输入及输出之间的关系
【从零开始学习深度学习】22. 卷积神经网络(CNN)中填充(padding)与步幅(stride)详解,填充、步幅、输入及输出之间的关系
|
11天前
|
机器学习/深度学习
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
|
18天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,带GUI界面,对比BP,RBF,LSTM
这是一个基于MATLAB2022A的金融数据预测仿真项目,采用GUI界面,比较了CNN、BP、RBF和LSTM四种模型。CNN和LSTM作为深度学习技术,擅长序列数据预测,其中LSTM能有效处理长序列。BP网络通过多层非线性变换处理非线性关系,而RBF网络利用径向基函数进行函数拟合和分类。项目展示了不同模型在金融预测领域的应用和优势。
|
1月前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
59 1
卷积神经网络(CNN)的数学原理解析
|
4天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深入浅出:理解和实现深度学习中的卷积神经网络(CNN)
在当今的数据驱动世界,深度学习已经成为许多领域的关键技术。本文将深入探讨卷积神经网络(CNN)的原理、结构和应用,旨在帮助读者全面理解这项强大的技术,并提供实际的实现技巧。
20 0

热门文章

最新文章