激活函数篇 02 —— 双曲正切函数tanh

本篇文章收录于专栏【机器学习】

以下是激活函数系列的相关的所有内容:

一文搞懂激活函数在神经网络中的关键作用

逻辑回归:Sigmoid函数在分类问题中的应用


tanh ⁡ ( x ) = e x − e − x e x + e − x \tanh(x)=\frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+exexex

  • 定义域: ( − ∞ , + ∞ ) (-\infty,+\infty) (,+)
  • 值域: ( − 1 , 1 ) (-1,1) (1,1)
  • 对称性: 关于点 ( 0 , 0 ) (0,0) (0,0) 中心对称
  • 可导性: 处处可导

在这里插入图片描述

运用场景

  • 神经网络隐藏层: 引入非线性,使得模型能够学习复杂的特征。
  • 强化学习: 动作选择的概率计算。
  • 数据标准化: 将特征值映射到 ( − 1 , 1 ) (-1, 1) (1,1)区间,便于后续处理。

求导:
d d x tanh ⁡ ( x ) = d d x ( e x − e − x e x + e − x ) \frac{d}{dx} \tanh(x) = \frac{d}{dx} \left( \frac{e^x - e^{-x}}{e^x + e^{-x}} \right) dxdtanh(x)=dxd(ex+exexex)

d d x ( e x − e − x e x + e − x ) = ( e x + e − x ) ( e x + e − x ) − ( e x − e − x ) ( e x − e − x ) ( e x + e − x ) 2 \frac{d}{dx} \left( \frac{e^x - e^{-x}}{e^x + e^{-x}} \right) = \frac{(e^x + e^{-x})(e^x + e^{-x}) - (e^x - e^{-x})(e^x - e^{-x})}{(e^x + e^{-x})^2} dxd(ex+exexex)=(ex+ex)2(ex+ex)(ex+ex)(exex)(exex)

= ( e 2 x + 2 + e − 2 x ) − ( e 2 x − 2 + e − 2 x ) ( e x + e − x ) 2 = 4 ( e x + e − x ) 2 = \frac{(e^{2x} + 2 + e^{-2x}) - (e^{2x} - 2 + e^{-2x})}{(e^x + e^{-x})^2} = \frac{4}{(e^x + e^{-x})^2} =(ex+ex)2(e2x+2+e2x)(e2x2+e2x)=(ex+ex)24

∵ ( e x + e − x ) 2 = cosh ⁡ 2 ( x ) ; 4 cosh ⁡ 2 ( x ) = 4 ⋅ sech 2 ( x ) \because (e^x + e^{-x})^2 = \cosh^2(x); \frac{4}{\cosh^2(x)} = 4 \cdot \text{sech}^2(x) (ex+ex)2=cosh2(x)cosh2(x)4=4sech2(x)

∴ d d x tanh ⁡ ( x ) = 1 − tanh ⁡ 2 ( x ) \therefore \frac{d}{dx} \tanh(x) = 1 - \tanh^2(x) dxdtanh(x)=1tanh2(x)

函数特点

解决了 Sigmoid 函数的输出不以 0 为中心的问题。Sigmoid 函数的输出范围是 ( 0 , 1 ) (0,1) (0,1),而 Tanh 函数的输出范围是 ( − 1 , 1 ) (−1,1) (1,1),这使得 Tanh 函数的输出以 0 0 0 为中心。这一特性有助于梯度的稳定,因为梯度在正负方向上是对称的,从而避免了梯度更新时的不对称性。

尽管 Tanh 函数解决了输出不以 0 为中心的问题,但它仍然存在梯度消失和幂运算的问题。

