位置: IT常识 - 正文

常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU) 附激活函数图像绘制python代码(常用激活函数及其导数)

编辑:rootadmin
常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU) 附激活函数图像绘制python代码

推荐整理分享常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU) 附激活函数图像绘制python代码(常用激活函数及其导数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:常用激活函数及其导数,常用激活函数有哪些,常用激活函数的作用,常用激活函数及其导数,常用激活函数及其导数,常用激活函数有哪些,常用激活函数有哪些,常用激活函数理解与总结,内容如对您有帮助,希望把文章链接给更多的朋友!

激活函数是确定神经网络输出的数学方程式。

激活函数的作用:给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数。

1、附加到网络中的每个神经元,并根据每个神经元的输入来确定是否应激活。

2、有助于将每个神经元的输出标准化到1到0或-1到1的范围内。

常用非线性激活函数对比激活函数公式函数图像适合场景Softmax多分类任务输出层Sigmoid二分类任务输出层,模型隐藏层TanhReLU回归任务,卷积神经网络隐藏层Leaky ReLU

激活函数必须满足:

可微,优化方法是基于梯度。单调,保证单层网络是凸函数。输出值范围,有限则梯度优化更稳定,无限则训练更高效(学习率需要更小)。1、Softmax(也可视作激活函数)

常用且重要的一种归一化函数,其将输入值映射为0-1之间的概率实数,常用于多分类。

公式:

2、Sigmoid

使用范围最广的一种激活函数,具有指数形状。

公式:

优点:

在物理意义上最为接近神经元,输出是(0,1),可以被表示做概率或者用于输入的归一化,平滑的渐变,防止输出值“跳跃”。

缺点:

常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU) 附激活函数图像绘制python代码(常用激活函数及其导数)

饱和性,从图中也不难看出其两侧导数逐渐趋近于0,可能导致梯度消失问题。

偏移现象,输出值均大于0,使得输出不是0的均值,这会导致后一层的神经元将得到上一层非0均值的信号作为输入。

梯度消失:导数值变得接近于0,导致反向传播的梯度也变得非常小,此时网络参数可能不更新。

3、Tanh(双曲正切)

公式:

优点:输出均值为0,使其收敛速度比较快,减少了迭代更新的次数。

缺点:饱和性,容易导致梯度消失。

4、ReLU(Rectified Linear Units)

公式:

优点:缓解sigmoid和tanh的饱和性,当x大于0时不存在饱和性问题,计算效率高,允许网络快速收敛。

缺点:神经元死亡和偏移现象影响网络收敛性。

神经元死亡:随着训练,部分输入会落入硬饱和区(小于0的区域),导致权重无法更新。

5、Leaky ReLU

公式:

优点:通过在小于0部分添加参数α,解决硬饱和问题。

缺点:不稳定,结果不一致,无法为正负输入值提供一致的关系预测(不同区间函数不同)。

图像绘制代码(Python):

import mathfrom matplotlib import pyplot as pltimport numpy as npdef softmax(x): return np.exp(x)/np.sum(np.exp(x), axis=0)def sigmoid(x): return 1. / (1 + np.exp(-x))def tanh(x): return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))def relu(x): return np.where(x < 0, 0, x)def prelu(x): return np.where(x < 0, 0.1 * x, x)'''def sigmoid(x): result = 1 / (1 + math.e ** (-x)) return result'''def plot_softmax(): x = np.linspace(-10, 10, 200) y = softmax(x) plt.plot(x, y, label="softmax", linestyle='-', color='blue') plt.legend() plt.savefig("softmax.png") #plt.show()def plot_sigmoid(): fig = plt.figure() ax = fig.add_subplot(111) x = np.linspace(-10, 10) y = sigmoid(x) ax.spines['top'].set_color('none') ax.spines['right'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data', 0)) ax.set_xticks([-10, -5, 0, 5, 10]) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data', 0)) ax.set_yticks([-1, -0.5, 0.5, 1]) plt.plot(x, y, label="Sigmoid", linestyle='-', color='blue') plt.legend() plt.savefig("sigmoid.png") #plt.show()def plot_tanh(): x = np.arange(-10, 10, 0.1) y = tanh(x) fig = plt.figure() ax = fig.add_subplot(111) ax.spines['top'].set_color('none') ax.spines['right'].set_color('none') ax.spines['left'].set_position(('data', 0)) ax.spines['bottom'].set_position(('data', 0)) ax.plot(x, y, label="tanh", linestyle='-', color='blue') plt.legend() plt.xlim([-10.05, 10.05]) plt.ylim([-1.02, 1.02]) ax.set_yticks([-1.0, -0.5, 0.5, 1.0]) ax.set_xticks([-10, -5, 5, 10]) plt.tight_layout() plt.savefig("tanh.png") #plt.show()def plot_relu(): x = np.arange(-10, 10, 0.1) y = relu(x) fig = plt.figure() ax = fig.add_subplot(111) ax.spines['top'].set_color('none') ax.spines['right'].set_color('none') ax.spines['left'].set_position(('data', 0)) ax.plot(x, y, label="relu", linestyle='-', color='blue') plt.legend() plt.xlim([-10.05, 10.05]) plt.ylim([0, 10.02]) ax.set_yticks([2, 4, 6, 8, 10]) plt.tight_layout() plt.savefig("relu.png") #plt.show()def plot_prelu(): x = np.arange(-10, 10, 0.1) y = prelu(x) fig = plt.figure() ax = fig.add_subplot(111) ax.spines['top'].set_color('none') ax.spines['right'].set_color('none') ax.spines['left'].set_position(('data', 0)) ax.spines['bottom'].set_position(('data', 0)) ax.plot(x, y, label="leaky-relu", linestyle='-', color='blue') plt.legend() plt.xticks([]) plt.yticks([]) plt.tight_layout() plt.savefig("leaky-relu.png") #plt.show()if __name__ == "__main__": plot_softmax() plot_sigmoid() plot_tanh() plot_relu() plot_prelu()
本文链接地址:https://www.jiuchutong.com/zhishi/299865.html 转载请保留说明!

