第313章 第一期理想基金项目成果
在优化算法方面,历景铄最初采用的是传统的随机梯度下降也就是 SGD 算法。
该算法虽然能在理论上逐步逼近最优解,但在实际训练过程中,由于每次只随机选取一个样本进行参数更新,致使梯度的计算过程掺杂了大量噪声,每一次参数更新的方向,都可能因为单个样本的独特性而偏离了通往最优解的正确路径。
这就导致了模型的收敛过程变得极不稳定,训练曲线犹如汹涌波涛中的小船,上下剧烈波动,这样的训练不仅会耗费大量宝贵的时间,还消耗了诸多计算资源,更为糟糕的是,根本无法确保最终能够探寻到全局最优解。
在历经了一段时间的困扰后,历景铄在秦奕的建议下,决定引入小批量随机梯度下降算法。
相比传统 SGD 算法,这一算法不再局限于一次仅使用一个样本,而是每次从训练数据集中选取一个小批量的样本,比如 32 个或 64 个样本,然后每次训练迭代都会依据这一小批量样本计算出的平均梯度来对模型参数进行更新。
这样一来,小批量样本的平均梯度能够在一定程度上抵消单个样本梯度的噪声,使得参数更新的方向更加稳定。
不过历景铄并未满足于此,后续为了进一步提升小批量随机梯度下降算法的性能,他潜心钻研,引入了自适应学习率调整策略。
学习率是神经网络模型训练里面一个非常关键的因素,简单来说,学习率就像是模型在学习过程中的 “步伐大小”,当模型通过计算后的梯度来更新参数时,学习率决定了每次参数更新的幅度。
想象一下,模型学习就如同一艘寻宝船在海上寻宝,问题的最优解这个宝藏藏在大海上的某个岛屿内。
如果学习率设置得过大,在训练初期,由于距离最优解还比较远,大步前进确实可能会让模型快速地靠近目标区域,就像在茫茫大海上,寻宝船一开始朝着大致方向奋力前行,能快速缩短与宝藏岛屿的距离。
但当逐渐接近最优解时,过大的步伐就会成为阻碍,类似于你寻宝时已经隐约看到宝藏所在的小岛轮廓,却因为步子太大,一下子就越过了最佳登陆点,然后又不得不折返回去,如此反复,模型便会在最优解附近来回振荡,难以精准地收敛到精确的最优解。
相反,如果学习率设置得过小,模型就像一艘移动速度极慢的寻宝船,虽然这样能保证每一步都走得很稳,不会轻易错过最优解,但是前进的速度会非常慢,需要花费大量的时间和计算资源才能达到最优解,甚至可能在有限的训练时间内根本无法到达。
历景铄设计的自适应学习率策略,就是根据训练的进展动态调整这个 “步伐大小”。