当前位置: 首页 > article >正文

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

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

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

没有激活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.lryc.cn/news/2397085.html

相关文章:

  • CentOS_7.9 2U物理服务器上部署系统简易操作步骤
  • 第十三篇:MySQL 运维自动化与可观测性建设实践指南
  • 短视频平台差异视角下开源AI智能名片链动2+1模式S2B2C商城小程序的适配性研究——以抖音与快手为例
  • HTTP 如何升级成 HTTPS
  • 【笔记】Windows 下载并安装 ChromeDriver
  • Spark-Core Project
  • SQL 中的 `CASE WHEN` 如何使用?
  • Wireshark 使用教程:让抓包不再神秘
  • JWT安全:接收无签名令牌.【签名算法设置为none绕过验证】
  • 什么算得到?什么又算失去?
  • 白银价格查询接口如何用Java进行调用?
  • FreeBSD 14.3 候选版本附带 Docker 镜像和关键修复
  • NodeJS全栈WEB3面试题——P6安全与最佳实践
  • 「Java教案」算术运算符与表达式
  • Ubuntu开机黑屏现象的常见解决方案详解
  • 黑马程序员C++核心编程笔记--4 类和对象--多态
  • 论文写作核心要点
  • [java]eclipse中windowbuilder插件在线安装
  • Ubuntu20.04服务器开启路由转发让局域网内其他电脑通过该服务器连接外网
  • 【Oracle】TCL语言
  • Windows | 总误按Num Lock?修改注册表永久禁用Numlk键使小键盘一直输入数字
  • 2.RV1126-OPENCV Mat理解和AT函数
  • Go 语言 + Word 文档模板:WordZero 引擎如何让企业文档处理效率提升 300%?
  • unidbg patch 初探 微博deviceId 案例
  • 循序渐进 Android Binder(一):IPC 基本概念和 AIDL 跨进程通信的简单实例
  • 网络安全之Web渗透加解密
  • Leetcode 3567. Minimum Absolute Difference in Sliding Submatrix
  • 【LeetCode 题解】两数之和(C++/Python 双解法):从语法到算法的全面解析
  • 【机器学习基础】机器学习入门核心算法:集成学习(Ensemble Learning)
  • 【TMS570LC4357】之相关驱动开发学习记录1