1.SGD优化器
SGD 是最基础的优化器,它在更新模型时,先计算当前参数的梯度确定优化方向,再按照固定的学习率,朝着让损失减小的方向直接更新参数。它只依赖当前梯度,不记录历史信息,更新方式简单直接,但收敛速度较慢。
一、基础必问题(90%概率问到)
问题2:SGD是怎么更新模型参数的?
回答:
-
先拿一小批数据计算梯度,确定参数调整的方向;
-
按照提前设定好的固定学习率,朝着损失减小的方向更新参数;
-
一轮一轮重复这个过程,直到模型收敛。
它只看当前这一步的梯度,不记录之前的更新信息。
问题3:SGD的优点是什么?
回答:
-
原理简单,实现容易,计算量小,占用资源少;
-
训练过程稳定,不容易出现梯度爆炸;
SGD 之所以不容易出现梯度爆炸,主要有两点原因:
一是它基于小批量数据计算梯度,梯度值相对平稳,不会产生过大的梯度;
二是 SGD 不会累积历史梯度信息,每一步仅依靠当前梯度更新参数,避免了梯度不断叠加放大,因此训练过程更稳定,不易发生梯度爆炸。
问题4:SGD的缺点是什么?
回答:
-
收敛速度特别慢,需要训练很多轮;
-
只看当前梯度,容易在局部最优解卡住,跳不出来;
SGD 只依赖当前梯度更新参数,没有动量累积。当模型迭代到局部最优解时,当前梯度为 0,SGD 就会停止参数更新,无法借助惯性跳出局部最优,因此容易卡在非全局最优的位置,难以找到模型真正的最优解。
问题5:SGD的学习率太大或太小,会有什么问题?
回答:
-
学习率太大:步子迈得太猛,模型参数更新幅度过大,会跳过最优解;
-
学习率太小 :步子迈得太小,模型更新极慢,训练效率极低,还容易卡在局部最优。
当学习率过小时,参数的更新幅度会非常微小。若模型陷入局部最优解,该位置的梯度本身就很小,过小的更新幅度无法让参数跳出局部最优的区域,只能在极小范围内缓慢更新,最终长期停滞在非最优的位置,因此更容易卡在局部最优。
二、进阶对比题(高频)
问题6:SGD和批量梯度下降(BGD)有什么区别?
回答:
-
BGD是用全部训练数据计算梯度,梯度准确,但计算极慢,耗内存;
-
SGD是用单条/一小批数据算梯度,计算快、省资源,但梯度噪声大、震荡明显。
现在实际用的基本都是小批量SGD(Mini-batch SGD),兼顾速度和稳定性。
问题7:SGD和Adam的核心区别是什么?
回答:
-
SGD只有固定学习率,无动量,更新慢、震荡大;
-
Adam加入了动量(惯性) 和自适应学习率,会记录历史梯度,自动调整步长,收敛速度远快于SGD。
三、结合你项目的必问题(导师必问)
问题8:你的食物图像分类项目,为什么不用SGD,而用AdamW?
回答:
-
SGD收敛速度太慢,我的项目用了CNN和VGG迁移学习,参数量不算小,用SGD训练效率太低;
-
SGD梯度震荡大,调参麻烦,需要反复手动改学习率;
2.Adam优化器
它比 SGD(盲人拄拐)高级太多了,有两个核心超能力:
- 有惯性(动量):会记着之前往下走的方向,顺着劲儿冲,不会左右晃、不会卡在小土坑
- 自动调步子(自适应学习率):坡陡就自动迈小步,坡平就自动迈大步,不用你手动改
2. Adam 是怎么更新模型参数的?(和 SGD 对应格式)
- 先拿一小批数据算梯度,知道往哪走是下坡;
- 积累之前的梯度方向(加惯性),让下山更顺、不晃悠;
- 根据梯度大小自动调步子:坡陡步子小,坡平步子大;
- 朝着谷底方向更新参数,一轮轮重复,直到收敛。
3. Adam 的优点是什么?
- 收敛速度极快,比 SGD 快好几倍,训练效率超高;
- 自带动量,能跳出局部最优小土坑,不会像 SGD 一样卡住;
- 自适应调学习率,不用像 SGD 一样手动反复调参,省心;
- 训练过程更稳定,梯度震荡比 SGD 小很多。
4. Adam 的缺点是什么?
- 计算比 SGD 复杂,占用一点点更多资源;
- 权重衰减( 防止模型复杂过头、只会背答案的正则化手段,防止过拟合**)和梯度绑在一起** ,容易过拟合(模型学太死,只记住训练数据);
二、AdamW 优化器 超通俗讲解
1. AdamW 是什么形象?
AdamW = 带独立刹车的智能电动车 它完全继承 Adam 的所有优点 (快、有惯性、自动调步子),只改了一个地方 :把原来和油门绑在一起的刹车(权重衰减),单独拆出来独立控制,刹车更管用!
2. AdamW 是怎么更新模型参数的?
- 和 Adam 一模一样:算梯度 + 加惯性 + 自动调步子,更新参数;
- 额外独立加一步刹车:单独限制模型的权重不要太大,防止学太飘;
- 一轮轮重复,又快又稳地走到谷底。
3. AdamW 的优点是什么?
- 保留 Adam所有速度优势,收敛一样快(有动量,可自动调节学习率);
- 权重衰减独立生效,完美解决 Adam 过拟合的问题;
- 泛化能力比 Adam 强,比 SGD 还省心;
- 现在深度学习、图像分类、人脸识别最常用的优化器。
4. AdamW 的缺点是什么?
几乎没明显缺点,就是比原始 SGD 计算稍复杂一点,但完全可以忽略。
三、SGD / Adam / AdamW 一句话对比(必背)
- SGD:只有固定学习率,无动量,更新慢、震荡大;
- Adam:智能电动车,快、自动调步、但刹车不好用,易过拟合;
- AdamW :带独立刹车的智能电动车,又快又稳,刹车管用,不过拟合。
四、复试面试关于 Adam/AdamW 的高频提问 + 回答(和 SGD 格式一致)
问题 1:什么是 Adam 优化器?
回答:Adam 是结合了动量和自适应学习率的优化器,会累积历史梯度形成惯性,还能根据梯度大小自动调整更新步长,收敛速度远快于 SGD。
问题 2:Adam 是怎么更新模型参数的?
回答:先通过小批量数据计算梯度,累积历史梯度形成动量避免震荡,再根据梯度大小自适应调整学习率,朝着损失减小的方向更新参数,不断迭代直到收敛。
问题 3:Adam 相比 SGD 的优点是什么?
回答:Adam 收敛速度更快,自带动量能跳出局部最优,还能自适应调整学习率,不需要像 SGD 一样手动反复调试参数,训练效率和稳定性都更好。
问题 4:Adam 有什么缺点?
回答:Adam 的权重衰减和梯度耦合在一起,正则化效果不好,容易导致模型过拟合,泛化能力比 SGD 稍差。
问题 5:什么是 AdamW?它和 Adam 的区别是什么?
回答:AdamW 是 Adam 的改进版本,核心区别是把权重衰减和梯度更新解耦,独立实现正则化。它保留了 Adam 快速收敛的优点,同时解决了 Adam 过拟合的问题,泛化能力更强。
问题 6:你的项目为什么用 AdamW,不用 SGD 和 Adam?
回答:我的图像分类项目参数量较大,SGD 训练太慢;Adam 容易过拟合;AdamW 既快又能有效防止过拟合,兼顾训练效率和模型泛化能力,所以选择 AdamW。