从图像分类到目标检测
了解图像分类与目标检测之间的联系。
图像分类 vs. 目标检测
图像分类任务专注于对整张图像进行类别判断,而在目标检测中,我们可能需要寻找图像中的多个不同对象。我们的目标是找出所有这些对象,并用最合适的边界框将它们框出,同时确定每个对象所属的类别。因此,目标检测的任务比图像分类更为复杂:我们首先要通过定位来检测对象的存在(即生成边界框),然后对每个框内的对象进行分类,以确定该框(物体)属于哪个类别。
- 图像分类:预测整张图像的类别。
- 目标定位:在图像中定位对象的位置,并使用边界框标示其所在区域。
- 目标检测:不仅用边界框定位图像中各个对象的位置,还对每个被定位的对象进行分类,识别其类别。
综上所述,由于目标检测需要同时提供对象的位置和类别信息,可以将其视为图像分类与目标定位两项任务的结合。根据不同的目标检测架构,这两个任务可以被同时处理或依次完成。但无论采用何种方式,一个完整的目标检测模型都必须解决这两个问题。
图像分类仅涉及对整个图像进行分类,而目标检测则更加复杂,需要解决多个子问题:首先需预测边界框的四个坐标值(即位置回归),然后再对该框内的内容进行分类。值得注意的是,目标定位本质上不是一个分类问题,而是一个回归问题!
分类 vs. 回归
在处理分类与回归任务时,明确两者之间的区别非常重要。下面我们来看一下回归的主要类型以及它与分类的关系:
线性回归
线性回归用于预测连续型或数值型变量。例如,根据房屋的位置、面积和房龄来预测其租金价格。这种任务的输出不是离散类别,而是由模型预测出的一个连续数值。
简单线性回归的一种常见形式是公式 ,其中输入 的取值范围通常为 ,对应的输出 也有类似的无限范围。我们在神经网络的隐藏层中也见过类似线性函数的激活函数,比如 ReLU——正因为其广泛的输出范围,使得线性关系能够有效地在网络各层间传递信号。
逻辑回归(Sigmoid 回归)
假设我们有两个类别,希望根据输入 判断其属于类别 还是 。线性回归的输出范围太宽泛,不利于直接分类。如果我们能将预测结果限制在 区间内,就可以设定阈值来进行分类:例如当 时判定为类别 ,否则为类别 。逻辑回归(又称 Sigmoid 回归)正是通过 Sigmoid 函数实现这一目的,将输出压缩到 到 之间,从而适用于二分类任务。
虽然 Sigmoid 函数在反向传播中存在梯度消失等问题,不适合作为隐藏层的激活函数,但在输出层中,若任务为二分类,Sigmoid 仍是合理且常用的选择。
分类(Softmax 回归)
如前所述,Softmax 函数可将模型最后的原始输出转换为概率分布。经过 Softmax 处理后,每个类别的输出值表示其可能性,且所有类别的概率之和等于 。最终,我们将概率最大的类别作为模型的预测结果。
是否可以用线性回归来做分类任务?理论上是可以的,无论是二分类还是多分类问题,都可以通过对线性回归的输出施加某些条件来进行分类,例如设置阈值:“如果 ,则判为类别 ”。但这种方法并不推荐,因为线性回归对异常值非常敏感,容易导致分类结果不稳定。因此,针对具体问题选择合适的回归或分类方法,对于获得鲁棒的模型性能至关重要。