pytorch新手自学教程(五)

本文深入探讨了PyTorch中的四种主要激活函数:Sigmoid、Tanh、ReLU及LeakyReLU,分析了它们的数学表达式、特性及优缺点,并通过可视化展示了每种函数的图形,帮助读者理解如何选择合适的激活函数。

pytorch新手自学教程(五)--激活函数

包含头文件

import torch
import torch.nn.functional as F

激活函数的作用

激活函数就是一个能将输入映射在一个特定区间的函数,正如前面分类问题中的sigmoid函数一样,它能将输出映射到0-1区间使得我们能按概率处理输出。
作用:没有激活函数的神经网络只能对线性问题作出一个求解,如前面的回归,是对线性的y与x的关系的求解,不管这个公式是多么复杂。而激活函数便可以将线性问题转换为非线性问题,符合我们对大多数现实问题的需求

sigmoid

数学表达式: σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1

Sigmoid 散活函数是将一个实数输入转化至 0 ~ 1之间的输出, 总体来说也就是将越大的负数转化到越靠近0,越大的正数转化到越靠近1。但它有两个缺点:1、 Sigmoid函数会造成梯度消失。(在靠近0 、1的两端时,梯度会几乎变成0)。2、Sigmoid 输出不是以0为均值(范围在0-1)

x = torch.linspace(-5, 5 ,200)
y = torch.sigmoid(x)

x = np.array(x)
y = np.array(y)

plt.plot(x, y)
plt.show()

sigmoid

Tanh

Tanh 激活函数是上面 Sigmoid 激活函数的变形,其数学表达为: tαnh(x) = 2 sigmoid(2x) - 1

它将输入的数据转化到-1 - 1之间,可以通过图像看出它将输出变成了0的均值,在一定程度上解决了 Sigmoid 函数的第二个问题,但是它仍然存在梯度淌夫的问题。因此实际上 Tanh 激活用数总是比 Sigmoid 激活函数更好。

x = torch.linspace(-5, 5 ,200)
y = torch.tanh(x)

x = np.array(x)
y = np.array(y)

plt.plot(x, y)
plt.show()

tanh

ReLU

ReLU 激活函数( Rectified Linear Unit )近几年变得越来越流行,它的数学表达式f(x) = max(0,x) ,换句话说,这个激活函数只是简单地将大于0的部分保留,将小于0的部分变成0,。

优点:
1、相比于 Sigmoid 激活函数和Tanh激活函数,ReLU激活函数能够极大地加速随机梯度下降法的收敛速度,这因为它是线性的,且不存在梯度消失的问题。
2、相比于 Sigmoid 激活民 数和 Tanh 激活函数的复杂计算而言ReLU 的计算方法更加简单.只需要 个阈值过滤就可以得到结果,不需要进行 大堆复杂的运算。

缺点:
训练的时候很脆弱.比如一个很大的梯度经过 RELU激活函数.更新参数之后,会使得这个神经元不会对任何数据有激活现象 ,如果发生这种情况之后,经过 ReLU 的梯度永远都会是0,也就意味着参数无法再更新了,因为 ReLU 激活函数本质上是个不可逆的过程,因为它会直接去掉输入小于0 的部分 在实际操作中可以通过设置比较小的学习率来避免这个小问题。


x = torch.linspace(-5, 5 ,200)
y = F.relu(x)

x = np.array(x)
y = np.array(y)

plt.plot(x, y)
plt.show()

relu

Leaky ReLU

Leaky ReLU 激活雨数是 ReLU 激活函数的变式,主要是为了修复 ReLU 激活函数中训练比较脆弱的这个缺点。不将 x<0 的部分变成 0,而给它一个很小的负的斜率,比如 0.01

x = torch.linspace(-5, 5 ,200)
y = F.leaky_relu(x)

x = np.array(x)
y = np.array(y)

plt.plot(x, y)
plt.ylim(-0.5,2)
plt.show()

Leaky relu

总结

在实际我们使用较多的还是 ReLU 激活雨数,但是需要注意学习 在的设定不要太大了。我们在实际使用中也很少使用混合类型的激活函数,也就是说一般在同 个网络中我们都使用同 种类型的激活函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值