惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
爱范儿
爱范儿
量子位
Martin Fowler
Martin Fowler
V
V2EX
博客园 - 三生石上(FineUI控件)
I
InfoQ
MongoDB | Blog
MongoDB | Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
H
Help Net Security
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
Engineering at Meta
Engineering at Meta

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测
图形AI粗读丨神经网络训练(续)
Hakumen · 2025-05-20 · via 机核

前言

上周由于略微感冒,稍微延迟了一下更新的节奏。在上一篇中,主要读到了基于梯度下降的方法来对神经网络进行训练的基础思想。

这次的课件是随后一篇,话题是关于神经网络训练的一些实践性的补充内容。

本文还是以翻译PPT页内容为主,打星号的部分则是我的补充说明。

1 通用近似定理——Universal approximation theorem

(红字)1989年——首个神经网络通用近似的论文被提出了。

通用近似原理指出,无论我们尝试进行何种函数的机器学习,我们都能确保有一个足够大的MLP(多层感知机)能表达出这一函数。

*简单来说这一理论确认了神经网络在任意复杂函数拟合领域的通用可行性。这里我补充一段知乎AI的详解:

通用逼近定理是指神经网络理论中的一个基本定理,它表明给定足够的网络复杂性,特别是隐藏层的神经元数量,前馈神经网络能够以任意精度逼近任何连续函数。这意味着,只要有足够的神经元,一个单隐藏层的前馈神经网络可以近似任何连续函数,无论该函数多么复杂。这一定理是多层感知机(MLP)的数学基础,证明了神经网络作为一种函数逼近器的潜力。它强调了神经网络通过增加隐藏层神经元的数量来提高逼近能力的能力。

尽管通用逼近定理提供了理论上的保证,实际应用中仍需考虑网络的训练、激活函数的选择以及过拟合等问题。此外,该定理不涉及函数的外推能力,即超出训练数据范围的预测能力,也不保证网络能够泛化到未见过的数据。

(红字)1996年——人们你提出了“没有免费午餐”(NFL)定理。

没有免费午餐定理——没有一种通用的机器学习算法是在任意情况下都好于其它算法的。

*这个理解起来就不复杂了,即机器学习需要具体问题具体分析。

由于理论上神经网络能表达任意函数,我们该如何使模型的学习能较好地处理(基于)现实世界的问题所生成的数据呢?

2 选择模型容量:避免过拟合和欠拟合——Selecting model capacity: avoid overfitting and underfitting

基于模型的分类方法:将X和O区分开。

  1. 绘制直线(线性方程)

  2. 绘制抛物线(二次方程)

  3. 绘制任意曲线

这些模型的表示容量是递增的。

(从图中3个方案)该选择哪种模型用于区分X和O的方案?

图(a)——欠拟合:过于简单,不足以描述数据。

图(c)——过拟合:过于复杂,无法概括成测试集合。

(过拟合)是神经网络面临的核心挑战,因为它有着过多的参数。

一个过拟合的模型会学习到什么?——如何建模噪声!

一个数据集合是如何引入噪声的?

为检测出过拟合,需要通过分析模型的误差(损失)——通过在训练数据和测试数据上进行测试的方式:

  • 随着训练步骤增加,训练数据的误差会如何表现?——误差收敛。

  • 随着训练步骤增加,测试数据的误差会如何表现?——误差收敛之后又放大。

  • 为何训练误差收敛,而测试误差放大?——训练数据中的建模噪声(例如:过拟合),其降低训练误差是——以损失了对未观测过的测试数据的概括能力为代价的。

更早停止(训练),或添加训练数据。这个系列后续会介绍更多的相关技术。

*下面再看看欠拟合问题。

*课件中第一句overfitting应该是写错了。

为检测欠拟合,需要通过分析模型的误差(损失)——通过在训练数据上进行测试的方式(和测试数据可作为备选):

  • 当训练步骤增加时,训练数据的误差会如何?——误差保持在高位。

  • 同样的,用测试数据训练多步骤,误差也会保持在高位。

增加表达的复杂度,例如增加神经网络的层或者单元数量。

目标:训练一个合适的模型,它有着既不太小又不太大的容量,能在预测之前没有“见过”的测试数据时有足够好的概括能力。

3 选择模型超参数——Selecting model hyperparameters

核心挑战:如何选择模型以避免重复观察测试数据(会导致过拟合)?

