Tensorflow常见激活函数 -- Tensorflow自学笔记10

news2024/12/30 2:50:25

激活函数 激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。引入非线性激活函数,可使深层神经网络的表达能力更加强大。

一. 什么是优秀的激活函数?

优秀的激活函数应满足:

1. 非线性:

    激活函数非线性时,多层神经网络可逼近所有函数


2. 可微性

优化器大多用梯度下降更新参数


3. 单调性

当激活函数是单调的,能保证单层网络的损失函数是凸函数 

4. 近似恒等性

 f(x)约等于x. 当参数初始化为随机小值时,神经网络更稳定

5. 激活函数输出值的范围:
    1) 激活函数输出为有限值时,基于梯度的优化方法更稳定

    2) 激活函数输出为无限值时,建议调小学习率

二. 常见的激活函数

常见的激活函数有

3.1 sigmoid

 

 

TensorFlow API: tf.math.sigmoid

优点:


1. 输出映射在(0,1)之间,单调连续,输出范围有限,优化稳定,可用作输出层;

2. 求导容易。 

缺点:

1. 易造成梯度消失;
2. 输出非0均值,收敛慢;
3. 幂运算复杂,训练时间长。

sigmoid函数可应用在训练过程中。然而,当处理分类问题作出输出时,sigmoid却无能为力。简 单地说,sigmoid函数只能处理两个类,不适用于多分类问题。而softmax可以有效解决这个问题,并 且softmax函数大都运用在神经网路中的最后一层网络中,使得值得区间在(0,1)之间,而不是二分类 的。

3.2 tanh

 

TensorFlow API: tf.math.tanh 

优点:

1. 比sigmoid函数收敛速度更快。
2. 相比sigmoid函数,其输出以0为中心。

缺点


1. 易造成梯度消失;

2. 幂运算复杂,训练时间长。 

3.3 ReLU

 

TensorFlow API: tf.nn.relu  

优点 

1. 解决了梯度消失问题(在正区间);
2. 只需判断输入是否大于0,计算速度快;
3. 收敛速度远快于sigmoid和tanh,因为sigmoid和tanh涉及很多expensive的操作; 

4. 提供了神经网络的稀疏表达能力。

缺点:


1. 输出非0均值,收敛慢;

2. Dead ReLU问题:某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。 

3.4 Leaky ReLU

TensorFlow API: tf.nn.leaky_relu


理论上来讲,Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当

中,并没有完全证明Leaky ReLU总是好于ReLU。

3.5 softmax

TensorFlow API: tf.nn.softmax 

对神经网络全连接层输出进行变换,使其服从概率分布,即每个值都位于[0,1]区间且和为1。

3.6 建议

对初学者的的建议:

1. 首选ReLU激活函数;

2. 学习率设置较小值;

3. 输入特征标准化,即让输入特征满足以0为均值,1为标准差的正态分布;

4. 初始化问题:初始参数中心化,即让随机生成的参数满足以0为均值, 为标准差的正态分布。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

泛微E9 Ecology9-JS应用高级进阶视频教程(重磅)

泛微E9 Ecology9【JS 应用】高级进阶视频教程震撼登场!点击下载 引言: 随着企业数字化转型的深入,掌握泛微E9的高级开发技能已经成为众多IT技术人员和企业信息化从业者不可或缺的竞争优势。而作为泛微E9二次开发中的重要组成部分&#xff0…

AVL 树的旋转

