【深度学习】02-05-类神经网络训练不起来怎么办?(损失函数对训练的难易有影响 & 批标准化)-李宏毅老师21&22深度学习课程笔记

总结

分类和回归做的事情都差不多,不同的是损失函数和最后输出结果。

将分类问题当做回归问题处理,类别要使用独热编码表示。使用独热编码表示的类别,网络输出要经过softmax处理。

分类问题的损失函数 MSE 和 Cross-entropy相比较,Cross-entropy效果更好更常见。

批次标准化(BN),对特征做均值为0方差为1的归一化,有助于训练。

回归问题

在这里插入图片描述

分类问题

分类和回归做的事情都差不多,不同的是最后输出结果,分类输出的 y 是向量,不是数值,最后的 y’ 要把 y 经过一个softmax函数再输出,使 y’ 的值在0~1之间。

**若将分类问题当做回归问题,一种方法是将类别编码为对应的数字,神经网络输出的结果为一个数值。**但是这样做存在问题,class 1 用 1 表示,class 2 用 2 表示,class 3 用 3 表示,默认了class 1 与class 2 比较相似,class 1 与class 3 比较不相似,因为将类别编码为数字,导致了实际情况中可能并没有的这种类别间的相似关系。

实际问题中,有可能真的存在这种类别间的相似关系。例如:用身高和体重预测学生的年级。一年级和二年级的身高和体重比较接近,但一年级和三年级的身高和体重比较不相似。

在这里插入图片描述
在这里插入图片描述

若将分类问题当做回归问题,正确的类别编码方式是:将类别表示为独热码one-hot vector。这种表示法,不会使类别间产生不存在的相似关系,神经网络需要输出的结果不再是一个数值,而是一个向量,向量的元素个数与类别个数相同。

在这里插入图片描述
在这里插入图片描述

softmax

softmax的作用:对最大值做强化,因为在做第一步的时候,对原始输出z取exponential会使大的值和小的值之间的差距被拉得更开,也就是强化大的值。

输出值y的范围较原始输出z发生变化:1 y_i>0, 因为指数e^z>0。2 y_i<1且各类y_i之和为1, 这是归一化的效果。所以softmax的输出可以估计后验概率(posterior probability) P(Y|X)。

在这里插入图片描述

Softmax公式中为什么要用exp?这是有原因/可解释的,可以看下PRML,也可以搜下最大熵。

最大熵(Maximum Entropy)其实也是一种分类器,和逻辑回归一样,只是从信息论的角度来看待。

三个及三个以上类别使用softmax,若只有两个类别的情况下,可以使用softmax,也可以直接使用sigmoid。两种做法中更常见的是使用sigmoid。

可以推导得出:两个类别用softmax或用sigmoid是等价的。

分类问题损失函数 - MSE & Cross-entropy

在这里插入图片描述

方法一:MSE

在这里插入图片描述

方法二:Cross-entropy

在这里插入图片描述

最小化交叉熵等价于最大似然估计。

MSE Vs Cross-entropy - Cross-entropy效果更好更常见

在分类问题中,Cross-entropy效果更好更常见,甚至在pytorch中,将softmax集成在了Cross-entropy中。

为什么Cross-entropy比MSE效果好?

数学证明:链接

下面举例说明。

在这里插入图片描述

假设y1和y2的变化范围为[-10,10],y3为-1000,y3取exp后的值很小,对结果影响很小,所以只考虑y1和y2。

因为真实标签为[1,0,0],所以使用MSE和Cross-entropy,当y1大,y2小的时候,损失小。当y1小,y2大的时候,损失大。

起始位置为error surface图中y1小,y2大的左上角,优化目标为error surface图中y1大,y2小的右下角。

因为Cross-entropy的左上角比较陡峭,所以收敛更快更好,MSE左上角比较平缓,所以收敛较慢。

在这里插入图片描述
在这里插入图片描述

批次标准化(Batch Normalization,BN)

对特征做均值为0方差为1的归一化,有助于训练。

Batch Normalization - Training
如果每次都使用所有的输入examples进行normalization,将会是一个large network,所以考虑 a batch 是自然而然的 — Batch Normalization适用于 batchsize 比较大的时候。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值