梯度消失
梯度消失问题的根本原因是激活函数的导数在输入值较大或较小时接近于 0。对于 Tanh 函数,其导数为:
d d x tanh ⁡ ( x ) = 1 − tanh ⁡ 2 ( x ) \frac{d}{dx} \tanh(x) = 1 - \tanh^2(x) dxdtanh(x)=1tanh2(x)
当 x 的绝对值较大时, tanh ⁡ ( x ) \tanh(x) tanh(x) 接近于 1 或 -1,此时 tanh ⁡ ′ ( x ) \tanh' (x) tanh(x) 接近于 0。这导致在反向传播过程中,梯度值变得非常小,几乎无法对权重进行有效更新,从而减慢了训练速度甚至导致训练停滞。

可以使用relu、Leaky Relu、ELU等得以解决。

幂运算
Tanh 函数的计算涉及指数运算,这在某些情况下可能会导致计算效率较低,尤其是在处理大规模数据时。指数运算的计算成本较高,可能会影响模型的训练速度。

可以使用近似方法来计算 Tanh 函数,例如使用泰勒展开或其他近似公式,以减少计算成本。
或者使用更高效的激活函数:例如,ReLU 函数和 Leaky ReLU 函数的计算不涉及指数运算,计算效率更高。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis高级数据结构布隆过滤器

文章目录 背景什么是布隆过滤器Redis 中的布隆过滤器布隆过滤器使用注意事项实现原理空间占用估计 背景 我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻…

存储异常导致的Oracle重大生产故障

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…

在 Navicat 17 中扩展 PostgreSQL 数据类型 | 创建自定义域

定义域 以适当的格式存储数据可以确保数据完整性,防止错误,优化性能,并通过实施验证规则和支持高效数据管理来维护系统间的一致性。基于这些原因,顶级关系数据库(如PostgreSQL)提供了多种数据类型。此外&a…

计算机视觉-拟合

