深度学习之ANN、CNN、RNN
一、神经网络基础1.1 结构组成神经网络由输入层、隐藏层、输出层构成输入层接收原始数据每个神经元对应一个特征维度。隐藏层核心计算层。每一层执行两步操作1.线性变换z Wx b其中 W 为权重矩阵b 为偏置。2.非线性激活a f(z)为网络引入非线性表达能力。输出层根据任务类型输出结果如分类概率或回归值。1.2 前向传播数据从输入层开始逐层计算线性变换与激活直至输出层得到预测值。对于第 l 层z[l] W[l] a[l-1] b[l]a[l] f[l](z[l])其中 a[0] x 为输入最终输出 ŷ a[L]。1.3 反向传播目标通过计算损失函数对每个参数的梯度沿网络反向更新权重以减小损失。核心工具链式法则。从输出层损失 L 开始逐层计算∂L/∂W[l] (∂L/∂z[l]) · (∂z[l]/∂W[l])∂L/∂b[l] ∂L/∂z[l]。误差项 δ[l] ∂L/∂z[l] 从后向前传递δ[l] (W[l1])T δ[l1] ⊙ f(z[l])。最终用梯度下降更新参数。二、损失函数详解2.1 分类任务交叉熵损失 (Cross-Entropy Loss)对于多分类模型输出经 Softmax 后得到概率分布 ŷi真实标签为 one-hot 向量 yiL -∑i yi log(ŷi)。PyTorch 中 CrossEntropyLoss 已整合 LogSoftmax 和 NLLLoss。二分类交叉熵 (BCE Loss)L -[y log(ŷ) (1-y) log(1-ŷ)]。通常先对输出做 Sigmoid 转为概率。实践中推荐使用 BCEWithLogitsLoss它将 Sigmoid 与损失合并数值更稳定。2.2 回归任务均方误差 (MSE / L2 Loss)L (1/n) ∑i1n (yi - ŷi)2。梯度与误差成正比对异常值敏感放大误差。平均绝对误差 (MAE / L1 Loss)L (1/n) ∑i1n |yi - ŷi|。梯度为常数1 或 -1对异常值更鲁棒但零点不可导实践中可使用次梯度。Smooth L1 Loss结合 L1 与 L2 的优点误差绝对值小于 1 时用 L2 部分梯度平缓否则用 L1梯度恒定当 |yi - ŷi| 1 时 L 0.5 (yi - ŷi)2否则 L |yi - ŷi| - 0.5。常用于目标检测中的回归。三、激活函数详解函数公式值域导数特点与适用场景Sigmoidσ(x) 1/(1e-x)(0,1)σ(x)(1-σ(x))输出可解释为概率两端饱和区梯度接近 0易梯度消失用于二分类输出层。Tanhtanh(x) (ex - e-x)/(ex e-x)[-1,1]1 - tanh2(x)零中心梯度消失问题略轻于 Sigmoid常用于隐藏层。ReLUmax(0, x)[0, ∞)1 (x0), 0 (x0)计算简单正区间梯度恒为 1缓解梯度消失负区间输出为 0可导致神经元“死亡”权重无法更新。Leaky ReLUmax(αx, x)(-∞, ∞)1 (x0), α (x0)给负区间一个很小的斜率如 α0.01缓解死亡 ReLU 问题。PReLU同 Leaky ReLU但 α 为可学习参数(-∞, ∞)同上α 通过梯度更新自适应负区间斜率。RReLUα 在训练时随机采样测试时固定平均(-∞, ∞)类似随机斜率具备正则化效果。Softmaxexi / ∑j exj(0,1) 且和为 1较复杂雅可比矩阵将任意实数向量转换为概率分布用于多分类输出层。为什么 ReLU 能缓解梯度消失因为它在正区间的导数为 1反向传播时梯度不会像 Sigmoid/Tanh 那样快速衰减允许深层网络训练。四、梯度下降与优化器4.1 核心思想梯度下降的目标是最小化损失函数 L(θ)。每次迭代参数沿负梯度方向更新θt1 θt - η ∇θ L(θt)其中 η 为学习率。直觉类比盲人下山每一步沿当前最陡峭方向迈出步长 η。4.2 三种变体变体每次更新使用数据优点缺点批量梯度下降 (BGD)全量训练集梯度准确收敛平稳计算代价高内存可能不足随机梯度下降 (SGD)单一样本速度快可在线学习梯度噪声大损失震荡剧烈小批量 SGD (Mini-batch)小批量如 32/64平衡效率与稳定性最常用需调节批量大小通常所说的 SGD 即指 Mini-batch SGD。4.3 面临的挑战局部最小与鞍点在高维空间中鞍点梯度为 0 但非极值远比局部最小常见普通梯度下降可能停滞。学习率选择太小收敛慢太大则震荡甚至不收敛。参数尺度不同不同参数可能需要不同更新步长。4.4 优化器详解4.4.1 Momentum动量法累积历史梯度产生速度效应帮助跃出平坦区域和鞍点。vt γ vt-1 η ∇θ L(θt)θt1 θt - vt。γ 通常取 0.9。比喻小球从山滚下惯性使其冲过小坑。4.4.2 Nesterov 加速梯度 (NAG)在 Momentum 基础上先按历史动量移动一步再计算该位置的梯度具有“前瞻”校正能力。vt γ vt-1 η ∇θ L(θt - γ vt-1)θt1 θt - vt。4.4.3 AdaGrad自适应学习率对频繁更新的参数减小学习率适合稀疏特征。Gt Gt-1 gt2gt ∇L(θt)θt1 θt - (η / √(Gt ε)) ⊙ gt。缺陷Gt 单调递增学习率会过早接近零导致训练停滞。4.4.4 RMSProp将累积改为指数加权移动平均避免学习率过快衰减。St β St-1 (1-β) gt2θt1 θt - (η / √(St ε)) ⊙ gt。β 常用 0.9使得学习率只反映最近梯度的幅度。4.4.5 Adam结合 Momentum 和 RMSProp维护一阶矩 mt梯度均值和二阶矩 vt梯度未中心化方差并进行偏差校正。mt β1 mt-1 (1-β1) gtvt β2 vt-1 (1-β2) gt2。偏差校正因初值为 0m̂t mt / (1 - β1t)v̂t vt / (1 - β2t)。更新θt1 θt - (η / (√v̂t ε)) m̂t。默认超参η0.001, β10.9, β20.999, ε1e-8。Adam 兼具快速收敛和逐参数自适应。4.5 优化器选择建议Adam通用首选收敛快超参鲁棒。SGD Momentum追求极致性能时配合精心调参学习率衰减、长训练可能获得更好泛化。4.6 学习率调度等间隔衰减每 k 个 epoch 学习率乘以 0.1。指定间隔衰减在固定 epoch如 [30, 60, 80]降低学习率。指数衰减ηt η0 · γt。余弦退火ηt ηmin 0.5(η0 - ηmin)(1 cos(tπ/T))可带热重启。线性衰减从初始值线性减小至终止值。4.7 梯度裁剪当梯度的 L2 范数超过阈值 τ 时将其缩放至 τg g · (τ / ‖g‖2)。有效防止 RNN 等结构中的梯度爆炸。五、卷积神经网络 (CNN)5.1 核心思想CNN 专为网格状数据如图像设计通过两个关键特性降低参数量并提取平移不变特征局部连接每个神经元仅连接输入的一个局部区域感受野。权值共享同一个卷积核在整个输入上滑动参数不变。5.2 卷积层一个卷积核滤波器大小为 F × F × Cin对输入进行点积运算生成特征图Feature Map。多个卷积核输出多个通道。超参数核尺寸 F、步长 S、填充 P。输出尺寸计算向下取整Hout ⌊(Hin - F 2P) / S⌋ 1同理计算宽度 Wout。填充目的控制输出尺寸保留边缘信息。常用的“SAME”填充使输出尺寸不变当 S1 时P (F-1)/2。5.3 池化层下采样操作减小特征图尺寸降低计算量和参数量同时提供一定平移不变性。最大池化 (Max Pooling)取局部窗口内的最大值。平均池化 (Average Pooling)取局部窗口内的平均值。通常池化层不使用填充步长等于窗口大小。5.4 典型结构输入 → [卷积 → 激活(ReLU) → 池化] × N → 全连接层 → 输出。5.5 感受野某层特征图上一个像素点在原始输入上映射的区域大小。计算公式递推RFl RFl-1 (Fl - 1) × ∏i1l-1 Si。深层特征具有更大感受野能捕捉全局语义信息。六、循环神经网络 (RNN) 与改进6.1 基本 RNN 结构处理序列数据核心是隐藏状态 ht 随时间传递。ht tanh(Wih xt bih Whh ht-1 bhh)ŷt f(Who ht bo)。所有时间步共享同一套参数 W。反向传播通过时间 (BPTT)梯度需沿时间步反向传播涉及矩阵连乘∂L/∂ht ∝ ∏ktT (WhhT diag(tanh(zk)))。当 Whh 的特征值小于 1 时连乘导致梯度消失大于 1 则导致梯度爆炸。这使得 RNN 难以捕捉长距离依赖。6.2 LSTM长短期记忆网络通过门控机制和细胞状态 Ct 缓解梯度消失。遗忘门决定丢弃多少旧记忆。ft σ(Wf · [ht-1, xt] bf)输入门决定采用多少候选记忆。it σ(Wi · [ht-1, xt] bi)C̃t tanh(WC · [ht-1, xt] bC)细胞状态更新线性求和梯度可直接流动Ct ft ⊙ Ct-1 it ⊙ C̃t输出门决定输出多少细胞状态作为隐藏状态。ot σ(Wo · [ht-1, xt] bo)ht ot ⊙ tanh(Ct)线性加法操作使得梯度可以跨越多个时间步而不易衰减。6.3 GRU门控循环单元将隐藏状态与细胞状态合并使用两个门控参数更少。重置门rt控制如何混合新旧信息。rt σ(Wr · [ht-1, xt])更新门zt控制保留多少旧状态、加入多少新状态。zt σ(Wz · [ht-1, xt])候选隐藏状态h̃t tanh(W · [rt ⊙ ht-1, xt])最终状态ht (1 - zt) ⊙ ht-1 zt ⊙ h̃t。当 zt 接近 1 时更依赖新候选状态接近 0 时保留过去。6.4 双向 RNNBi-LSTM / Bi-GRU由前向层和后向层组成每个时间步的最终表示是两者隐藏状态的拼接ht [ht→; ht←]。能同时捕捉过去和未来的上下文信息在序列标注、机器翻译等任务中效果显著。七、注意力机制与 Seq2Seq7.1 注意力机制的 Q/K/V 理解Q查询、K键、V值均来自同一输入的线性变换Q X WQK X WKV X WV。Q代表当前要“查询”的目标表达“我需要关注什么”。K代表每个位置的“索引”信息用于与 Q 匹配。V代表每个位置实际存储的“内容”信息。注意K 是连续向量不是离散索引通过点积与 Q 计算相似度。7.2 注意力计算通用框架计算相似度分数eij score(Qi, Kj)- 点积eij QiT Kj- 缩放点积eij QiT Kj / √dk防止点积过大进入 softmax 饱和区- 加性注意力eij vT tanh(W Qi U Kj)归一化注意力权重αij softmax(eij) exp(eij) / ∑k exp(eik)上下文向量输出contexti ∑j αij VjQ 与 K 的匹配决定聚焦何处最终提取的是 V 的加权内容。7.3 Seq2Seq 中的注意力传统编码器-解码器模型将整个输入压缩为固定向量存在信息瓶颈。引入注意力机制后编码器每个时间步输出一个隐藏状态 hj构成源信息的集合。解码器在生成第 i 个词时用当前状态 si 作为 Q所有编码器隐藏状态作为 K 和 Vαij exp(score(si, hj)) / ∑k exp(score(si, hk))ci ∑j αij hj。生成将上下文 ci 与解码状态结合预测输出词。这样每个生成步骤都能动态访问源序列的任意位置极大改善了长序列翻译、摘要等任务的性能。7.4 自注意力简介在自注意力中Q、K、V 均来自同一序列使每个位置都能关注同一序列内的其他位置是 Transformer 的核心机制。其缩放点积公式为Attention(Q, K, V) softmax(QKT / √dk) V。此总结整合了神经网络基础、CNN、RNN 及其变体、梯度下降优化器家族、注意力机制等深度学习关键知识点力求详尽准确可作为复习与查阅的结构化资料。

