softmax回归
分类问题:不是问“多少”,而是问“哪一个”:
- 某个图像描绘的是驴、狗、猫、还是鸡?
- 某人接下来最有可能看哪部电影?
通常,机器学习实践者用分类这个词来描述两个有微妙差别的问题:
-
我们只对样本的“硬性”类别感兴趣,即属于哪个类别;
-
我们希望得到“软性”类别,即得到属于每个类别的概率。 这两者的界限往往很模糊。其中的一个原因是:即使我们只关心硬类别,我们仍然使用软类别的模型。
分类问题
我们从一个图像分类问题开始。 假设每次输入是一个2×2的灰度图像。
我们可以用一个标量表示每个像素值,每个图像对应四个特征𝑥1,𝑥2,𝑥3,𝑥4。 此外,假设每个图像属于类别“猫”,“鸡”和“狗”中的一个。
接下来,我们要选择如何表示标签。 我们有两个明显的选择:最直接的想法是选择𝑦∈{1,2,3}, 其中整数分别代表{狗,猫,鸡}。
这是在计算机上存储此类信息的有效方法。 如果类别间有一些自然顺序, 比如说我们试图预测{婴儿,儿童,青少年,青年人,中年人,老年人}那么将这个问题转变为回归问题,并且保留这种格式是有意义的。
但是一般的分类问题并不与类别之间的自然顺序有关。
统计学家很早以前就发明了一种表示分类数据的简单方法:独热编码(one-hot encoding)。
独热编码是一个向量,它的分量和类别一样多。 类别对应的分量设置为1,其他所有分量设置为0。
在我们的例子中,标签𝑦将是一个三维向量, 其中(1,0,0)对应于“猫”、(0,1,0)对应于“鸡”、(0,0,1)对应于“狗”:
𝑦∈{(1,0,0),(0,1,0),(0,0,1)}.
网络架构
为了估计所有可能类别的条件概率,我们需要一个有多个输出的模型,每个类别对应一个输出。
为了解决线性模型的分类问题,我们需要和输出一样多的仿射函数(affine function)。
每个输出对应于它自己的仿射函数。 在我们的例子中,由于我们有4个特征和3个可能的输出类