做者:szx_spark
因为计算机视觉的大红大紫,二维卷积的用处范围最广。所以本文首先介绍二维卷积,以后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用。html
图中的输入的数据维度为\(14\times 14\),过滤器大小为\(5\times 5\),两者作卷积,输出的数据维度为\(10\times 10\)(\(14-5+1=10\))。若是你对卷积维度的计算不清楚,能够参考我以前的博客吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(CNN)(上)。网络
上述内容没有引入channel的概念,也能够说channel的数量为1。若是将二维卷积中输入的channel的数量变为3,即输入的数据维度变为(\(14\times 14\times 3\))。因为卷积操做中过滤器的channel数量必须与输入数据的channel数量相同,过滤器大小也变为\(5\times 5\times 3\)。在卷积的过程当中,过滤器与数据在channel方向分别卷积,以后将卷积后的数值相加,即执行\(10\times 10\)次3个数值相加的操做,最终输出的数据维度为\(10\times 10\)。学习
以上都是在过滤器数量为1的状况下所进行的讨论。若是将过滤器的数量增长至16,即16个大小为\(10\times 10\times 3\)的过滤器,最终输出的数据维度就变为\(10\times 10\times 16\)。能够理解为分别执行每一个过滤器的卷积操做,最后将每一个卷积的输出在第三个维度(channel 维度)上进行拼接。spa
二维卷积经常使用于计算机视觉、图像处理领域。视频
图中的输入的数据维度为8,过滤器的维度为5。与二维卷积相似,卷积后输出的数据维度为\(8-5+1=4\)。htm
若是过滤器数量仍为1,输入数据的channel数量变为16,即输入数据维度为\(8\times 16\)。这里channel的概念至关于天然语言处理中的embedding,而该输入数据表明8个单词,其中每一个单词的词向量维度大小为16。在这种状况下,过滤器的维度由\(5\)变为\(5\times 16\),最终输出的数据维度仍为\(4\)。blog
若是过滤器数量为\(n\),那么输出的数据维度就变为\(4\times n\)。get
一维卷积经常使用于序列模型,天然语言处理领域。深度学习
这里采用代数的方式对三维卷积进行介绍,具体思想与一维卷积、二维卷积相同。博客
假设输入数据的大小为\(a_1\times a_2\times a_3\),channel数为\(c\),过滤器大小为\(f\),即过滤器维度为\(f\times f\times f\times c\)(通常不写channel的维度),过滤器数量为\(n\)。
基于上述状况,三维卷积最终的输出为\((a_1-f+1)\times (a_2-f+1)\times (a_3-f+1)\times n\)。该公式对于一维卷积、二维卷积仍然有效,只有去掉不相干的输入数据维度就行。
三维卷积经常使用于医学领域(CT影响),视频处理领域(检测动做及人物行为)。