相关新闻

第37篇:原生AJAX从零手写源码——彻底弄懂前端网络请求底层

第37篇:原生AJAX从零手写源码——彻底弄懂前端网络请求底层

前言在前面章节我们使用过 Fetch、封装过 Promise 请求。但 Fetch 是现代API,真正前端网络底层根基永远是:AJAX(XMLHttpRequest)。绝大多数新人只会调用接口,从来不知道:网络请求底层是怎么建立的请求头、响…

2026/9/25 5:47:24 阅读更多 →
北京高新技术软件公司 校园物资申领系统 院校全过程管理开发

北京高新技术软件公司 校园物资申领系统 院校全过程管理开发

一、北京软件定制服务商介绍该项目的开发主体为北京一网天行科技有限公司,于2013年4月在北京市海淀区成立,公司在济南、宿州、西安设有分公司。一网天行具有13年的软件定制开发经验,是国家高新技术企业,证书编号为GR202311008731&…

2026/9/24 15:24:01 阅读更多 →
PARD2-Llama-3.1-8B vs 传统模型:为什么它能超越EAGLE-3达1.9倍性能?

PARD2-Llama-3.1-8B vs 传统模型:为什么它能超越EAGLE-3达1.9倍性能?

PARD2-Llama-3.1-8B vs 传统模型:为什么它能超越EAGLE-3达1.9倍性能? 【免费下载链接】PARD2-Llama-3.1-8B 项目地址: https://ai.gitcode.com/hf_mirrors/amd/PARD2-Llama-3.1-8B PARD2-Llama-3.1-8B是基于Llama3.1-8B架构优化的高性能推理模型…

