声明:本文引用吴恩达教授的DeepLearning课程内容。
图像分类:图片分类问题并不陌生,例如,输入一张图片到多层卷积神经网络。这就是卷积神经网络,它会输出一个特征向量,并反馈给 softmax 单元来预测图片类型。
目标定位:如果你还想定位图片中汽车的位置,该怎么做呢?我们可以让神经网络多输出几个单元,输出一个边界框。具体说就是让神经网络再多输出 4 个数字,标记为𝑏𝑥,𝑏𝑦,𝑏ℎ和𝑏𝑤,这四个数字是被检测对象的边界框的参数化表示。
这有四个分类,神经网络输出的是这四个数字和一个分类标签,或分类标签出现的概率。目标标签𝑦的定义如下:
𝑦 =[𝑝𝑐, 𝑏𝑥, 𝑏𝑦, 𝑏ℎ, 𝑏𝑤, 𝑐1, 𝑐2, 𝑐3]
它是一个向量,第一个组件𝑝𝑐表示是否含有对象,如果对象属于前三类(行人、汽车、摩托车),则𝑝𝑐 = 1,如果是背景,则图片中没有要检测的对象,则𝑝𝑐 = 0。我们可以这样理解𝑝𝑐,它表示被检测对象属于某一分类的概率,背景分类除外。
如果检测到对象,就输出被检测对象的边界框参数𝑏𝑥、𝑏𝑦、𝑏ℎ和𝑏𝑤。最后,如果存在某个对象,那么𝑝𝑐 = 1,同时输出𝑐1、𝑐2和𝑐3,表示该对象属于 1-3 类中的哪一类,是行人,汽车还是摩托车。
PS:这里,假设图片最多只会出现其中一个对象。
真值标签:
假设,三个类别:行人、车辆、摩托车,左图中有一辆车,则真值标签为:
[1,𝑏𝑥, 𝑏𝑦, 𝑏ℎ, 𝑏𝑤,0,1,0]。𝑝𝑐 = 1,𝑏𝑥、𝑏𝑦、𝑏ℎ和𝑏𝑤会指明边界框的位置,汽车,所以𝑐1 = 0,𝑐2 = 1,𝑐3 = 0,𝑐1、𝑐2和𝑐3中最多只有一个等于 1。
若为无检测对象,则[0,?, ?,?,?,?,?,?], 𝑝𝑐 = 0.成问号,表示“毫无意义”的参数。
最后,我们介绍一下神经网络的损失函数,其参数为类别𝑦和网络输出𝑦^,如果采用平方误差策略,则:
损失值等于每个元素相应差值的平方和。