深度学习中激活函数和损失函数

本文介绍了深度学习中常用的激活函数,包括Sigmoid、tanh、ReLU及其变种Leaky ReLU、PReLU和RReLU,分析了它们的特点和优缺点。同时,文章还探讨了几种常见的损失函数,如方差损失、绝对值损失、Smooth L1损失和分类问题中的交叉熵损失,解释了它们在回归和分类任务中的应用和影响。
摘要由CSDN通过智能技术生成

深度学习中常用的激活函数和损失函数

对于激活函数跟损失函数做一下记录,后面再看时也方便,可能有些图片搬运的各位大佬的,还请见谅。

激活函数

激活函数有很多,主要记录常用的和比较经典的一些,例如sigmoid、tanh、RELU及其变种。
首先说一下激活函数的作用,一般激活函数作用于神经网络中卷积层的后面,用来引入非线性因素,通过激活函数这种非线性函数来加强神经网络的拟合能力(不再单纯是线性函数了)。

  1. Sigmoid函数
    sigmoid函数是早期神经网络非常常见的一种激活函数,其数学表达式如下:
    Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过 Euler integral

f ( z ) = 1 1 + e − z f(z)=\dfrac{1}{1+e^{-z}} f(z)=1+ez1
函数图像如下:
在这里插入图片描述
sigmoid函数的作用如上图所示,把数据变换成0~1之间的数,过于大的数为1,过于小的数位0 。这个函数在早期的深度学习中使用较多,现在很少使用。原因是sigmoid函数容易在反向传播时造成梯度消失或者爆炸,从他的导数图像就可以看到:
在这里插入图片描述
最大值位0.25,我们在回传时,每经过一层梯度变为以前的0.25倍,很容易造成梯度消失。而且Sigmoid 的 output 不是0均值(即zero-centered),这样会使得下一层的输入会是非零均值的,在反向传播时,梯度就会保持一个方向,参数更新就会缓慢。
2. tanh函数
tanh函数的数学表达式如下:
t a n h ( x ) = e x − e − x e x + e − x tanh(x)= \dfrac{e^{x}-e^{-x}}{e^{x}+e^{-x}} tanh(x)=ex+exexex
函数图像以及导数图像如下:
在这里插入图片描述
从图像可以看到,tanh函数解决了sigmoid函数非零均值的缺点,但是梯度消失依旧存在。
3. Relu函数
Relu函数数学表达式:
y = m a x ( 0 , x ) y=max(0,x) y=max(0,x)
从表达式可以看到,Relu函数十分简单相对于上面两个函数中包含指数操作,Relu函数首先在运算量上就由较大的优势。
Relu函数图像及导数函数图像:
在这里插入图片描述
从图像可以看到,Relu函数在正半轴就是输入本身,负半轴直接为零,这极大的减小了运算量,提高了收敛的速度,并且在正区间内的导数值解决了反向传播时的梯度消失问题。Relu函数最近几年比较常用,我们如果一般使用可以选择。
但是Relu函数依然存在问题,输出非零均值的问题依然存在,并且负半轴直接为零,导致在反传时,负梯度的神经元不能工作,造成神经元不能激活的问题,也叫做 Dead Relu problem.
4. Leaky Relu函数
Leaky Relu 函数主要是为了解决上面提到的Dead Relu problem,将Relu函数中负半轴为零进行修改,数学表示如下:
y =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值