一、拟合 拟合的作用主要是给物体有一个更好的描述 根据任务选择对应的方法(最小二乘,全最小二乘,鲁棒最小二乘,RANSAC) 边缘提取只能告诉边,但是给不出来数学描述(应该告诉这个点线是谁的&a…

oracle基础语法

oracle基础语法 1、增删改查1.1查询语句1.2 修改语句1.3 删除表1.4 删除数据1.5 增加数据1.6 创建视图1.7 添加视图字段注释 1、增删改查 oracle与sql server语法上大致相同,但有些细微的不同,以下是我个人记录工作中常用到的一些语法句。 1.1查询语句…

CodeGPT + IDEA + DeepSeek,在IDEA中引入DeepSeek实现AI智能开发

CodeGPT IDEA DeepSeek,在IDEA中引入DeepSeek 版本说明 建议和我使用相同版本,实测2022版IDEA无法获取到CodeGPT最新版插件。(在IDEA自带插件市场中搜不到,可以去官网搜索最新版本) ToolsVersionIntelliJ IDEA202…

星网锐捷 视频话机设备pwdsetting管理密码信息泄漏

星网锐捷 视频话机设备pwdsetting管理密码信息泄漏 漏洞描述 星网锐捷视频话机设备 泄露管理员密码,攻击者可利用密码直接进入后台配置页面,执行恶意操作,进行一步攻击。 威胁等级: 高危 漏洞分类: 信息泄露 涉及厂商及产品:…

网络安全 | 保护智能家居和企业IoT设备的安全策略

网络安全 | 保护智能家居和企业IoT设备的安全策略 一、前言二、智能家居和企业 IoT 设备面临的安全威胁2.1 设备自身安全缺陷2.2 网络通信安全隐患2.3 数据隐私风险2.4 恶意软件和攻击手段 三、保护智能家居和企业 IoT 设备的安全策略3.1 设备安全设计与制造环节的考量3.2 网络…

38、【OS】【Nuttx】OSTest分析(3):参数传递

背景 接之前 blog 36、【OS】【Nuttx】OSTest分析(2):环境变量测试 37、【OS】【Nuttx】OSTest分析(2):任务创建 分析完环境变量测试,和任务创建的一些关键要素,OSTest 进入下一阶段…

储能系统-系统架构

已更新系列文章包括104、61850、modbus 、单片机等,欢迎关注 IEC61850实现方案和测试-1-CSDN博客 快速了解104协议-CSDN博客 104调试工具2_104协议调试工具-CSDN博客 1 电池储能系统(BESS) 架构 电池储能系统主要包括、电池、pcs、本地控制…

Listener监听器和Filter过滤器

一.监听器 1.是javaweb的三大组件之一,分别是Servlet程序,Listener监听器,Filter过滤器 2.Listener是JvaEE的规范,就是接口,监听器的作用就是监听某种变化(一般是对象创建/销毁,属性变化),触发对应方法完成相应的任务 3.ServletContextListener:/*当一个类实现了ServletContex…

Go 中的 7 个常见接口错误

Go 仍然是一门新语言,如果你正在使用它,它很可能不是你的第一门编程语言。 不同的语言,既为你带来了经验,也带来了偏见。你用以前的任何语言做的事情,在 Go 中用相同的方法可能不是一个好主意。 学习 Go 不仅仅是学习一种新的语法。这也是学习一种新的思维方式来思考你的…

【AI实践】Cursor上手-跑通Hello World和时间管理功能

背景 学习目的:熟悉Cursor使用环境,跑通基本开发链路。 本人背景:安卓开发不熟悉,了解科技软硬件常识 实践 基础操作 1,下载安装安卓Android Studio 创建一个empty project 工程,名称为helloworld 2&am…

存储系统、网盘系统的访问留痕

一、适用场景 1、需要了解是否存在非法访问存储系统或网盘系统:各企业或单位为方便远程办公或远程管理,若自建(保护隐私数据或敏感资料)了存储系统或网盘系统,那么到底有哪些ip地址或用户从远程公网访问存储系统或网盘…

求助DeepSeek帮我开发一个直线审批流程设计页面Vue2.0

之前使用文心一言协助开发过类似的页面,需求方认为某些业务表单需要添加审批流程,可以人为设置审批步骤,由于需求很模糊而且人/天有限,当时的提问很混乱,内容如下: 我的vue2.0系统中需要审批流程设计页面&a…

初级数据结构:栈和队列

目录 一、栈 (一)、栈的定义 (二)、栈的功能 (三)、栈的实现 1.栈的初始化 2.动态扩容 3.压栈操作 4.出栈操作 5.获取栈顶元素 6.获取栈顶元素的有效个数 7.检查栈是否为空 8.栈的销毁 9.完整代码 二、队列 (一)、队列的定义 (二)、队列的功能 (三&#xff09…

LLM:DeepSeek 系列(二)

原文链接 3、DeepSeek-V2 DeepSeek-V2 发布于 2024 年 5 月,为多领域专家(MoE)语言模型,包含总共 2360 亿个参数,其中每个词元激活 210 亿个参数,并支持 12.8 万个词元的上下文长度。DeepSeek-V2 采用包括…

【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)

重要信息 官网:www.cnsse.org 时间:2025年2月21-23日 地点:中国-青岛 简介 第五届计算机网络安全与软件工程(CNSSE 2025)将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…

开源项目介绍-词云生成

开源词云项目是一个利用开源技术生成和展示词云的工具或框架,广泛应用于文本分析、数据可视化等领域。以下是几个与开源词云相关的项目及其特点: Stylecloud Stylecloud 是一个由 Maximilianinir 创建和维护的开源项目,旨在通过扩展 wordclou…

Docker基础以及单体实战

Docker 一、Docker1.1 Docker组成1.2 Dcoker运行图1.3 名称空间Namepace 1.4 docker、Docker compose、kubermetes 二、Docker安装2.1 在线Docker安装2.2 使用官方通用安装脚本2.3 二进制安装Docker三、Docker基础命令3.1 启动类3.2 镜像类3.3 容器类3.4 网络类3.5 Docker comp…