关于神经网络中的激活函数

这篇博客主要介绍一下神经网络中的激活函数以及为什么要存在激活函数。

首先,我先做一个简单的类比:激活函数的作用就像给神经网络里的 “数字信号” 加了一个 “智能阀门”,让机器能学会像人类一样思考复杂问题。

没有激活i函数的神经网络

没有激活i函数的神经网络就像是一台“傻机器”,假设你用纯数学公式搭一个神经网络(没有激活函数),它的计算逻辑是这样的:

输入层 → 隐藏层:h=W1​⋅x+b1​
隐藏层 → 输出层:y^​=W2​⋅h+b2​
把两层合并后会发现:y^​=W2​⋅(W1​⋅x+b1​)+b2​=(W2​W1​)⋅x+(W2​b1​+b2​)

本质还是一个线性公式(形如 y=kx+b),只能拟合直线,连 “判断图片里有没有猫” 这种曲线问题都解决不了(因为猫和非猫的边界通常是复杂曲线)。

就像你让一个只会做加减乘除的计算器去解微积分题 —— 它根本看不懂题目

激活函数

激活函数的核心作用是让神经网络学会 “非线性变换”,简单说就是:

  • 对符合条件的信号 “放行通过”,
  • 对不符合条件的信号 “过滤或扭曲”,
  • 让不同信号之间产生复杂的逻辑关系。

激活函数的类比

像 “安检门” 一样过滤无效信号(以 ReLU 函数为例)

ReLU 函数:f(z)=max(0,z)

  • 作用:如果输入信号 z 是负数(比如−5),直接变成 0(相当于 “拦截”);如果是正数(比如 3),原样输出(相当于 “放行”)。
  • 类比
    • 你去机场过安检,包里的水如果超过 100ml(信号为负),直接被扣下(输出 0);
    • 小于 100ml 的水(信号为正),可以带进去(输出原值)。
  • 效果:让神经网络专注于 “有意义的信号”,过滤掉干扰项,比如识别图片时只关注 “有像素的区域”,忽略全黑的背景。

像 “调光开关” 一样压缩信号范围(以 Sigmoid 函数为例)

Sigmoid 函数:f(z)=1+e−z1​,输出永远在 0 到 1 之间。

  • 作用:把任意大小的信号(比如−100或+100)“挤压” 到 0~1 的区间,类似把 “强光” 和 “弱光” 都转化为 “手机屏幕能显示的亮度”。
  • 类比
    • 你用手机拍夜景,光线太强(信号值大)会过曝,太弱(信号值小)会漆黑,手机算法会自动把光线压缩到适合显示的范围(0~1),让亮处不过曝、暗处能看清。
  • 效果:适合处理 “概率问题”,比如判断 “这张图是猫的概率是 90%”(输出 0.9),不是猫的概率是 10%(输出 0.1)。

像 “跷跷板” 一样让信号产生对立关系(以 Tanh 函数为例)

Tanh 函数:f(z)=ez+e−zez−e−z​,输出在 - 1 到 1 之间。

  • 作用:把信号转化为 “正” 和 “负” 两种对立状态,类似给信号装了一个 “跷跷板”,一头是正向激活,一头是负向激活。
  • 类比
    • 你和朋友玩跷跷板,体重差异会让一端升高(输出 + 1),一端降低(输出 - 1),体重相近时会平衡在中间(接近 0)。
  • 效果:适合处理 “情感分类” 问题,比如判断一句话是 “积极情绪”(输出 + 0.8)还是 “消极情绪”(输出 - 0.6)。

为什么一定要有激活函数(非线性)--人类思维的本质是 “非线性”

for example

  • 你判断 “今天要不要出门”,不是只看单一因素(比如 “温度 > 20℃就出门”),而是综合考虑:
    • 温度是否合适(激活 1)、
    • 有没有下雨(激活 2)、
    • 朋友是否约你(激活 3)、
    • 工作是否完成(激活 4)……
      这些因素通过 “非线性组合”(比如 “温度合适  没下雨  朋友强烈约我”)最终决定你的行为。

