卷积神经网络可以用于输出高维的结构化对象,而不仅仅是预测分类任务的类标签或回归任务的实数值。 通常这个对象只是一个张量,由标准卷积层产生。 例如,模型可以产生张量,其中是网络的输入像素属于类的概率。 这允许模型标记图像中的每个像素,并绘制沿着单个对象轮廓的精确掩模。
[success]
CNN可以对图像进行逐元素分类,并八绘制单个对象的轮廓。
1. 结构化输出要解决的问题
经常出现的一个问题是输出平面可能比输入平面要小,如\fig?所示。 用于对图像中单个对象分类的常用结构中,网络空间维数的最大减少来源于使用大步幅的池化层。 为了产生与输入大小相似的输出映射,我们可以完全避免使用池化{cite?}。 另一种策略是单纯地产生一张低分辨率的标签网格{cite?}。 最后,原则上可以使用具有单位步幅的池化操作。
[success]
结构化输出要解决的问题:输出比输入小
原因:池化
解决方法:(1)避免池化?产生低分辨率的图像
2. 怎样产生结构化输出
[success]
(1)先产生图像标签的原始猜测
(2)使用相邻像素之间的交互来修正该原始猜测
(3)进一步处理这些预测
对图像逐个像素标记的一种策略是先产生图像标签的原始猜测,然后使用相邻像素之间的交互来修正该原始猜测。
重复这个修正步骤数次对应于在每一步使用相同的卷积,该卷积在深层网络的最后几层之间共享权重{cite?}。
这使得在层之间共享参数的连续的卷积层所执行的一系列运算,形成了一种特殊的循环神经网络~{cite?}。
\fig?给出了这样一个循环卷积网络的结构。
\begin{figure}[!htb]
\ifOpenSource
\centerline{\includegraphics{figure.pdf}}
\else
\centerline{\includegraphics{Chapter9/figures/iterative}}
\fi
\captionsetup{singlelinecheck=off}
\caption[.]{用于像素标记的循环卷积网络的示例。
输入是图像张量,它的轴对应图像的行、列和通道(红,绿,蓝)。
目标是输出标签张量,它遵循每个像素的标签的概率分布。
该张量的轴对应图像的行、列和不同类别。
循环网络通过使用的先前估计作为创建新估计的输入,来迭代地改善其估计,而不是单次输出,。
每个更新的估计使用相同的参数,并且估计可以如我们所愿地被改善任意多次。
每一步使用的卷积核张量,是用来计算给定输入图像的隐藏表示的。
核张量用于产生给定隐藏值时标签的估计。
除了第一步之外,核都对进行卷积来提供隐藏层的输入。
在第一步中,此项由零代替。
因为每一步使用相同的参数,所以这是一个循环网络的例子,如\chap?所述。}
\end{figure}
一旦对每个像素都进行了预测,我们就可以使用各种方法来进一步处理这些预测,以便获得图像在区域上的分割{cite?}。 一般的想法是假设大片相连的像素倾向于对应着相同的标签。 图模型可以描述相邻像素间的概率关系。 或者,卷积网络可以被训练来最大化地近似图模型的训练目标{cite?}。