IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 神经网络的激活函数 -> 正文阅读

[人工智能]神经网络的激活函数

本文讲解了神经网络中常见的几种激活函数及它们的特点。

我们先来看一下几种常见的激活函数的映射图像:
在这里插入图片描述

1 sigmoid

在这里插入图片描述
sigmoid函数输出的取值范围是 [0,1],因此可以将任意区间的值缩放至 [0,1] 范围。

缺点:
在深度神经网络中梯度反向传递时存在梯度爆炸和梯度消失,其发生梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大,下图是其梯度:
在这里插入图片描述
Sigmoid导数取值范围是 [0, 0.25],由于神经网络反向传播时的“链式反应”,很容易就会出现梯度消失的情况。例如对于一个10层的网络, 根据 0.2 5 10 ≈ 0.000000954 0.25^{10} \approx 0.000000954 0.25100.000000954 ,第10层的误差相对第一层卷积的参数 W 1 W_1 W1? 的梯度将是一个非常小的值,这就是所谓的“梯度消失”。所以在深层网络中,要谨慎使用sigmoid激活函数,建议使用sigmoid的网络层数不要超过2~3层
此外,Sigmoid的输出不是0均值(即zero-centered);这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入,随着网络的加深,会改变数据的原始分布
最重要的是,这种激活函数运算量较大,会降低训练时间。

2 tanh

在这里插入图片描述
也可以写成这样:
在这里插入图片描述
其图像和其导数图像如下图:
在这里插入图片描述tanh它解决了Sigmoid函数的不是zero-centered输出问题(输出均值不为0的问题),然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。

3 Relu

r e l u ( x ) = m a x ( 0 , x ) relu(x)=max(0, x) relu(x)=max(0,x)

看看它和它导数的图像:
在这里插入图片描述
优点:
1) 解决了梯度消失问题 (在正区间)
2)计算速度非常快,只需要判断输入是否大于0
3)收敛速度远快于sigmoid和tanh。
但是其也有缺点:
1)ReLU的输出不是zero-centered
2)Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生: (1) 非常不幸的参数初始化,这种情况比较少见 (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。

我们来分析一下它的导数特点
ReLU在x>0下,导数为常数1的特点:
导数为常数1的好处就是在“链式反应”中不会出现梯度消失,但梯度下降的强度就完全取决于权值的乘积,这样就可能会出现梯度爆炸问题。解决这类问题:一是控制权值,让它们在(0,1)范围内;二是做梯度裁剪,控制梯度下降强度,如ReLU(x)=min(6, max(0,x))

ReLU在x<0下,输出置为0的特点:
描述该特征前,需要明确深度学习的目标:深度学习是根据大批量样本数据,从错综复杂的数据关系中,找到关键信息(关键特征)。换句话说,就是把密集矩阵转化为稀疏矩阵,保留数据的关键信息,去除噪音,这样的模型就有了鲁棒性。ReLU将x<0的输出置为0,就是一个去噪音,稀疏矩阵的过程。而且在训练过程中,这种稀疏性是动态调节的,网络会自动调整稀疏比例,保证矩阵有最优的有效特征。
针对某个神经单元,若其输出小于0,则其梯度就等于0,从此成为一个 “dead activation”,即该神经元输出永远小于0了。所以该激活函数的最原本的输入应该大于0,不然会丢失很多有效特征

4 Leaky ReLU, PReLU, RReLU

为了防止神经元 “dead” 的情况,后人将x<0部分并没有直接置为0,而是给了一个很小的负数梯度值 α \alpha α

4.1 Leaky ReLU

在这里插入图片描述

Leaky ReLU中的 α \alpha α 为常数,一般设置 0.01。这个函数通常比 Relu 激活函数效果要好,但是效果不是很稳定,所以在实际中 Leaky ReLu 使用的并不多。

在这里插入图片描述

4.2PRelu

PRelu(参数化修正线性单元) 中的 α \alpha α 作为一个可学习的参数,会在训练的过程中进行更新。

4.3 RReLU

RReLU(随机纠正线性单元)也是Leaky ReLU的一个变体。在RReLU中,负值的斜率在训练中是随机的,在之后的测试中就变成了固定的了。RReLU的亮点在于,在训练环节中,aji是从一个均匀的分布U(I,u)中随机抽取的数值。

参考:
https://blog.csdn.net/tyhj_sf/article/details/79932893
https://zhuanlan.zhihu.com/p/73214810

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:10:08  更:2021-09-26 10:11:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:48:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码