激活函数就是在模拟这种非线性逻辑

  • 每个隐藏层神经元用激活函数处理信号后,相当于学会了一个 “局部判断规则”(比如 “温度 > 20℃时激活”),
  • 多层神经元的激活函数叠加后,就能组合出无穷多复杂规则(比如 “温度> 20℃  下雨概率 < 30%  朋友约我吃饭”),
  • 最终让神经网络能像人类一样解决复杂问题(如图像识别、语言翻译等)。

总结

无激活函数的网络只能做​线性运算(低级计算器)有激活函数的网络能做​非线性变换(智能大脑)
一句话:激活函数让数字信号学会 “思考”,让机器从 “机械计算” 进化到 “智能决策”!

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

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

相关文章

免费无限使用GPT Plus、Claude Pro、Grok Super、Deepseek满血版

渗透智能-ShirtAI&#xff0c;可以免费无限使用GPT Plus、Claude Pro、Grok Super、Deepseek满血版、除此之外还能免费使用AI搜索、Gemini AI、AI照片修复、AI橡皮擦、AI去背景、AI智能抠图、AI证件照、OCR识别、在线思维导图、在线绘图工具、PDF工具箱、PDF翻译。 传送入口&a…

阿里云 Linux 搭建邮件系统全流程及常见问题解决

阿里云 Linux 搭建 [conkl.com]邮件系统全流程及常见问题解决 目录 阿里云 Linux 搭建 [conkl.com]邮件系统全流程及常见问题解决一、前期准备&#xff08;关键配置需重点检查&#xff09;1.1 服务器与域名准备1.2 系统初始化&#xff08;必做操作&#xff09; 二、核心组件安装…

python版若依框架开发:项目结构解析

python版若依框架开发 从0起步&#xff0c;扬帆起航。 python版若依部署代码生成指南&#xff0c;迅速落地CURD&#xff01;项目结构解析 文章目录 python版若依框架开发前端后端 前端 后端

RabbitMQ 的异步化、解耦和流量削峰三大核心机制

RabbitMQ 的异步化、解耦和流量削峰三大核心机制 RabbitMQ 是解决数据库高并发问题的利器&#xff0c;通过异步化、解耦和流量削峰三大核心机制保护数据库。下面从设计思想到具体实现&#xff0c;深入剖析 RabbitMQ 应对高并发的完整方案&#xff1a; 一、数据库高并发核心痛点…

前端没有“秦始皇“,但可以做跨端的王[特殊字符]

前端各领域的 “百家争鸣” 框架之争&#xff1a;有 React、Vue、Angular 等多种框架。它们各有优缺点&#xff0c;开发者之间还存在鄙视链&#xff0c;比如 Vue 嫌 React 难用&#xff0c;React 嫌 Vue 不够灵活。样式处理&#xff1a; CSS 预处理器&#xff1a;像 Sass、Les…

Spring Boot-面试题(52)

摘要&#xff1a; 1、通俗易懂&#xff0c;适合小白 2、仅做面试复习用&#xff0c;部分来源网络&#xff0c;博文免费&#xff0c;知识无价&#xff0c;侵权请联系&#xff01; 1. 什么是 Spring Boot 框架&#xff1f; Spring Boot 是基于 Spring 框架的快速开发框架&#…

JVM——JVM中的字节码:解码Java跨平台的核心引擎

引入 在Java的技术版图中&#xff0c;字节码&#xff08;Bytecode&#xff09;是连接源代码与机器世界的黄金桥梁。当开发者写下第一行public class HelloWorld时&#xff0c;编译器便开始了一场精密的翻译工程——将人类可读的Java代码转化为JVM能够理解的字节码指令。这些由…

Java中的JSONObject详解:从基础到高级应用

Java中的JSONObject详解&#xff1a;从基础到高级应用 在当今前后端分离的架构中&#xff0c;JSONObject已成为Java开发者处理JSON数据的瑞士军刀。本文将深入解析JSONObject的核心机制与实战技巧。 一、JSONObject的本质与实现库 1.1 核心定位 JSONObject是Java中表示JSON对…

在 SpringBoot+Tomcat 环境中 线程安全问题的根本原因以及哪些变量会存在线程安全的问题。

文章目录 前言Tomcat SpringBoot单例加载结果分析多例加载&#xff1a;结果分析&#xff1a; 哪些变量存在线程安全的问题&#xff1f;线程不安全线程安全 总结 前言 本文带你去深入理解为什么在web环境中(Tomcat SpringBoot)会存在多线程的问题以及哪些变量会存在线程安全的…

