Pytorch框架与经典卷积神经网络与实战1

发布时间:2026/10/12 5:30:04

Pytorch框架与经典卷积神经网络与实战1 2.1 全神经网络整体结构全连接神经网络输入层输入的数据隐藏层图中中间的神经元都是我们的隐藏层输出层输出的结果2.2 全连接神经网络的结构单元神经元神经网络的单元结构 输入往往有很多输入x1 x2 x3 参数×w12 w13 去求和 b1偏置。最后套上激活函数得a。我们希望我们的y是正确的但是输入是确定的所以我们要通过w和b找出一组最优的参数使我们的结果最优。那也可以假设我们第一层神经元是a1第二层就是a2一层一层进行传递直到最后一层结果接近我们的真实值。无论是做分类还是做回归我们做的都是这个事情。2.3 为什么要加入非线性激活函数不同的激活函数对网络的影响是很大的。往往激活函数都是非线性的相对的也有线性的万事不绝对从不专业的角度解释线性函数就是函数在画图的时候是一条直线为方便理解并不专业吗那非线性就不是一个直线比如说二次函数指数函数往往使用非线性的激活函数会提高我们隐藏层的效率。假设我们神经网络是线性函数ykx神经网络有三成那就是嵌套了3次假设c2k8会发现这个线性函数是等价的那假设我们的神经网络有100层那最后不就等价于一层那就无法发挥我们神经网络层数深的这个效果了所以往往神经网络越深效果越好但是也并不是绝对的resnet2.4 Sigmoid 激活函数学习激活函数最主要看图长什么样子公式长什么样子导数是什么样子因为在我们深度学习当中导数是为了求我们这个参数的看导数图Sigmoid 导数最大值只有 0.25。 当z很大或很小落在函数左右两端饱和区y接近 0 或 1(y(1-y)约等于0)梯度几乎变成 0。 多层网络反向传播时梯度不断相乘会越来越小前面层的权重几乎不更新网络学不到东西。输出永远大于 0。 如果上一层输出全是正数传给下一层神经元算出来的梯度会全部同号权重 w 会全部一起增大 / 一起减小震荡收敛变慢。一方面是梯度本身最大值就 0.25梯度本身就偏小 另一方面因为输出恒正带来的梯度方向问题参数更新来回震荡收敛速度慢训练耗时更长。2.5 双曲正切激活函数 Tanh 函数通过函数图像来看值域实在-1到1之间导数图像在0-1之间图像与sigmod函数都长的差不多寻找最优的w和b是通过导数去找的该激活函数的导数接近0的位置会更大一点那么训练就会比sigmod函数要快很多sigmod有的其他优势和问题该函数也会有1.依然存在梯度消失问题看导数图当z很大或者很小函数进入饱和区y趋近 1 或 - 1。代入导数公式导数约等于0多层网络反向传播时梯度不断相乘梯度会变得极小浅层权重很难更新。为什么 Tanh 训练比 Sigmoid 更快核心有两个原因最大导数更大零中心化解决梯度同号震荡1️⃣ 最大梯度值不一样 Sigmoid\(yy(1-y)\)最大导数只有 0.25z0 处Tanh\(y1-y^2\)最大导数是 1z0 处梯度下降更新公式梯度越大每次参数 w 更新的步长就越大。 在输入落在 z0 附近非饱和区的时候Tanh 梯度是 sigmoid 的 4 倍一次更新走更远收敛更快。2️⃣ 最重要Tanh 是 0 中心化值域 (-1,1)Sigmoid 输出恒 00,1假设隐藏层所有神经元都用 Sigmoid Sigmoid 输出永远 0那么传到下一层的输入全部是正数。 经过链式求导后算出来的所有梯度符号全部相同。 权重 w 只能一起增加或者一起减少参数更新来回震荡走弯路收敛很慢。而 Tanh 输出是 (-1,1)输出有正有负均值接近 0。 下一层得到的输入正负都有梯度可以有正有负。 权重可以有的增大、有的减小参数更新方向更灵活不容易震荡收敛更快。“我们训练的目标确实是收敛到损失函数极小点此时梯度≈0 但是「收敛」这个词不只代表「最终抵达最低点」还包含用多快的路径走到最低点。”下面拆开讲清楚 Sigmoid 为什么震荡、Tanh 为什么更稳1. 目标找损失最低点梯度≈0梯度下降的目标不断更新 w直到也就是损失的谷底。 但路径有好坏之分坏路径来回折返、左右摇摆震荡走很久才到谷底好路径方向稳定稳步向谷底前进2. Sigmoid 输出全为正数带来的震荡原理假设上一层所有神经元用 Sigmoid输出 \(a0\)。下一层的输入是\(z w*a b\)链式求导因为 a 永远 0 这一层所有权重的梯度符号全部一模一样如果梯度是负所有 w 一起变大如果梯度是正所有 w 一起变小想象二维损失曲面你只能全部向右走或者全部向左走不能一部分左、一部分右。就像下山你只能横向整体移动没法灵活调整方向会出现 一步走多了越过谷底下一步反向又往回跳 →来回震荡绕弯路。 虽然最终理论上也能收敛到最低点但是需要更多迭代很慢。3. Tanh 输出有正有负解决这个问题此时 a 可正可负不同 w 对应的梯度符号可以不一样。 一部分权重梯度为正一部分为负 有的 w 增大有的 w 减小。相当于下山的时候可以自由调整每个方向的步伐不会强制所有参数同步同向更新震荡更少更快抵达损失谷底。/p
延伸阅读

更多相关文章

2026/10/12 5:30:04

给编程智能体写MCP插件:余额查询、任务面板与番茄钟实战

最近我给手头那个支持 MCP 的编程智能体写了三个插件:余额胶囊、任务面板、番茄钟。三个东西单看都不复杂,一个负责查 DeepSeek API 剩多少钱,一个把 AI 的思考过程拆成看得见的任务清单,另一个就是最朴素的番茄计时。但它们凑在一…

2026/10/12 5:30:04

Soot模块分析:Java 9+ JPMS静态分析实战指南

1. 项目概述:Soot 静态分析框架中的模块分析到底在分析什么?“Soot 静态分析框架(七)模块分析”这个标题,乍看像是一篇技术文档的章节编号,但背后藏着一个被很多初学者忽略的关键事实:Soot 本身…

2026/10/12 5:30:04

Codex多场景自动化生产实战:从Prompt设计到批量编排

1. 先想清楚:Codex到底在帮我们“生产”什么“闪学it-Codex 多场景自动化生产实战”,这个标题拆开看,其实藏着两个关键信息。一个是“多场景”,说明不是写单个脚本、做单个功能演示,而是要把Codex横着切开,…

2026/10/12 7:55:11

CompletableFuture原理与实践:从Future痛点到底层状态机

1. 项目概述做后端开发的朋友,多少都遇到过这种场景:一个接口需要同时调第三方订单服务、库存服务、用户积分服务,最后把结果拼在一起返回。最朴素的写法是依次调用,一个服务 200ms,三个就是 600ms,再加上数…

2026/10/12 7:55:11

开放式代码评审:从质量门禁到团队协作的信息交换协议

1. 为什么我把代码评审的默认形态改成了“开放式”1.1 评审不再只是提意见,而是让“上下文”被共享先说一个我观察了很久的现象:很多团队的代码评审,表面上有流程、有平台、有CI卡点,但实际操作中,它往往退化成了“提交…

2026/10/12 7:55:11

Playwright电商动态数据采集实战:从接口监听到DOM解析

干爬虫这行的都知道,现在真正让人头疼的不是那些静态页面,而是像电商百亿补贴、秒杀会场这种页面——价格是 JS 动态算出来的,列表是滚动加载的,数据是接口加密返回的。你用requests去请求,拿回来的 HTML 基本就是个空…

2026/10/12 7:50:11

从零搭建Gazebo仿真世界:ROS机器人开发必知的建模与调试实战

做机器人开发这几年,我踩过最多的坑不是在真机上,而是在真机之前。算法在仿真里跑得好好的,一搬到实体车就原地打转;实体调参要占用实验室一整天,改一个 PID 就得重复跑几十次实验。后来我把大部分调试工作挪到了 Gaze…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/12 0:04:22

绝缘子缺陷检测数据集清洗与工业级训练实战指南

简介:本资源是面向电力AI研发人员、工业视觉工程师及智能巡检系统开发者的绝缘子缺陷检测专用YOLO格式数据集,解决无人机航拍场景下绝缘子破损、污闪、积雪等9类典型缺陷的精准识别与定位难题。数据集共2139张真实巡检图像(含训练/验证/测试集…

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

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

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