基于Pytorch的深度学习激励函数总结

1 激励函数定义

神经网络中的每个节点接受输入值,并将输入值传递给下一层,输入节点会将输入属性值直接传递给下一层(隐层或输出层)。在神经网络中,隐层和输出层节点的输入和输出之间具有函数关系,这个函数称为激励函数,部分文献也把它叫做激活函数。常见的激励函数有:线性激励函数、阈值或阶跃激励函数、S形激励函数、双曲正切激励函数和高斯激励函数等[1]。

2 常见激励函数

2.1 Threshold函数

2.1.1 数学定义

y = T h r e s h o l d ( x ) = { x ,  if  x > threshold value ,  otherwise  y =Threshold(x)= \begin{cases} x, &\text{ if } x > \text{threshold} \\ \text{value}, &\text{ otherwise } \end{cases} y=Threshold(x)={x,value, if x>threshold otherwise 

2.1.2 常见性质

2.1.3 Pytorch实现

import 包

import torch
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt
%matplotlib inline

生成数据

x = torch.linspace(-10, 10, 300)  # x data (tensor), shape=(200, 1)
x = Variable(x)
x_np = x.data.numpy()   # numpy array for plotting

pytorch中的threshold函数

actifunc = torch.nn.Threshold(threshold = 0.1,value = 0)
y_threshold = actifunc(x).data.numpy()
plt.plot(x_np, y_threshold, c='red', label='threshold')
plt.legend(loc='best')

pytorch实现threshold

2.2 Tanh函数

2.2.1 数学定义

y = Tanh ( x ) = tanh ⁡ ( x ) = exp ⁡ ( x ) − exp ⁡ ( − x ) exp ⁡ ( x ) + exp ⁡ ( − x ) y=\text{Tanh}(x) = \tanh(x) = \frac{\exp(x) - \exp(-x)}{\exp(x) + \exp(-x)} y=Tanh(x)=tanh(x)=exp(x)+exp(x)exp(x)exp(x)

2.2.2 常见性质

2.2.3 Pytorch实现

pytorch中的tanh函数

actifunc = torch.nn.Tanh()
y_tanh = actifunc(x).data.numpy()
plt.plot(x_np, y_tanh, c='red', label='tanh')
plt.legend(loc='best')

pytorch实现tanh

2.3 Sigmoid函数

2.3.1 数学定义

y = Sigmoid ( x ) = 1 1 + exp ⁡ ( − x ) y=\text{Sigmoid}(x) = \frac{1}{1 + \exp(-x)} y=Sigmoid(x)=1+exp(x)1

2.3.2 常见性质

2.3.3 Pytorch实现

pytorch中的sigmoid函数

actifunc = torch.nn.Sigmoid()
y_sigmoid = actifunc(x).data.numpy()
plt.plot(x_np, y_sigmoid, c='red', label='sigmoid')
plt.legend(loc='best')

pytorch实现sigmoid

2.4 ReLU函数

2.4.1 数学定义

y = R e L U ( x ) = { x ,  if  x > 0 0 ,  otherwise  y =ReLU(x)= \begin{cases} x, &\text{ if } x > \text{0} \\ \text{0}, &\text{ otherwise } \end{cases} y=ReLU(x)={x,0, if x>0 otherwise 

2.4.2 常见性质

2.4.3 Pytorch实现

actifunc = torch.nn.ReLU()
y_relu = actifunc(x).data.numpy()
plt.plot(x_np, y_relu, c='red', label='ReLU')
plt.legend(loc='best')

pytorch实现ReLU

2.5 Softsign函数

未完待续

2.6 ELU函数

未完待续

【作者简介】陈艺荣,男,目前在华南理工大学-广东省人体数据科学中心攻读博士。曾获2次华南理工大学三好学生、华南理工大学“优秀共青团员”、新玛德一等奖学金(3000元,综测第3)、华为奖学金(5000元,综测第3)、汇顶科技特等奖学金(15000元,综测第1),两次获得美国大学生数学建模竞赛(MCM)一等奖,获得2016年全国大学生数学建模竞赛(广东赛区)二等奖、2017年全国大学生数学建模竞赛(广东赛区)一等奖、2018年广东省大学生电子设计竞赛一等奖等科技竞赛奖项,目前主持一项2017-2019年国家级大学生创新训练项目,参与两项广东大学生科技创新培育专项资金、一项2018-2019年国家级大学生创新训练项目、3项华南理工大学“百步梯攀登计划”项目,发表SCI论文3篇,投稿SCI论文1篇,授权实用新型专利5项,在受理专利17项(其中发明专利13项,11项进入实质审查阶段)。
我的Github
我的CSDN博客
我的Linkedin

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YirongChen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值