深度学习1:基本概念,感知机,激活函数(阶跃,sigmoid,Tanh函数)

发布时间:2026/10/22 20:46:08

深度学习1:基本概念,感知机,激活函数(阶跃,sigmoid,Tanh函数) 建议看尚硅谷深度学习视频一、深度学习基本概念和结构二、感知机和激活函数的由来三、激活函数作用作用一: 没有激活函数一万层网络也只等于一层线性回归啥复杂问题都解决不了作用二 决定神经元是否“放电”特征过滤)作用三 压缩数值范围防止“梯度爆炸”思考:激活函数算出来是 0 这个数值就不会被下一层加入计算吗(是的完全不会)插曲一些知识 偏置 b 和激活函数真正放在一起看看它们到底是怎么配合的。四、阶跃函数五、sigmoid六、Tanh函数笔记来自尚硅谷 深度学习 截图一、深度学习基本概念和结构人工神经网络Artificial Neural NetworkANN简称 神经网络NN是一种模仿生物神经网络结构和功能的计算模型。大多数情况下人工神经网络能在外界信息的基础上改变内部结构是一种自适应系统(adaptive system)通俗地讲就是具备学习功能。相邻层的神经元相互连接(图中下一层每个神经元都与上一层所有神经元连接,称为 全连接)每个连接都会有一个 权重。神经元中的信息逐层传递一般称为 前向传播 forward上一层神经元的输出作为下一层神经元的输入二、感知机和激活函数的由来感知器(perceptron)是二分类模型,接受多个信号,输出一个信号.感知机的信号只有01两种取值。重要的事打一遍字不用一直线性下去吧h(x)可以将输入信号的加权总和转换为输出信号,起到激活神经元的作用所以被称为激活函数三、激活函数作用激活函数是连接感知机和神经网络的桥梁在神经网络中起着至关重要的作用。作用一: 没有激活函数一万层网络也只等于一层线性回归啥复杂问题都解决不了如果没有激活函数整个神经网络就等效于单层线性变换不论如何加深层数总是存在与之等效的“无隐藏层的神经网络”。激活函数必须是非线性函数也正是激活函数的存在为神经网络引入了非线性使得神经网络能够学习和表示复杂的非线性关系。作用二 决定神经元是否“放电”特征过滤)现实中大脑的神经元只有当接收到的刺激超过一定阈值时才会“放电”把信号传给下一个神经元。激活函数就是模拟这个机制。它把前一层的加权求和a aa映射成一个“激活程度”。比如大于某个值才把信号传给下一层。作用三 压缩数值范围防止“梯度爆炸”你看图里的a w 1 x 1 w 2 x 2 b a w_1x_1 w_2x_2 baw1​x1​w2​x2​b。如果在深层网络里每层算出来的值都越来越大比如变成 1000、10000计算机的浮点数会溢出模型直接崩溃这叫梯度爆炸。激活函数可以把这些无限大的数字“挤压”回一个安全范围比如[ − 1 , 1 ] [-1, 1][−1,1]或[ 0 , ∞ ) [0, \infty)[0,∞)让网络能稳定训练。思考:激活函数算出来是 0 这个数值就不会被下一层加入计算吗(是的完全不会)我们以最经典的激活函数ReLU (Rectified Linear Unit, 线性整流函数)为例。它的公式极简单f ( x ) m a x ( 0 , x ) f(x) max(0, x)f(x)max(0,x)。如果输入x 0 x 0x0输出还是x xx。如果输入x ≤ 0 x \le 0x≤0输出直接强行变成 0。“变成 0”在下一层计算时意味着什么假设下一层的计算是y w 1 ⋅ a 1 w 2 ⋅ a 2 b y w_1 \cdot a_1 w_2 \cdot a_2 byw1​⋅a1​w2​⋅a2​b。如果上一层传过来的a 1 a_1a1​经过激活函数变成了 0。那么y w 1 ⋅ 0 w 2 ⋅ a 2 b w 2 ⋅ a 2 b y w_1 \cdot 0 w_2 \cdot a_2 b w_2 \cdot a_2 byw1​⋅0w2​⋅a2​bw2​⋅a2​b你看w 1 w_1w1​和a 1 a_1a1​直接从公式里消失了。在神经网络和矩阵运算中0 就代表“此路不通”。这就引出了深度学习中极其重要的一种现象1. 产生“稀疏性 (Sparsity)”极度省算力图片里有大量的像素点、一句话里有大量无用的介词它们对最终结果没贡献。ReLU 让这些无用特征直接变成 0。下一层遇到 0 就不用算了大大节省了 GPU 的算力。这种“断舍离”不仅省算力还是让神经网络变得聪明和高效的秘诀2. 强迫网络只关注“重点”抗噪如果输入的是无用的噪声算出来的值大概率小于 0被 ReLU 激活成 0 后等于告诉后面的网络“这全是废话不用管它了”。这极大地提高了模型提取核心特征的效率。3. 避免梯度消失ReLU 的绝活早期的激活函数比如 Sigmoid在输入极大或极小时曲线是平的。曲线平 导数为 0 训练时权重无法更新这叫梯度消失。而 ReLU 只要输入大于 0它的导数永远是 1。这意味着误差可以畅通无阻地传回前面的层极大加速了深层网络的训练。早期的 Transformer 和现在的很多 CNN中间层都在疯狂使用 ReLU 或者它的变体 GELU。那为 0 有啥坏处吗有。如果输入永远小于 0输出永远为 0导数也为 0。那个神经元就“死”了Dead Neuron参数永远无法更新。为了防这个工程师后来发明了Leaky ReLU让小于 0 的部分不是 0而是0.01 x 0.01x0.01x保留一点点微弱信号不让它彻底死掉。插曲一些知识 偏置 b 和激活函数真正放在一起看看它们到底是怎么配合的。真相偏置b bb的作用就是用来“控制”激活函数的结合公式我们把流程排好第一步线性计算a w 1 x 1 w 2 x 2 b a w_1x_1 w_2x_2 baw1​x1​w2​x2​b这一步把输入加权求和并加上偏置b bb第二步激活函数y f ( a ) y f(a)yf(a)把算出来的a aa塞进激活函数为什么非要在进激活函数之前加一个b bb呢你想如果没有偏置b bb。那么输入信号x 1 x_1x1​和x 2 x_2x2​哪怕全等于 0算出来的a aa也是 0。这就意味着当没有输入信号时这个神经元绝对不可能被激活它永远死气沉沉。加了偏置b bb就相当于给神经元设定了一个“门槛或基础活跃度”。我们以ReLU 激活函数公式是f ( a ) m a x ( 0 , a ) f(a) max(0, a)f(a)max(0,a)即负数变0正数保留为例来看看b bb的魔法情况 1假设b bb是一个负数比如b − 5 b -5b−5哪怕你给了输入信号比如w 1 x 1 w 2 x 2 3 w_1x_1 w_2x_2 3w1​x1​w2​x2​3算出来的a 3 − 5 − 2 a 3 - 5 -2a3−5−2。然后a − 2 a -2a−2进了激活函数ReLU 一看是负数直接把它变成 0。结果这个神经元非常“高冷”它觉得信号太弱了不值得兴奋所以不激活输出 0后面的层就不计算它了。情况 2假设b bb是一个正数比如b 5 b 5b5哪怕你根本没给任何输入信号输入全是 0算出来的a 0 5 5 a 0 5 5a055。然后a 5 a 5a5进了激活函数ReLU 一看是正数原样输出 5。结果这个神经元非常“敏感”一点点风吹草动或者没动静它也会被激活。情况 3训练过程中网络在调整b bb网络在“学习”时如果发现某个神经元太容易激活了老是输出非 0 值导致模型预测错误反向传播算法就会把它的b bb调小一点往负数方向调让它冷静一下如果发现它太死板了总是输出 0啥特征也学不到就会把b bb调大一点让它更容易被激活。记住一句话b 是给激活函数打辅助的它决定了神经元被激活的难易程度四、阶跃函数#阶跃函数(输入是一个标量)importnumpyasnpdefstep_function0(x):ifx0:return1else:return0defstep_function(x):returnnp.array(x0,dtypeint)if__name____main__:xnp.array([0,1,2,3,4,5,-1,-2,-3,-4,-5])print(step_function(x))五、sigmoid下面是函数和导函数图片从第二张导函数能看出来再等0是到了拐点靠近0是开始急剧增大过了拐点开始慢慢增大减速导函数下降不代表原函数就会下降。只要导函数的值也就是斜率还是正数原函数就一直在上升。核心概念导函数的“正负”决定原函数的“升降”导函数 (f’(x) 0)在 x 轴上方原函数 f(x) 就在上升。导函数 (f’(x) 0)在 x 轴下方原函数 f(x) 就在下降。你看右图Sigmoid 的导函数图像它在 x0之后确实开始下降了从最高点 0.25 往下掉。但是它下降归下降它依然在 x 轴的上方数值依然是正数 所以原函数 f(x) 依然在增加只是增加的速度变慢了。S i g m o i d SigmoidSigmoid也叫 Logistic 函数是平滑的、可微的能将任意输入映射到区间(0,1)常用于二分类的输出层。但因其涉及指数运算计算量相对较高。S i g m o i d SigmoidSigmoid的输入在[-6,6]之外时其输出值变化很小可能导致信息丢失。S i g m o i d SigmoidSigmoid的输出并非以 0 为中心其输出值均0导致后续层的输入始终为正可能影响后续梯度更新方向。S i g m o i d SigmoidSigmoid的导数范围为(0,0.25)梯度较小。当输入在[-6,6]之外时导数接近 0此时网络参数的更新将会极其缓慢。使用 Sigmoid 作为激活函数可能出现梯度消失在逐层反向传播时梯度会呈指数级衰减。别的不说 先搞定求导回忆基础复合求导s i g m o i d sigmoidsigmoid求导过程σ ( x ) \sigma(x)σ(x)和 f(x) 一个意思所以下面ai用σ ( x ) \sigma(x)σ(x)计算求导σ ( x ) \sigma(x)σ(x)1 1 e − x \frac{1}{1 e^{-x}}1e−x1​代码(包含测试阶跃函数)# Sigmoid函数defsigmoid(x):return1/(1np.exp(-x))if__name____main__:xnp.array([0,1,2,3,4,5,-1,-2,-3,-4,-5])print(step_function(x))print(sigmoid(x))六、Tanh函数Tanh函数就是sigmoid的平移和缩放原来sigmoid 的值是 0到1这里2 sigmoid(2x) 的值是 0到2又减去1 所以值变成-1 到 1importnumpyasnp xnp.array([0,1,2,3,4,5,-1,-2,-3,-4,-5])np.tanh(x)
延伸阅读

