![](https://csdnimg.cn/release/download_crawler_static/88991541/bg9.jpg)
分类问题名称 输出层使用激活函数 对应的损失函数
二分类 sigmoid 函数 二分类交叉熵损失函数(binary_crossentropy)
多分类 Softmax 函数 多类别交叉熵损失函数(categorical_crossentropy)
多标签分类 sigmoid 函数 二分类交叉熵损失函数(binary_crossentropy)
(多标签问题与二分类问题关系在上文已经讨论过了,方法是计算一个样本各个标签的
损失(输出层采用 sigmoid 函数),然后取平均值。把一个多标签问题,转化为了在每个标
签上的二分类问题。)
7.6 LR 的损失函数?它的导数是啥?加了正则化之后它的导数又是啥?
Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法。
Logistic 回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问
题,利用 Logistic 函数(或称为 Sigmoid 函数),自变量取值范围为(-INF, INF),自变量的
取值范围为(0,1),函数形式为:
7.7 交叉熵损失 CrossEntropyLoss
当训练有 C 个类别的分类问题时很有效. 可选参数 weight 必须是一个 1 维 Tensor,
权重将被分配给各个类别. 对于不平衡的训练集非常有效。
在多分类任务中,经常采用 softmax 激活函数+交叉熵损失函数,因为交叉熵描述了两
个概率分布的差异,然而神经网络输出的是向量,并不是概率分布的形式。所以需要 softmax
激活函数将一个向量进行“归一化”成概率分布的形式,再采用交叉熵损失函数计算 loss。
torch.nn.CrossEntropyLoss(weight=None,ignore_index=-100, reduction='mean')
参数:weight (Tensor, optional) – 自定义的每个类别的权重. 必须是一个长度为 C 的
Tensor;ignore_index (int, optional) – 设置一个目标值, 该目标值会被忽略, 从而不会影响到
输入的梯度;reduction-三个值,none: 不使用约简;mean:返回 loss 和的平均值;sum:返回
loss 的和。默认:mean。
随着网络层数的加深,目标函数越来越容易陷入局部最优解,同时,随着层数增加,梯
度消失问题更加严重,特别是激活函数为 sigmoid/softmax/tanh 等,使得原理输出层的网络
参数得不到有效的学习。因此为了改善这个问题,诞生了许多方法,正则化、dropout、设
计特殊网络、修改训练算法等。
8、优化算法
8.1 除了 SGD 和 Adam 之外,你还知道哪些优化算法?
主要有三大类:
基本梯度下降法,包括 GD,BGD,SGD;
动量优化法,包括 Momentum,NAG 等;
自适应学习率优化法,包括 Adam,AdaGrad,RMSProp 等
8.2 GD 法
在机器学习算法中,对于很多监督学习模型,需要对原始的模型构建损失函数,之后通
过优化算法对损失函数进行优化,寻找到最优的参数。求解机器学习参数的优化算法中,使
用较多的是基于梯度下降的优化算法(Gradient Descent, GD)。
梯度下降法的含义是通过当前点的梯度方向寻找到新的迭代点。
基本思想可以这样理解:我们从山上的某一点出发,找一个最陡的坡走一步(也就是找
梯度方向),到达一个点之后,再找最陡的坡,再走一步,直到我们不断的这么走,走到最
“低”点(最小花费函数收敛点)。