我们是否可以在使用CNN

时间:2017-07-18 04:36:48

标签: machine-learning tensorflow computer-vision deep-learning conv-neural-network

最后一天,我学习了卷积神经网络,并使用Tensorflow进行了CNN的一些实现,所有实现仅指定过滤器的大小,过滤器数量和步幅。但是当我了解过滤器时,它说每个层上的过滤器会提取不同的特征,如边缘,角落等。

我的问题是我们可以明确指定过滤器,我们应该提取所有特征,或者图像的哪个部分更重要等等。

所有的解释都说我们将输入图像的一小部分作为幻灯片放在它上面。如果是这样的话,我们会拍摄图像的所有部分并在图像中进行卷积吗?

2 个答案:

答案 0 :(得分:3)

我认为你可能会混淆过滤器和频道。滤波器是卷积中的权重窗口大小,可用于从卷积输出生成通道。通常这些渠道代表不同的功能: enter image description here

在这个汽车识别示例中,您可以看到一些较早的频道,如汽车的引擎盖,车门和其他边界。很难真正指定网络正在提取哪些功能。如果您已经了解对网络很重要的功能,则可以将它们作为附加遮罩层或在其上使用某种类型的加权矩阵进行输入。

答案 1 :(得分:3)

  

我们可以明确指定过滤器,我们应该提取所有要素,或者图像的哪个部分更重要等等

当然,这可以做到。但是CNN的优势在于他们自己学习了最好的功能(或者至少是非常好的功能;在大多数情况下,它们比我们能提出的更好)。

一个着名的例子是ImageNet数据集:

enter image description here

2012年,第一次使用了端到端学习的CNN。端到端意味着网络在一端获取原始数据作为输入,在另一端获得优化目标。

在CNN之前,计算机视觉社区多年来一直使用手动设计的功能。继AlexNet在2012年之后,没有人这样做(对于“典型的”计算机视觉 - 有一些特殊的应用仍然值得一试)。

  

所有的解释都说我们将输入图像的一小部分作为幻灯片放在它上面。如果是这样的话,我们会拍摄图像的所有部分并在图像中进行卷积吗?

始终是使用小型滤镜进行卷积的完整图像。卷积运算是局部的,这意味着您可以并行计算大部分,因为左上角的卷积不是 依赖于左下角的卷积。

相关问题