【DL经典回顾】激活函数大汇总(二十四)(Absolute附代码和详细公式)

news2025/2/27 0:14:16

激活函数大汇总(二十四)(Absolute附代码和详细公式)

更多激活函数见激活函数大汇总列表

一、引言

欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不可或缺的角色,它们决定着神经元的输出,并且影响着网络的学习能力与表现力。鉴于激活函数的重要性和多样性,我们将通过几篇文章的形式,本篇详细介绍两种激活函数,旨在帮助读者深入了解各种激活函数的特点、应用场景及其对模型性能的影响。

在接下来的文章中,我们将逐一探讨各种激活函数,从经典到最新的研究成果。

限于笔者水平,对于本博客存在的纰漏和错误,欢迎大家留言指正,我将不断更新。(忙完了…)

二、Absolute

Absolute激活函数是一种简单直观的激活函数,它直接对输入取绝对值。这种激活函数虽然不常见于深度学习文献中的标准模型,但其特性和应用可以为某些特定场景下的模型设计提供灵感。

1. 数学定义

Absolute激活函数的数学表达式定义为:

Absolute ⁡ ( x ) = ∣ x ∣ \operatorname{Absolute}(x)=|x| Absolute(x)=x
其中, x x x是输入值。
在这里插入图片描述

2. 函数特性

  • 非负输出:Absolute激活函数的输出总是非负的,因为它是输入值的绝对值。
  • 线性:尽管Absolute函数对负输入值进行了处理,但它可以视为两段线性函数。在正数部分,它表现为恒等变换;在负数部分,它通过取反实现线性变换。
  • 不具有平移不变性:不同于ReLU和其变体,Absolute函数对正负输入的处理是对称的。

3. 导数

Absolute函数的导数(梯度)为:

d d x Absolute ⁡ ( x ) = { 1  for  x > 0 − 1  for  x < 0  undefined   for  x = 0 \frac{d}{d x} \operatorname{Absolute}(x)= \begin{cases}1 & \text { for } x>0 \\ -1 & \text { for } x<0 \\ \text { undefined } & \text { for } x=0\end{cases} dxdAbsolute(x)= 11 undefined  for x>0 for x<0 for x=0
在实际应用中, x = 0 x=0 x=0时的导数可以特别处理(例如,设置为0或通过其他方法定义),以适应具体的优化算法。

4. 使用场景与局限性

使用场景

  • 特征提取:在需要强调输入特征绝对量级而不关心符号(正负)的任务中,如某些类型的图像处理或信号处理。
  • 稀疏性促进:虽然Absolute函数本身不直接导致输出稀疏,但它可以与其他机制结合使用,比如在损失函数中添加正则化项来促进特征的稀疏性。

局限性

  • 梯度消失/爆炸:由于Absolute函数在零点的导数不连续,这可能在训练过程中导致梯度的问题。
  • 信息损失:对所有输入取绝对值可能会导致关于输入符号(即正负信息)的损失,这对于某些应用可能是不可接受的。

总体而言,Absolute激活函数提供了一种简单的方法来处理神经网络中的输入值,通过强调输入的绝对量级而不是其符号。然而,其特定的数学性质和潜在的局限性意味着它在深度学习应用中的适用性可能有限,需要根据具体的任务和数据特性仔细考虑。

5.代码实现

import numpy as np

def absolute_activation(x):
    """
    实现Absolute激活函数。
    
    参数:
    x -- 输入的数值或NumPy数组。
    
    返回:
    Absolute激活后的输出。
    """
    return np.abs(x)

# 示例输入
x = np.array([-3, -1, 0, 1, 3])

# 应用Absolute激活函数
output = absolute_activation(x)

print("Absolute Activation Output:", output)
解释

这段代码实现了Absolute激活函数,它简单地返回输入数组x的绝对值。这种激活函数的特点是将所有输入的负值转换为其正值,而正值和零值保持不变。

  • 函数定义absolute_activation接受一个输入x,可以是单个数值或一个NumPy数组。该函数对x中的每个元素应用绝对值操作。

  • NumPy库的使用:通过调用np.abs(x),利用NumPy库的绝对值函数来实现这一操作。NumPy库针对数组操作进行了优化,使得对于大型数组的处理非常高效。

  • 示例输入和输出:示例输入x = np.array([-3, -1, 0, 1, 3])包含负数、零和正数。应用Absolute激活函数后,所有的负数被转换为正数,输出为[3 1 0 1 3]

三、参考文献

关于Absolute激活函数作为神经网络激活函数的专门文献可能相对较少(比较简单…)。以下类型的资源可以提供有关如何在深度学习模型中有效使用基本数学操作的背景信息和启发:

  • https://neat-python.readthedocs.io/en/latest/activation.html

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

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

相关文章

个人开发者上架App流程

摘要 个人开发者完全可以将自己开发的App上传至应用商店进行上架。本文将介绍上架流程的通用步骤&#xff0c;包括确定App功能和定位、准备相关资料、开发App、提交审核、发布App和宣传推广等内容。 引言 个人开发者在如今的移动应用市场中也有机会将自己的作品推向更广泛的…

【书生·浦语大模型实战营】学习笔记3

文章目录 1. 大模型开发范式2. LangChain简介3. 构建向量数据库4. 搭建知识库助手5. Web Demo部署6. 动手实战环节环境配置知识库搭建InternLM接入LangChain构建检索问答链部署Web Demo 参考资料 1. 大模型开发范式 LLM局限性&#xff1a; 知识时效性&#xff1a;LLM无法获取最…

【Vue3】组件通信的的各种方式和tsx风格

组件通信 Vue2组件通信方式全局事件总线bus&#xff0c;可以实现组件通信 Vue3组件通信方式propsprovide与inject依赖注入 全局APiVue3其他改变组件通信之自定义事件组件通信之事件总线组件通信之v-model多个v-model传值 TSX风格使用风格一使用tsx风格&#xff0c;使用optionsA…

V-JEPA模型,非LLM另外的选择,AGI的未来:迈向Yann LeCun先进机器智能(AMI)愿景的下一步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Flink源码解析(1)job启动,从JM到TM过程详解

网络传输模型 首先在看之前,回顾一下akka模型: Flink通讯模型—Akka与Actor模型-CSDN博客 注:ActorRef就是actor的引用,封装好了actor 下面是jm和tm在通讯上的概念图: RpcGateway 不理解网关的作用,可以先移步看这里:网关_百度百科 (baidu.com) 用于定义RPC协议,是…

JS11-scroll相关属性和缓动动画

scroll 相关属性 window.onscroll() 方法 当我们用鼠标滚轮&#xff0c;滚动网页的时候&#xff0c;会触发 window.onscroll() 方法。效果如下&#xff1a;&#xff08;注意看控制台的打印结果&#xff09; 如果你需要做滚动监听&#xff0c;可以使用这个方法。 我们来看看和…

用C语言打造自己的Unix风格ls命令

在Unix或类Unix操作系统中&#xff0c;ls是一个非常基础且实用的命令&#xff0c;它用于列出当前目录或指定目录下的文件和子目录。下面&#xff0c;我们将通过C语言编写一个简化的ls命令&#xff0c;展示如何利用dirent.h头文件提供的函数接口实现这一功能。 #include "…

开始喜欢上了runnergo,JMeter out了?

RunnerGo是一款基于Go语言、国产自研的测试平台。它支持高并发、分布式性能测试。和JMeter不一样的是&#xff0c;它采用了B/S架构&#xff0c;更灵活、更方便。而且&#xff0c;除了API测试和性能测试&#xff0c;RunnerGo还加上了UI测试和项目管理等实用功能&#xff0c;让测…

Jenkins Pipeline中when的用法

目录 概述内置条件branchbuildingTagchangesetchangeRequestequalsexpressiontriggeredBytagenvironmentnotallOfanyOf 在进入 stage 的 agent 前评估 whenbeforeAgentbeforeInputbeforeOptions 示例单一条件、声明性流水线多条件、声明式管道嵌套条件&#xff08;与前面的示例…

综合实验---Web---进阶版

目录 实验配置&#xff1a; 1.PHP调整主配置文件时&#xff0c;修改文件内容 1.原内容调整(在编译安装的情况下) 2.调整如下 3.没有调整的&#xff0c;根据之前配置就行 2.配置Nginx支持PHP解析 1.原内容如下 2.调整如下 3.验证PHP测试页 1.原内容如下 2.调整如下 4…

U盘安装Linux系统报dracut-initqueue错误,解决方案

U盘安装Linux系统报dracut-initqueue错误&#xff0c;是因为系统所在U盘路径不对&#xff0c;需要修改 解决方法&#xff1a; dracut:/# cd dev >dracut:/# ls |grep sdb 查看你的u盘是哪个一般是sdbX,X是一个数字&#xff0c;也有可能是sda等&#xff0c;如果上边都不对…

C语言数据结构基础——二叉树学习笔记(二)topk问题

1.top-k问题 1.1思路分析 TOP-K 问题&#xff1a;即求数据结合中前 K 个最大的元素或者最小的元素&#xff0c;一般情况下数据量都比较大 。 比如&#xff1a;专业前 10 名、世界 500 强、富豪榜、游戏中前 100 的活跃玩家等。 对于 Top-K 问题&#xff0c;能想到的最简单直…

词令微信小程序怎么添加到我的小程序?

微信小程序怎么添加到我的小程序&#xff1f; 1、找到并打开要添加的小程序&#xff1b; 2、打开小程序后&#xff0c;点击右上角的「…」 3、点击后底部弹窗更多选项&#xff0c;请找到并点击「添加到我的小程序」&#xff1b; 4、添加成功后&#xff0c;就可以在首页下拉我的…

代码随想录算法训练营第二十七天 |131.分割回文串,一些思考

实际上&#xff0c;分割子集问题也是组合问题 &#xff08;图源代码随想录网站&#xff09; 一个套路&#xff0c;也就是说&#xff0c;每次递归函数参数列表传入start的时候&#xff0c;选中的元素相当于是在最后面划了一条分割线 回文子串的判断剪枝操作就很简单了&#xf…

AIGC元年大模型发展现状手册

零、AIGC大模型概览 AIGC大模型在人工智能领域取得了重大突破&#xff0c;涵盖了LLM大模型、多模态大模型、图像生成大模型以及视频生成大模型等四种类型。这些模型不仅拓宽了人工智能的应用范围&#xff0c;也提升了其处理复杂任务的能力。a.) LLM大模型通过深度学习和自然语…

什么是闭包?闭包的优缺点?闭包的应用场景?

什么是闭包&#xff1f; 闭包是指有权访问另外一个函数作用域中的变量的函数。 闭包形成的必要条件&#xff1a; 函数嵌套内部函数使用外部函数的变量内部函数作为返回值 举个栗子&#xff1a;实现每隔1s递增打印数字 使用闭包实现 for(var i1; i<5; i) {(function(i) {se…

Cointelegraph 策略主管 JASON CHOI确认出席Hack.Summit() 2024区块链开发者大会

随着区块链技术的蓬勃发展和广泛应用&#xff0c;一场备受瞩目的盛会即将拉开帷幕。Hack.Summit() 2024区块链开发者大会&#xff0c;由Hack VC主办&#xff0c;AltLayer和Berachain协办&#xff0c;Solana、The Graph、Blockchain Academy、ScalingX、0G、SNZ和数码港等机构的…

Python——模块

自定义模块 module_exercise.py文件 data 100 def func01():print("func01执行喽") class Myclass:def func02(self):print("func02执行喽")classmethoddef func03(cls):print("func03执行喽") exercise.py文件 # 调用方法1&#xff1a;&quo…

Unity2D实现鼠标拖动物体移动(简单好抄)

1.新建脚本&#xff0c;并将脚本拖到你想要拖动的物体上即可 using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine;public class text : MonoBehaviour {private Vector3 offset;public int x 1;void OnMouseDown(…

入门:vue使用Echarts绘制地图的步骤

匠心接单中...8年前端开发和UI设计接单经验&#xff0c;完工项目1000&#xff0c;持续为友友们分享有价值、有见地的干货观点&#xff0c;有业务需求的老铁&#xff0c;欢迎关注发私信。 安装echarts和echarts-map插件 npm install echarts --save npm install echarts-map --…