上一篇:MFCC特征提取(mfcc特征提取过程)

下一篇:Day 1 认识软件测试——(软件测试定义、目的、原则)(如何认识软件测试)

  • 收益性支出和资产的区别
  • 一般纳税人提供服务税率
  • 增值税一般纳税人税率
  • 建筑工程企业人才引进可以引进医药行业吗
  • 自查补税申报表
  • 劳务报酬能不能按照计件计算
  • 金融服务费可以谈吗
  • 减免的城建税怎么计算
  • 个人部分社保怎么计算
  • 商贸公司可以做美容行业吗?
  • 应收退货成本会计科目代码
  • 收到公司退货会计分录
  • 如何简单区分坏人和坏人
  • 设备维修增值税
  • 营改增的范围包括
  • 外贸公司的出口清单
  • 免税农产品转出进项税税率
  • 轿车计提折旧
  • 出口退税生产企业增值税附加税怎么申报
  • 个人所得税返还奖励财务人员做账
  • 退回所得税怎么处理
  • 过渡期申报什么意思
  • 年终奖跟13薪有什么区别
  • 无形资产属于什么行业
  • 汇算清缴调增的利润要进未分配吗
  • 收到分红款企业所得税怎么填报
  • 商誉摊销法的优缺点
  • 公司员工餐费会计分录
  • 计税工资和实发工资比例
  • 原料采购入库检测损耗的会计处理怎么做?
  • 作价入股的土地可以摊销无形资产吗
  • 企业注销后注册资金取出需要交税吗
  • 资本公积是什么会计要素
  • 库存现金银行存款用什么凭证
  • sxgdsenu.exe - sxgdsenu是什么进程 有什么用
  • linux桌面设置界面在哪
  • PHP:curl_unescape()的用法_cURL函数
  • 预算会计的特点包括
  • 阐述python中浅复制与深复制
  • 无形资产研发成功后的支出
  • Windows下php+mysql5.7配置教程
  • php页面跳转实现什么功能
  • WGAN(Wasserstein GAN)看这一篇就够啦,WGAN论文解读
  • 编写jsp程序,实现简易计算机
  • php异常处理方法
  • 代扣代缴应付职工薪酬账务处理
  • 刚成立的新公司怎么报税
  • 什么是电子税务局app
  • 企业员工福利包括哪些内容
  • 一次性计提和一次性支付的区别
  • 金蝶固定资产折旧调整
  • 无形资产摊销一经确认不得转回
  • 金税四期注意什么
  • 土增清算可以扣除项目
  • 股息和资本收益
  • 销售费用主要账户包括
  • 企业年金个税怎么计算
  • 高新技术企业政府补助要交所得税吗
  • 企业年度财务报告的保管期限为
  • 金蝶财务软件服务器
  • 代扣代缴个人所得税分录
  • 市盈率为负数是说明什么呢
  • vc6运行程序
  • ubuntu系统怎么进入命令行
  • hdaudpropshortcut.exe是什么进程 作用是什么 hdaudpropshortcut进程查询
  • win10关闭系统服务
  • 实用的linux命令
  • windows7 游戏
  • 你会支持国产系统吗英文
  • Android OpenGL ES 入门
  • 让动画不再僵硬的软件
  • dos内部命令大全
  • js中的filter方法和map方法
  • 怎么创建pom.xml
  • xcopy命令怎么用
  • node.js promise
  • android 加载更多
  • js实现回文
  • 重庆税务总局发票查询
  • 代理业如何缴纳印花税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设