2026/9/23 5:09:42 阅读更多 →

最新新闻

从烘焙到Lumen:Unity与UE4全局光照技术对比

从烘焙到Lumen:Unity与UE4全局光照技术对比

1. 这轮对比的背景:PBR之后,光照才是渲染的真战场1.1 为什么Part2要单独写全局光照Part1我们聊了Unity URP、HDRP和UE4在PBR材质模型、Shader着色、法线细节上的差异。评论区不少人问:材质表现都差不多了,为什么画面放在一起还是差…

2026/9/25 5:47:35 阅读更多 →
mac配置GLSL(OpenGL Shading Language)开发环境:TaoToken统一Key接入vscode与glslang校验

mac配置GLSL(OpenGL Shading Language)开发环境:TaoToken统一Key接入vscode与glslang校验

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

2026/9/25 5:47:35 阅读更多 →
Databasus 仓库 Git 提交规范:FEATURE/FIX/REFACTOR 前缀、分支命名与自动化版本发布工作流

Databasus 仓库 Git 提交规范:FEATURE/FIX/REFACTOR 前缀、分支命名与自动化版本发布工作流

数据库灾备 【免费下载链接】databasus PostgreSQL backup tool with Point-In-Time-Recovery and restore verification 项目地址: https://gitcode.com/gh_mirrors/po/databasus 点击查看 免费下载 本篇指南完整讲解 Databasus 开源仓库的 Git 提交与分支命名约定…