更多相关文章

2026/10/22 20:41:08

【自动驾驶】小鹏 FutureX 要点总结(小鹏)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 20:41:08

UniHacker 一键破解 Unity 与 Unity Hub 完全指南

UniHacker 一键破解 Unity 与 Unity Hub 完全指南 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker 你在笔记本上装好国际版 Unity 2021.3,进编辑器…

2026/10/22 22:01:54

DDoS攻击原理与防御实战:从应急到体系构建

1. 从一次实战说起:我为什么开始认真研究DDoS事情要从两年前的一次上线说起。当时某个产品刚做完压测,自认为扛得住一定流量,结果正式对外不到一周,运营同事早上发来消息:“后台监控曲线不对劲,请求量突然翻…

2026/10/22 22:01:54

M-P神经元模型全解析:从生物神经元到深度学习的第一块基石

先说明一下:我写技术分享有个习惯,遇到越是看起来“简单”的概念,越喜欢把它翻来覆去拆透。M-P神经元模型就是典型例子——它在教科书里往往只占两三页,符号简单、公式也不长,看起来像个一次性讲完就能翻篇的入门知识。…

2026/10/22 22:01:54

Opus 5.5 生成视频真相:用大模型写代码,让浏览器逐帧渲染动画

1. 这个标题到底在说什么第一次看到“Opus 5.5 生成视频”这个说法,我差点以为又是一个“输入一句话,直接吐出一段MP4”的模型。实际把玩了一圈才发现,它压根不碰视频编码,也不输出任何视频文件。它做的事情是:根据你的…

2026/10/22 22:01:54

微信小程序投票评选系统源码部署与防刷票实战指南

简介:这是一套面向高校学生与Java初学者、可用于毕业设计或课程实践的微信小程序投票评选系统源码,采用Java后端与微信小程序前端组合,解决从零搭建在线投票、评选与结果统计平台的开发需求。压缩包共884个文件,约19.64MB&#xf…

2026/10/22 21:56:52

Linux下AAC编码实战:FFmpeg编码器选择与参数调优指南

跟音频编码打交道这些年,Linux 上我做得最多的事情之一,就是把各种乱七八糟的音频源转成 AAC。不是因为它有多玄乎,而是在兼容性、压缩比和音质之间,AAC 那个平衡点确实很难被替代。尤其现在流媒体、视频封装、移动端播放器几乎全…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