*围绕这一思路,后面的方法主要就是试图在一轮训练中避免多次执行训练数据。

(蓝框)模型超参数(选择的)。例如:

  • 层的数量

  • 层内单元的数量

  • 激活函数

  • 批次尺寸

  • 学习速率等

(右侧)模型参数(训练的)——权重、偏置。

对于统计性强的结果:

(蓝框)小的训练数据集:交叉验证。

*如图,浅绿色是训练数据,这里被划分为5份;依次选择其中一个fold作为该轮的“测试数据”,用于测试超参数情况,剩下4份用于该轮模型训练。

*fold直译是“折叠”,这里可以理解成“划分好的一份”。中文互联网对这一方法的通常翻译是“K折交叉验证”。

*如图,当划分成3份时,每次使用2份作为训练数据、1份作为测试数据,然后执行3次。

模型性能:在所有折叠的“测试”数据上都有较好的表现。

*因为每一个fold都作为训练数据执行了2次,剩余1次作为了测试数据。

创建多少个子集是合适的?(*图中是5个,后面还略去了10个的情况)

迭代多少次是训练和测试是合适的?

使用大的K值的优点和缺点各是什么?

(蓝字)通常来说,选择在全部fold数据集上整体结果最好的超参数。

*由于课件内容讲得比较笼统,这里补充一段中文互联网的说明:

...K的标准值为10,一般默认都是这个值,但是也要看数据集大小情况。对于非常大的数据集,可以使用K的值为5 ,因为这样可以在获得模型平均性能的准确估计的同时降低在不同折上多次拟合和评估模型的计算成本;如果数据相对较小,可以适当增加K的值,但是如果k的值越大,会导致交叉验证算法产生的模型性能估计具有更高的方差;对于非常小的数据集,使用一次叉验证( LOOCV )技术)。

对于统计性不强的数据(或小的数据集),则使用一次性训练、验证集划分。

将训练数据分为“训练”和“验证”集合。

  • 超参数选择:并不同的超参数训练模型,并在验证数据集上进行测试,以找到最好的超参数。

  • 最终模型:使用选择好的超参数,用训练和验证数据的合集再训练一次。

*这一方法还是一种交叉验证思路。分层的意思是说:在每一折中都保持着原始数据中各个类别的比例关系,比如说:原始数据有3类,比例为1:2:1,采用3折分层交叉验证,那么划分的3折中,每一折中的数据类别保持着1:2:1的比例,这样的验证结果更加可信。

4 学习效率:优化方法——Learning efficiently: optimization methods

由于有着巨量的参数,算法(模型)训练可能会耗费从小时到月的大量时间。

(蓝框)使用计算好的梯度来更新参数。

*关于梯度下降相关,可以去看上一篇。网络上也有很多视频动画的方式讲解梯度下降的内容。

*图表中的名称是各种不同的梯度下降算法。这里不一一展开了。

Vanilla方法:随着梯度的影响越来越小,步长也逐渐减少。

Momentum优化——类比:沿着山体向下滚球,它会累计动量

*它有如下优点:

  1. 加速收敛:在梯度方向一致的区域,动量项会累积,使得更新步长增大,从而加速收敛。

  2. 减少震荡:在梯度方向变化的区域,动量项会平滑更新方向,减少震荡。

  3. 逃离局部最优:动量项的累积效应可以帮助算法跳出局部最优解。

*这里用类比动量的方式引入了mu项和v项——前者类比成摩擦力,后者类比成速度积累。

*这里梯度不直接改变速度,而是影响加速度。

步长衰减:执行若干个Epoch(*完整遍历数据集的过程)后,减少学习速率。

  • 指数衰减

  • 1/t衰减

  • 逐参数适配学习速率

在(比较好的)训练过程中损失函数会发生什么?——它会收敛。

结语

总的来说,这一篇主要聊了两个模型训练中的实践话题——如何选择超参数、如何更快进行梯度下降过程。

对于超参数选择来说,从目前的内容来看它还不可避免一些人为预设的部分。人们在模型训练的过程中能做的是,使用例如“交叉验证法”之类的方法,来从中挑选相对最优的超参数组合。

而对于梯度下降而言,除了确定合适的学习速率和迭代步长外,人们也发明了各种方式来加速这一过程——例如之前提到的Momentum(动量)方法。

下一篇估计会在下周更新,届时就会读到卷积神经网络了。

下面是资料链接: