线性神经网络
在机器学习领域中,大部分情况下,我们的目标是通过不断采用梯度下降的方法调整参数以最小化损失函数。在这其中,最简单的模型之一就是线性回归。
一、线性回归
通俗地来说,线性回归就是用一个一次函数去拟合所采取到的样本点,使得各样本点到该函数图像的距离之和最小。
也就是对于:
我们要找到合适的 与 ,使得
最小。
对于这个问题,我们是存在解析解的:

只需将目标损失函数对 \mathbf{w} 求导,并让导数等于0即可,注意在求导的过程中可先将范数的平方写成向量点积的形式(即转置点乘本身)。
二、梯度下降
在具体的机器学习实现中,我们采用的是梯度下降方法,由于当数据集很大的时候,我们每次训练都需要遍历一次数据集,所以有时我们会采用随机梯度下降来进行训练,也就是每次训练的时候只从训练集中随机取一部分进行计算。
也就是同书中所说:

三、正态分布与线性回归
在高斯噪声的假设下,极大似然估计得出的结果与最小化均方误差是相同的,具体可参见课本。
四、Pytorch下的线性回归简洁实现
五、Softmax图像分类
线性回归一般用于回答“多少”的问题,事实上,还有另一类问题——分类问题。分类问题的网络一般如图所示:

其相对线性回归,输出层是一个长度不为1的向量,该输出的每个分量对应着该输入属于某一类的概率大小。
为了将输出规约成概率的形式,我们一般使用softmax函数:

随后我们需要选取损失函数,在线性回归中 MSELoss 与 在正态分布下的极大似然估计是相同的。
而在 Softmax 分类中,交叉熵损失函数与极大似然估计的结果是相同的,即

公式(3.4.7)的最后一个等号不是很好理解,我们可以进一步化简一下,由于当且仅当为正确下标时 ,所以
而 就是 ,所以等式左右便相等了。
六、交叉熵
什么是熵?
首先我们要明晰信息量的定义:
信息量刻画了一个人得知这件事发生时的“惊诧”程度,这件事发生的概率越小,“惊诧”程度越高,信息量越大,这是合理的。
那么什么是熵呢?
熵表示一个知晓事件真实发生概率的人对于该事件发生时的惊诧程度:
本来就认为这件事发生概率小,那么信息量也就对应乘一个较小的系数,这也是合理的。
那么什么是交叉熵?
交叉熵是一个认为该事件发生概率为 的人对于该事件发生时的惊诧程度
这个人认为该事件概率越小,这件事发生时的惊诧程度就越高,而当这件事不如他所料,实际上发生概率很高时,这个人就更惊诧了,这是合理的。
反过来,这个人认为事件概率很大,这件事发生时的惊诧程度应该很小,而当这件事不如他所料,实际上发生概率很小时,这个人对这件事更不以为然了。
等式中第二项被称为 相对熵 ,只需利用 即可证明相对熵大于等于0恒成立。
七、Softmax的Pytorch实现
对于Softmax的稳定性问题,我们可以参见:
