深度学习面试基础--激活函数篇

一、激活函数

激活函数的作用:激活函数对于人工神经网络模型去学习、理解复杂和非线性的函数具有十分重要的作用。可以将非线性特性引入到网络中。如果不用激活函数,每一层的输入都是上一层输出的线性函数,无论神经网络有多少层,输出都是输入的线性组合。

二、不同激活函数的优缺点

1. sigmoid激活函数

sigmoid

公式:在这里插入图片描述
优点:

a: 输出在(0,1)之间,输出的范围有限,优化稳定,可以作为网络的输出层。
b: 是一个连续函数,便于求导

缺点:

a: sigmoid函数在变量取绝对值非常大的时候会出现饱和现象,意味着函数对很平,并且对于输入的微小变化会变得不敏感。
b:在反向传播的是韩国,当梯度接近于0的时候,权重基本不会更新,很容易出现梯度消失的情况,从而无法完成深层网络的训练。
c: sigmoid的输出不是0均值的,对导致后面的神经元的输入是非0均值的信号,这会对梯度产生影响。
d: 导数的复杂度高

2.Tanh

在这里插入图片描述

公式

在这里插入图片描述

优点

a:Tahn函数是0均值的
b: Tanh的变化敏感度较宽,比sigmoid函数延迟了饱和期
c:Tanh在原点附近与y=x函数相接近,当激活值较低的时候,可以直接进行矩阵运算

缺点

仍然存在着梯度饱和和计算量复杂的问题

Relu

在这里插入图片描述

公式

在这里插入图片描述

优点

a: Relu的导数,在大于0的时候,梯度为常数,不会导致梯度消失的问题
b: relu函数在负半区的导数为0,当神经元激活值进入负半区,梯度就会为0,也就说这个神经元不会被训练,即稀疏性。
c: relui函数的导师计算更快,程序实现就是一个if-else语句,而sigmoid函数要进行浮点四则运算,涉及到除法

缺点

a:不是0均值的-
b:会出现神经元坏死的情况,Relu在训练的时候很脆弱。在x<0的时候,梯度永远为0,这个神经元之后的层的梯度也永远为0.导致了数据多样化的丢失。(可以利用)Xavier参数初始化的方法,不要将学习率设置过大或使用adagrad等自动化调节学习率的方法。

Leaky Relu

在这里插入图片描述

公式

在这里插入图片描述

优点:

a:在x<0的时候使用一个类似0.01的小值来初始化神经元,从而是的Relu在负数区更偏向于激活而不是死掉
b:扩大了Relu函数的取值范围。负无穷到正无穷

Silu

在这里插入图片描述

公式

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46343115/article/details/126085642
今日推荐