npm install 相关命令

npm install 相关命令 基本安装命令 # 安装 package.json 中列出的所有依赖 npm install npm i # 简写形式# 安装特定包 npm install <package-name># 安装特定版本 npm install <package-name><version>依赖类型选项 # 安装为生产依赖&#xff08;默认&…

贪心算法应用:最小反馈顶点集问题详解

贪心算法应用&#xff1a;最小反馈顶点集问题详解 1. 问题定义与背景 1.1 反馈顶点集定义 反馈顶点集(Feedback Vertex Set, FVS)是指在一个有向图中&#xff0c;删除该集合中的所有顶点后&#xff0c;图中将不再存在任何有向环。换句话说&#xff0c;反馈顶点集是破坏图中所…

BiliNote部署实践

​ 开源地址&#xff1a; https://github.com/JefferyHcool/BiliNote &#x1f680; 快速开始 1. 克隆仓库 git clone https://github.com/JefferyHcool/BiliNote.git cd BiliNote mv .env.example .env2. 启动后端&#xff08;FastAPI&#xff09; cd backend pip insta…

用go从零构建写一个RPC(4)--gonet网络框架重构+聚集发包

在追求高性能的分布式系统中&#xff0c;RPC 框架的底层网络能力和数据传输效率起着决定性作用。经过几轮迭代优化&#xff0c;我完成了第四版本的 RPC 框架。相比以往版本&#xff0c;这一版本的最大亮点在于 重写了底层网络框架 和 实现了发送端的数据聚集机制&#xff0c;这…

MySQL 高可用基石 - 复制监控与常见 HA 方案

MySQL 高可用基石 - 复制监控与常见 HA 方案 MySQL 复制核心原理 MySQL 复制允许数据从一个 MySQL 数据库服务器(称为主库 - Primary,旧称 Master)复制到一个或多个其他的 MySQL 服务器(称为从库 - Replica,旧称 Slave)。 复制的主要目的: 高可用性 (High Availability…

微信小程序(uniapp)自定义 TabBar

微信小程序&#xff08;uniapp&#xff09;自定义 TabBar 实现指南 在微信小程序开发中&#xff0c;TabBar 是底部导航栏的重要组件&#xff0c;但官方提供的 TabBar 样式和功能较为基础&#xff0c;无法满足所有项目的需求。本文将详细介绍如何在 uniapp 中实现自定义 TabBar…

MLP实战二:MLP 实现图像数字多分类

任务 实战&#xff08;二&#xff09;&#xff1a;MLP 实现图像多分类 基于 mnist 数据集&#xff0c;建立 mlp 模型&#xff0c;实现 0-9 数字的十分类 task: 1、实现 mnist 数据载入&#xff0c;可视化图形数字&#xff1b; 2、完成数据预处理&#xff1a;图像数据维度转换与…

BUUCTF[HCTF 2018]WarmUp 1题解

BUUCTF[HCTF 2018]WarmUp 1题解 分析解题过程代码审计主体函数CHECK函数&#xff1a; 构造payload 总结 分析 启动靶机&#xff0c;进入网址&#xff0c;是一张滑稽的表情包&#xff1a; 程序化F12查看源码&#xff1a; 发现注释内容&#xff0c;访问 url:/source.php得到…

大陆4D毫米波雷达ARS548调试

本文介绍了大陆ARS548毫米波雷达的调试与测试流程&#xff0c;主要包括以下内容&#xff1a; 设备参数&#xff1a;最大检测距离301m&#xff08;可调93-1514m&#xff09;&#xff0c;支持gPTP时间同步。 接线调试&#xff1a; Windows需使用USB-RJ45转换器 Linux可直接连接网…

TDengine 的 AI 应用实战——运维异常检测

作者&#xff1a; derekchen Demo数据集准备 我们使用公开的 NAB数据集 里亚马逊 AWS 东海岸数据中心一次 API 网关故障中&#xff0c;某个服务器上的 CPU 使用率数据。数据的频率为 5min&#xff0c;单位为占用率。由于 API 网关的故障&#xff0c;会导致服务器上的相关应用…

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…