优化算法、损失函数、优化器的搭配建议
前言
- 我们对不同的算法和函数还有优化器的一般搭配组合做了总结。
一、损失函数与激活函数的搭配方式
- 二分类任务:
- 激活函数:sigmoid
- 损失函数:BCEWithLogitsLoss 或 BCELoss
- 多分类任务:
- 激活函数:softmax
- 损失函数:CrossEntropyLoss
- 回归任务:
- 激活函数:线性输出或 ReLU
- 损失函数:MSELoss
- 多标签分类任务:
- 激活函数:sigmoid
- 损失函数:BCEWithLogitsLoss
二、网络优化算法中的搭配
-
Momentum(带动量的梯度下降):
- 常与 ReLU 激活函数和 CrossEntropyLoss(分类任务)搭配使用。
-
Adam(Adaptive Moment Estimation):
- ReLU 激活函数 + CrossEntropyLoss(分类任务)或 MSELoss(回归任务)。
- Adam 适用于大多数激活函数和损失函数,尤其适合用于复杂网络。
-
RMSprop:
- ReLU 激活函数 + CrossEntropyLoss(分类任务)或 MSELoss(回归任务)。
-
Adagrad:
- 常与 ReLU 激活函数和 CrossEntropyLoss(分类任务)或 MSELoss(回归任务)搭配。
三、激活函数、损失函数与优化器的搭配
-
分类任务:
- 二分类(2类):
- 激活函数:sigmoid
- 损失函数:BCEWithLogitsLoss 或 BCELoss
- 优化器:SGD、Adam、RMSprop
- 多分类(N类):
- 激活函数:softmax
- 损失函数:CrossEntropyLoss
- 优化器:SGD、Adam、RMSprop
- 二分类(2类):
-
回归任务:
- 激活函数:通常不使用激活函数或使用 ReLU(对正值的预测)
- 损失函数:MSELoss(均方误差损失)
- 优化器:SGD、Adam、RMSprop
-
多标签分类任务:
- 激活函数:sigmoid(每个标签独立)
- 损失函数:BCEWithLogitsLoss
- 优化器:Adam、SGD
四、选择优化器的主要依据是
- 任务类型:不同的任务(分类、回归等)可能对优化器的选择有所不同。
- 数据集规模和训练效率:某些优化器(如 Adam)在大数据集和复杂模型上训练时表现更好,而 SGD 通常在数据量较小的情况下表现稳定。
- 模型结构:例如,对于非常深的网络,某些优化器(如 Adam、RMSprop)能帮助更快地收敛,避免梯度消失或爆炸的问题。
总结
- 我们在不同的任务以及不同的任务中,要选取与之匹配的损失函数以及激活函数还有优化算法,只有平衡了这些东西,模型才能有更好的输出。
2330

被折叠的 条评论
为什么被折叠?



