【深度学习_TensorFlow】激活函数
写在前面
上篇文章我们了解到感知机使用的阶跃函数和符号函数,它们都是非连续,导数为0的函数:

建议回顾上篇文章,本篇文章将介绍神经网络中的常见激活函数,这些函数都是平滑可导的,适合于梯度下降算法。
写在中间
激活函数是做什么的?
激活函数(Activation Function)是神经网络中的一个重要组成部分,主要用于将神经元的输入信息进行非线性变换,从而引入非线性特性。
为什么要使用激活函数?
如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是线性组合,这种情况就是最原始的感知机。将来归纳出的方程就如图a所示,要实现图b的效果就只能将线性模型嵌套非线性函数转换为非线性函数。

我们把这个非线性函数称为激活函数(Activation Function),用𝜎表示:
o = σ ( W x + b ) o=\sigma{(Wx + b)} o=σ(Wx+b)
这里的𝜎代表了某个具体的非线性激活函数,如 Sigmoid 函数、ReLU 函数

表达能力
模型的表达能力偏弱,就可以通过堆叠多次变换来增加其表达能力
把第一层神经元的输出值 h 1 h_1 h1作为第二层神经元模型的输入,把第二层神经元的输出 h 2 h_2 h2作为第三层神经元的输入,最后一层神经元的输出作为模型的输出,使用ReLU激活函数举例
h 1 = R e L U ( W x 1 + b 1 ) h_1=ReLU(Wx_1 + b_1) h1=ReLU(Wx1+b1)
h 2 = R e L U ( W 2 h 1 + b 2 ) h_2 = ReLU(W_2h_1 + b_2) h2=ReLU(W2h1+b2)
o = W 3 h 2 + b 3 o = W_3h_2 + b_3 o=W3h2+b3
激活函数介绍
一、Sigmoid
( 1 )简单介绍
此函数的定义如下
S i g m o i d ( x ) ≜ 1 1 + e − x \mathrm{Sigmoid}(x)\triangleq\frac1{1+\mathrm{e}^{-x}} Sigmoid(x)≜1+e−x1

在深度学习中的优点如下:
-
它的值域为(0, 1),能够把𝑥 ∈ 𝑅的输入“压缩”到𝑥 ∈ (0,1)区间,和概率的分布范围[0,1]契合,可以通过 Sigmoid 函数将输出转译为概率输出
-
Sigmoid 函数连续可导,可以直接利用梯度下降算法优化网络参数
( 2 )简单实现
如何在TensorFlow中使用这个函数呢,其实一行代码就可以搞定了
tf.nn.sigmoid(x) # 通过 Sigmoid 函数
二、ReLU
( 1 )简单介绍
在 ReLU激活函数提出之前,Sigmoid 函数通常是神经网络的激活函数首选。但是 Sigmoid 函数在输入值较大或较小时容易出现梯度值接近于 0 的现象,网络参数长时间得不到更新,导致训练不收敛或停滞不动的现象发生。
此函数的定义如下:
ReLU ( x ) ≜ max ( 0 , x ) \operatorname{ReLU}(x)\triangleq\max(0,x) ReLU(x)≜max(0,x)