2026/9/25 5:47:35 阅读更多 →
ng-zorro-antd DatePicker 禁用状态实战:nzDisabled、nzDisabledDate 与 nzDisabledTime 全解析

ng-zorro-antd DatePicker 禁用状态实战:nzDisabled、nzDisabledDate 与 nzDisabledTime 全解析

UI组件前端 【免费下载链接】ng-zorro-antd Angular UI Component Library based on Ant Design 项目地址: https://gitcode.com/gh_mirrors/ng/ng-zorro-antd 点击查看 免费下载 本文围绕 ng-zorro-antd 日期选择器(DatePicker)官方示例 禁…

2026/9/25 5:47:35 阅读更多 →
SSE流式传输实战:AI响应、Nginx配置与EventSource健壮封装

SSE流式传输实战:AI响应、Nginx配置与EventSource健壮封装

1. 为什么今天还必须亲手写一个 SSE 服务?不是 WebSocket 更香吗? SSE(Server-Sent Events)这个词最近在 AI 应用开发一线高频出现,但很多人其实只停留在“它能流式输出大模型回答”这个表层认知。我去年带团队重构三…

2026/9/25 5:47:35 阅读更多 →
使用 VoltAgent 构建 YouTube 转博客 Agent:MCP 工具、共享记忆与 Supervisor 编排实战

使用 VoltAgent 构建 YouTube 转博客 Agent:MCP 工具、共享记忆与 Supervisor 编排实战

人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/voltagent 点击查看 免费下载 本…

2026/9/25 5:46:34 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →