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

AI入门——如何计算神经网络的参数

如何计算神经网络的参数

在上一篇文章中,我们了解到神经网络本质上是一个由大量参数(权重 w和偏置 b)构成的复杂非线性函数。那么,这些参数究竟是如何确定下来的呢?

始终记住,我们的目标是找到一组参数,使得网络的预测结果尽可能接近真实数据。如下图所示,显然左边的拟合效果更好。

为了量化“拟合得好不好”,我们需要一个衡量标准。对于单个样本,可以用预测值与真实值之差的绝对值来表示误差。将所有样本的误差累加起来,就得到了整体误差的度量。这个函数就叫做损失函数——用于表示预测数据与真实数据误差的函数。为了避免绝对值带来的不可导问题,通常采用平方来代替绝对值,然后对所有样本取平均,这样就得到了均方误差——一种常用的损失函数

我们将损失函数记为 L。从参数的角度看,L 是关于所有 w 和 b 的函数:

损失函数表示的是预测值与真实值的误差,其值越小,说明模型的预测越准确。因此,我们的任务转化为:找到使损失函数 L 最小的那一组 w和 b

如果参数很少,理论上可以通过令偏导数为零直接求解。例如,在线性回归中,我们正是用这种方法求解析解的。然而,神经网络的损失函数通常极其复杂,涉及成千上万个参数和非线性激活函数,根本无法直接求解。这时,我们需要一种更通用的方法——梯度下降

梯度下降

梯度下降的核心思想很简单:既然无法一步到位,那就一步步朝误差减小的方向调整参数。

假设我们只关注某一个参数 w,当前取值下损失函数值为 L。如果我们让 w 增大一点点,发现 L 也随之增大,那就说明应该反过来减小 w;反之,如果增大 w 使 L 减小,那我们就继续朝这个方向调整。而损失函数L随着参数w变化而变化的程度,其实就是损失函数对w的偏导数。而我们要做的,就是让w和b不断地向偏导数地反方向去变化。具体变化的快慢,我们再增加一个系数(学习率)来控制。这些偏导数所构成的向量就叫做梯度。不断变化w和b使得损失函数不断减小,进而求出最后的w和b,这个过程就叫做梯度下降。这个过程用数学语言描述,就是利用损失函数对 w 的偏导数(即梯度)来指导参数的更新方向——朝着梯度的反方向移动。

其中 η 是学习率,控制每一步调整的步长。将所有参数的偏导数组合成一个向量,就是梯度。沿着梯度的反方向更新所有参数,就能使损失函数逐渐下降。这个过程反复进行,直到损失函数收敛到足够小,我们就得到了训练好的模型。

反向传播

现在问题变成了如何求偏导数。梯度下降的关键在于计算每个参数的偏导数。在深度神经网络中,参数数量巨大,直接逐个计算几乎不可能。幸运的是,借助链式法则,我们可以高效地求出所有梯度,这就是反向传播算法。

如图,要求L对w1的偏导,只需要用链式法则分别求图中的三个偏导,再相乘就好了。从输出层开始,我们可以由右向左逐层计算这些偏导数。有趣的是,计算前一层的梯度时,会用到后一层的某些中间结果,这些结果可以“反向传播”给前层复用,所以可以让这些值从右向左传播,这个过程就叫做反向传播

总结

综上所述,神经网络的训练包含两个核心阶段:

  1. 前向传播:通过前向传播根据输入x计算输出y。
  2. 反向传播:根据预测值与真实值的误差(损失函数),利用链式法则计算每个参数的梯度,然后按照梯度下降法更新所有参数。

每一轮这样的操作称为一次训练迭代。经过足够多轮的迭代,损失函数不断下降,最终,经过多轮训练使得损失函数足够小,就得到了我们想要的函数。

http://www.jsqmd.com/news/604101/

相关文章:

  • 短链接day-06
  • 2026 RAG 全景落地教程(非常详细),从大模型基座到 Agent 记忆从入门到精通,收藏这一篇就够了!
  • 书匠策AI:解锁期刊论文“通关秘籍”,让学术写作像“搭积木”一样简单!
  • 实战解析:如何绕过exit()死亡函数实现PHP文件写入(附完整Payload)
  • Vivado硬件调试避坑指南:为什么你的ILA信号总被优化?(附解决方案)
  • 别再手写MCP适配层了!2024最新Python企业模板已内置SPI扩展点、链路追踪埋点与熔断降级策略
  • 编写程序实现瑜伽垫体位标记,精准定位,输出:家用瑜伽辅助,不用教练也标准。
  • Golang GORM怎么做Scopes复用_Golang GORM Scopes教程【推荐】
  • 018篇:选择器的秘密:为什么你的点击会失效?如何写出稳定的选择器
  • 【车载嵌入式C++算法优化黄金标准】:ISO 26262 ASIL-D合规下的零堆分配、确定性调度与L1/L2缓存亲和性调优全指南
  • 【深度】GPT-6 定档4月14日 × Claude 4小时攻破FreeBSD:CUDA转CANN迁移实战 + AI安全防御架构全解
  • Fluent仿真总发散?可能是Pressure Inlet的回流在捣鬼!手把手教你排查与修复
  • 阿里云千问大模型API申请避坑指南:从注册到调用的完整流程
  • AI赋能测试:让快马平台智能生成覆盖边界与异常的API测试套件
  • 网络安全学习笔记第一阶段之html网页基础
  • Python flask django大学生一体化服务系统 校园生活服务平台 选课 失物招领 自习室预约,实习系统y98ioc9x
  • 深入解析C语言位运算与操作符
  • 【实测】GitNexus实测:拖入GitHub链接秒出代码知识图谱,今天涨了857星
  • 告别论文 AI 痕迹 + 重复率双杀!Paperxie 四大功能硬核拆解,本科生闭眼冲
  • 告别龟速下载!用国内镜像5分钟搞定QT6在线安装(附命令行参数详解)
  • MCGS 基于PLC的风力发电控制系统 带解释的梯形图程序,接线图原理图图纸,io分配
  • 从零基础到上手:Trae AI编程编辑器新手入门实时预览网页文件
  • DDD 架构重构实践:AI Skills 如何赋能DDD设计与重构
  • 雀魂AI助手Akagi:革新麻将竞技的智能决策系统
  • RAG 不需要向量库?无向量检索新范式全攻略(非常硬核),大模型检索从入门到精通,收藏这一篇就够了!
  • OpenClaw+千问3.5-9B:个人日程智能管理系统
  • 效率提升:让快马ai为你生成鸿蒙pc版文件管理器的核心界面代码
  • 别再写runtime循环了!用constexpr生成LUT表的7步安全范式(含SPI驱动、FFT预计算、游戏状态机全场景代码模板)
  • 西门子S7_200PLC与MCGS组态在污水处理控制设计中的应用
  • 破局双检!Paperxie 四大核心:毕业论文降重 + 降 AIGC 双效突围,改写学术合规新生态