可以看到,ReLU 对小于 0 的值全部抑制为 0;对于正数则直接输出
( 2 )函数实现
函数的调用同样简单
tf.nn.relu(x)
三、LeakyReLU
( 1 )简单介绍
ReLU 函数在𝑥 < 0时导数值恒为 0,也可能会造成梯度弥散现象,为了克服这个问题,LeakyReLU 函数被提出,此函数的定义为:
LeakyReLU ≜ { x x ≥ 0 p x x < 0 \text{LeakyReLU}\triangleq\left\{\begin{matrix}x&x\geq0\\px&x<0\end{matrix}\right. LeakyReLU≜{xpxx≥0x<0

其中𝑝为用户自行设置的某较小数值的超参数,如 0.02 等。当𝑝 = 0时,LeayReLU 函数退化为ReLU 函数;当𝑝 ≠ 0时,𝑥 < 0处能够获得较小的导数值𝑝,从而避免出现梯度弥散现象。
( 2 )函数实现
tf.nn.leaky_relu(x, alpha=0.02)
四、Tanh
( 1 )简单介绍
Tanh 函数能够将𝑥 ∈ 𝑅的输入“压缩”到(−1,1)区间,其函数的定义为
tanh ( x ) = ( e x − e − x ) ( e x + e − x ) = 2 ⋅ s i g m o i d ( 2 x ) − 1 \begin{aligned}\tanh(x)&=\frac{(\mathrm{e}^x-\mathrm{e}^{-x})}{(\mathrm{e}^x+\mathrm{e}^{-x})}=2\cdot\mathrm{sigmoid}(2x)-1\end{aligned} tanh(x)=(ex+e−x)(ex−e−x)=2⋅sigmoid(2x)−1

( 2 )代码实现
tf.nn.tanh(x)
激活函数输出范围
了解了上面的函数之后,不知你是否有这样的疑问,这么多种函数,在进行网络构建的时候究竟如何选择?
其实这其中还是有些门道的,主要根据数据的范围和构建网络的目的来选择,具体情况还要结合实际问题试验:
例如:
-
输出区间为[0, 1],在网络模型主要进行二分类(猫狗识别分类)、图片生成(像素归一化),就可以使用类似Sigmoid()一类的函数。
-
输出区间为[0, 1],且所有数据的概率和为1,网络模型主要进行多分类问题(mnist手写数字识别),就可以使用类似Softmax()一类的函数。
-
输出区间为[-1, 1],就可以使用Tanh() 函数。
-
输出区间在某个段内,网络模型进行年龄预测、股票走势的预测,更倾向于回归问题,ReLU函数可能效果较好。
写在最后
👍🏻点赞,你的认可是我创作的动力!
⭐收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!
相关文章:
【深度学习_TensorFlow】激活函数
写在前面 上篇文章我们了解到感知机使用的阶跃函数和符号函数,它们都是非连续,导数为0的函数: 建议回顾上篇文章,本篇文章将介绍神经网络中的常见激活函数,这些函数都是平滑可导的,适合于梯度下降算法。 写…...
机器学习笔记之优化算法(七)线搜索方法(步长角度;非精确搜索;Wolfe Condition)
机器学习笔记之优化算法——线搜索方法[步长角度,非精确搜索,Wolfe Condition] 引言回顾: Armijo \text{Armijo} Armijo准则及其弊端 Glodstein \text{Glodstein} Glodstein准则及其弊端 Wolfe Condition \text{Wolfe Condition} Wolfe Condi…...
十四.redis哨兵模式
redis哨兵模式 1.概述2.测试3.哨兵模式优缺点 redis哨兵模式基础是主从复制 1.概述 主从切换的技术方法:当主节点服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费时费力,还会造成一段时间内服…...
采用UWB技术开发的智慧工厂人员定位系统源码【UWB定位基站、卡牌】
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。UWB定位系统依托在移动通信,雷达,微波电路,云计算与大数据…...
当你软件测试遇上加密接口,是不是就不能测了?
相信大家在工作中做接口测试的时候,肯定会遇到一个场景,那就是你们的软件,密码是加密存储的。 那么这样的话,我们在执行接口的时候,对于密码的处理就开始头疼了。 所以,本文将使用jmeter这款java开源的接…...
Flink
Flink(Apache Flink)是一个开源的分布式流处理引擎和批处理框架。它是由 Apache 软件基金会维护的项目,旨在处理大规模数据的实时流式处理和批处理任务。Flink 提供了强大的流处理和批处理功能,具有低延迟、高吞吐量和高容错性&am…...
python入门常用操作
python常用操作 1、ndarry数组的切片2、print用法2.1格式化输出format2.2字符串格式化输出 3、均值滤波函数 1、ndarry数组的切片 例如一个5列的ndarry数组,想要获取第2列和第3列数据,可以用 #(1)用法1 data[:,1:3],…...
SpringBoot复习:(21)自定义ImportBeanDefinitionRegistrar
要达到的目的:将某个包下使用了某个自定义注解(比如MyClassMapper)的类注册到Spring 容器。 一、自定义注解: package com.example.demo.service;import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy;Rete…...
小黑子—JavaWeb:第五章 - JSP与会话跟踪技术
JavaWeb入门5.0 1. JSP1.1 JSP快速入门1.2 JSP原理1.3 JSP脚本1.3.1 JSP缺点 1.4 EL 表达式1.5 JSTL 标签1.5.1 JSTL 快速入门1.5.1 - I JSTL标签if1.5.1 - II JSTL标签forEach 1.6 MVC模式1.7 三层架构1.8 实现案例1.8.1 环境准备1.8.2 查询所有1.8.3 添加数据1.8.4 修改1.8.4…...
Python - 【socket】 客户端client重连处理简单示例Demo(一)
一. 前言 在Python中,使用socket进行网络通信时,如果连接断开,可以通过以下步骤实现重连处理 二. 示例代码 1. 定义一个函数,用于建立socket连接 import socketdef connect_socket(host, port):while True:try:# 建立socket连…...
Redis 基础
1.定义 Redis 是一个高性能的key-value数据库,key是字符串类型。 2.核心特点: 单进程: Redis的服务器程序采用的是单进程模型来处理客户端的请求。对读写时间的响 应是通过对epoll函数的包装来做到的。 3.数据类型: 键的类型…...
【0805作业】Linux中 AB终端通过两根有名管道进行通信聊天(半双工)
作业一:打开两个终端,要求实现AB进程对话【两根管道】 打开两个终端,要求实现AB进程对话 A进程先发送一句话给B进程,B进程接收后打印B进程再回复一句话给A进程,A进程接收后打印重复1.2步骤,当收到quit后&am…...
ruby - ckeditor 设置编辑器高度
参考:Blogs <% f.cktext_area :zh_content, ckeditor: { height: 1000} %>...
WMS仓库管理系统研发规划说明
01 产品背景 1.1 背景概述 aboss WMS东南亚仓库管理系统是一个基于BigSeller系统的使用基础上,加上多仓库的解决思路,解决入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,对批次管理、物料对应、库存盘点、质检管理、虚仓管理和即…...
JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础实战
学习来源:尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 文章目录 📚事件对象📚事件的冒泡📚事件的委派📚事件的绑定🐇赋值绑定🐇addEventListener()🐇attachEvent()&…...
实验心得,包括代码复现工作的体会
实践是检验真理的唯一标准 resnet20,cifar100. Direct training: 和原论文一样的参数 64.45 time step 1, Accuracy 0.5918 time step 2, Accuracy 0.6320 time step 4, Accuracy 0.6446 time step 8, Accuracy 0.6531 time step 16, Accuracy 0.6608 time ste…...
RabbitMQ(二)
二、高级特性、应用问题以及集群搭建 高级特性 1.消息的可靠性投递 在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。 rabbitMQ整个消息投递的路径为: produ…...
Linux软件实操
systemctl命令 Linux系统的很多内置或第三方的软件均支持使用systemctl命令控制软件(服务)的启动、停止、开机自启 systemctl start(启动) 或 stop(关闭) 或 status(查看状态) 或 enable(开启开机自启) disable(关闭开机自启) 服务名: 控制服务的状态 系统内置的服务: Netwo…...
kagNet:对常识推理的知识感知图网络 8.4+8.5
这里写目录标题 摘要介绍概述问题陈述推理流程 模式图基础概念识别模式图构造概念网通过寻找路径来匹配子图基于KG嵌入的路径修剪 知识感知图网络图卷积网络(GCN)关系路径编码分层注意机制 实验数据集和使用步骤比较方法KAGNET是实施细节性能比较和分析I…...
Jmeter 压测工具使用手册[详细]
1. jemter 简介 jmeter 是 apache 公司基于 java 开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简 单。因为 jmeter 是 java 开发的,所以运行的时候必须先…...
FuelUX日期选择器终极指南:集成Moment.js实现多语言时间处理
FuelUX日期选择器终极指南:集成Moment.js实现多语言时间处理 【免费下载链接】fuelux As of March 2019, this repository is read-only as Salesforce has archived the FuelUX open-source UI framework and will no longer be supported. 项目地址: https://gi…...
资源监控方案:OpenClaw+Phi-3-mini-128k-instruct实时预警服务器异常
资源监控方案:OpenClawPhi-3-mini-128k-instruct实时预警服务器异常 1. 为什么选择OpenClaw做轻量级监控 去年我的个人服务器因为内存泄漏连续宕机三次后,我开始寻找一个能兼顾灵活性和低成本的监控方案。传统方案如PrometheusGrafana对个人项目显得过…...
别再手动画线了!用uniapp+高德地图SDK,5分钟搞定微信小程序轨迹绘制(附完整代码)
零基础实现UniApp高德地图轨迹绘制:从原理到实战封装 在移动应用开发中,地图轨迹功能是许多场景的刚需——从外卖配送路线、共享单车行程记录到物流追踪系统。传统实现方式往往需要开发者手动处理大量坐标点、编写复杂的画线逻辑,这不仅效率低…...
YOLOv11涨点改进| TPAMI 2025顶刊 |独家创新首发、Conv改进篇| 引入LPRM局部像素关系卷积模块,提升细节表达和边界定位能力,助力小目标检测、语义分割、图像分割、图像增强有效涨点
一、本文介绍 🔥本文给大家介绍使用 LPRM局部像素关系卷积模块 改进YOLOv11网络模型,通过建模局部像素之间的关系对特征进行细化优化,使模型在特征融合或上采样阶段能够更好地恢复空间结构信息并增强区域间的上下文联系。其优势体现在能够提升细节表达和边界定位能力,增强…...
01_Neo4j知识体系之原生图数据库架构全景与技术定位
01_Neo4j知识体系之原生图数据库架构全景与技术定位 体系 基础概念层:原生图数据库定位、属性图模型、索引自由邻接、与关系型数据库对比延伸阅读方向:Cypher 查询、图数据科学、向量索引、GraphRAG、企业级集群适用对象:架构师、数据平台负…...
Excel处理地理数据进阶:除了度分秒转换,这些隐藏技巧让你效率翻倍
Excel地理数据处理进阶:从度分秒转换到地图可视化的全流程实战 当你面对一份包含数百条经纬度数据的地理信息表格时,单纯掌握度分秒转换公式远远不够。真正的高效工作流需要将数据清洗、格式转换、可视化呈现串联成自动化流程。本文将带你超越基础公式&a…...
终极指南:免费在电脑上玩Switch游戏,Ryujinx模拟器完整教程
终极指南:免费在电脑上玩Switch游戏,Ryujinx模拟器完整教程 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 你是否曾想过在电脑上体验《塞尔达传说:…...
WeChatExporter:让微信聊天记录导出实现数据自主权的开源方案
WeChatExporter:让微信聊天记录导出实现数据自主权的开源方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 在数字时代,微信聊天记录已成为个人…...
效率倍增,用快马AI一键生成数据库批量备份与巡检脚本
破解版安装太折腾?用快马AI一键生成数据库运维脚本提升效率 最近接手了一个需要管理多个MySQL数据库的项目,日常的备份、巡检和测试数据准备成了头疼的问题。手动操作不仅效率低,还容易出错。更糟的是,团队里有人为了图方便用了破…...
PHP WindSearch实现站内搜索功能
必须极速安装~使用composer安装:1composer require rock365/windsearch或 使用Git安装:1git clone gitgithub.com:rock365/windsearch.git还配置啥,立即开始用吧!WindSearch包含即用模式、专业模式,即用模式适合简单搜…...