什么是 AVL 树? AVL 树是一种自平衡二叉搜索树(Binary Search Tree, BST),以其发明者 G. M. Adelson-Velsky 和 E. M. Landis 的名字命名。它的特点是对于任意一个节点,其左右子树的高度差(平衡因子&#…

生成树协议(STP:802.1D、RSTP:802.1w、MSTP:802.1s)

在二层网络中,如果没有生成树协议,会带来哪些问题: 1、广播风暴 2、MAC地址表飘移 3、重复数据帧接收 回顾生成树有哪些术语: 1、根桥 为了破除环路,生成树网络首先要选举出一个首脑,头脑,首领。叫做根桥,…

信号有效带宽

根据傅里叶变换可以知道信号带宽是无穷大的,这对实际应用是帮助不大的,所以有了有效带宽的概念,可能大家知道常用的经验公式:O.35/Tr或者0.5/Tr等,那这个公式是怎么来的呢?有效带宽又是什么含义呢&#xff…

C++入门(01)VisualStudio2022社区版HelloWorld

文章目录 1. 下载社区版2. 安装3. 启动4. 创建新项目5. C空项目6. 项目名称和位置7. 创建后,出现“新增功能”,关闭即可8. 解决方案和项目9. 新建源文件10. 编辑第一个C程序11. 运行该程序12. Debug文件夹13. 用好Microsoft Learn 1. 下载社区版 访问&a…

C语言字面量和常量

目录 引言 1. 字面量 1.1 字符字面量 1.2 整型字面量 1.3 浮点字面量 2. 常量 2.1 使用预处理器指令 #define 定义常量 2.1.1 语法格式 2.1.2 使用举例 2.2 使用 const 关键字定义常量 2.3 使用 #define 和 const 定义常量的区别 引言 看了一些博文,有的文…

HarmonyOS(55) error: install releaseType target not same 解决方案

releaseType not same 问题现象解决方法参考资料 问题现象 在DevEco Studio 链接真机运行时发现如下错误: 09/06 08:40:45:905: Install Failed: error: failed to install bundle. code:9568258 error: install releaseType not same. 09/06 08:40:45:966: View …

集成电路学习:什么是SDK软件开发工具包

SDK:软件开发工具包 SDK,即Software Development Kit(软件开发工具包),是一套由软件提供商或其他组织提供的开发工具集合。这些工具旨在帮助开发者更快速、更便捷地创建、测试和部署软件应用程序。以下是对SDK的详细解…

全国计算机二级考试C语言篇3——选择题

C语言部分——C语言概述 1.程序模块化的优点 程序模块化的优点在于它可以使程序的开发、维护和复用变得更简单。下面是一些主要的优点: 降低复杂度:模块化可以将复杂的问题分解成更小的、更易管理的部分。 可维护性:模块化使得代码更易于维护…

前缀列表(ip-prefix)配置

一. 实验简介 本来前缀列表是要和访问控制列表放在一起讲的,但是这里单拎出来是为了更详细的讲解两者的区别 1.前缀列表针对IP比访问控制更加灵活。 2.前缀列表在后面被引用时是无法对数据包进行过滤的 实验拓扑 二. 实验目的 R4路由器中只引入子网LoopBack的…

DFS算法专题(一)——二叉树中的深搜【回溯与剪枝的初步注入】

目录 1、DFS算法简介 2、算法实战应用【leetcode】 2.1 计算布尔二叉树的值 2.1.1 算法原理 2.1.2 算法代码 2.2 求根节点到叶节点数字之和 2.2.1 算法原理 ​2.2.2 算法代码 2.3 二叉树剪枝 2.3.1 算法原理 2.3.2 算法代码 2.4 验证二叉搜索树 2.4.1 算法原理 …

紫微斗数算法的实现流程

题外话 我想了又想大凡能够修炼成绝世高手的都是“魔鬼”。只有魔鬼才会纯粹的“敢贪,敢嗔,敢痴”。 你我都困在了敢字。程序猿拿起拿锋利的刀,解构世间的一切吧!最近看西游有感而发。 “联系是普遍存在的,规律是客观…

我开源了我的新闻网站项目

🎉 前言 暑假时写了一个Web项目,感觉做的还是有模有样的,不仅做了前端,还加了后端并连了数据库。最近也是将它开源了,一来是为了熟悉一下Github流程和Git使用命令,二来也是想和大家分享一下自己的成果&…

[阅读笔记]《解读基金—我的投资观与实践》— 季凯帆

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…

java环境变量怎么调

java 环境变量配置是设置系统查找和使用 java 工具的路径。通过以下步骤配置:安装 java jdk。设置 path 变量,添加 java 可执行文件目录路径。设置 java_home 变量,指定 jdk 安装目录路径。验证配置,运行 "java -version&quo…

io本质+io效率本质,5种io模型(介绍,异步/同步区别,阻塞/非阻塞区别)

目录 5种io模型 io引入 io的本质 io效率的本质 模型引入 以钓鱼为例 效率最高的方式 异步io和同步io的区别 阻塞式和非阻塞式io的区别 介绍 阻塞式io ​编辑 非阻塞式io ​编辑 信号驱动式io ​编辑 多路转接/复用 ​编辑 异步io 5种io模型 io引入 io的本质…

【鸿蒙HarmonyOS NEXT】页面和自定义组件生命周期

【鸿蒙HarmonyOS NEXT】页面和自定义组件生命周期 一、环境说明二、页面和自定义组件生命周期三、示例代码加以说明四、小结 一、环境说明 DevEco Studio 版本: API版本:以12为主 二、页面和自定义组件生命周期 需要明确几个概念: 页面…

0to1使用Redis实现“登录验证”次数限制

1 引言 系统为了避免密码遭到暴力破解,通常情况下需要在登录时,限制用户验证账号密码的次数,当达到一定的验证次数后,在一段时间内锁定该账号,不再验证。本章将用几行代码实现该功能,完整代码链接在文章最…

Markdown全兼容,MarkText打造专业文档新体验

前言 在科技的洪流中,我们不仅是见证者,更是创造者。它赋予我们力量,将遥不可及的梦想拉近至指尖,让生活的每一刻都充满无限可能。随着数字化内容的爆炸性增长,Markdown作为一种轻量级标记语言,凭借其简洁…

tekton构建标准ci(clone repo, test, build push img)

场景介绍 我们在上一篇文章中构建了一个最简单的ci,接下来我们对我们的github的项目构建一个较标准的ci。 Tekton简介,安装和构建最简单ci/cd-CSDN博客文章浏览阅读239次,点赞2次,收藏2次。本文介绍了tekton是什么,如…