科普知识
现实生活中常常会有这样的问题:缺乏足够的先验知识,因此难以人工标注类别或进行人工类别标注的成本太高。很自然地,我们希望计算机能代我们完成这些工作,或至少提供一些帮助。根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。
前言
卷积神经网络的的重要性在于它的特征提取能力和降低计算参数的能力,其核心在于卷积操作(计算),卷积神经网络就是有一连串的卷积操作组成。上周的文章中我们介绍了卷积神经网络的基本理论和计算过程,大家也许仅仅知其然,今天我们将用数学公式的方式展示其计算过程,更好的理解卷积计算的数学意义。
一、卷积计算之数学计算
卷积操作的计算过程:卷积核在输入数据上进行移动,并与输入数据对应位置进行相乘后相加,直至卷积核移动到输入数据的最后一个元素。
1.1 卷积操作要素
1.输入数据:我们的数据主要为图像数据,具有一定尺寸,例如100x100等
2.卷积核:用来进行卷积计算的参数框(权重框),具有一定的尺寸,例如3x3,1x3等等。
3.步长:卷积核移动步伐的大小,有大小,例如1step,2step等。
1.2 数学计算
1.输入数据:
3x3 输入数据
2.卷积核
2x2 卷积核
3卷积过程:
如上图,我们的输入数据为3x3大小的一个矩阵块(此处为举例,实际情况不会这么小),其中的F11-F33可以理解为每一个像素点,卷积核为2x2大小,C11-C22为卷积参数,也就是我们要学习的权重,计算的时候后会按照一定的初始条件设置初始值,输出也为2x2大小的矩阵(我们通常称之为feature map,特征图),下面我们就来计算输出特征图中的O11-O22为何值。
4.计算过程:
以上即为卷积操作的计算过程,总结起来即为卷积核与对应输入数据位置的原元素进行相乘后相加,当第一次计算完成后,卷积核移动到输入数据的下一个卷积核大小的位置继续进行下一次计算,移动的控制参数为步长,可以设置1或者2,也就是每计算完一次后移动一个像素的位置进行下次计算,还不清楚的话,可以继续看上次的动画计算过程哦:
到这里,已经知道了卷积是如何进行计算的啦,那么大家有没有疑问呢?卷积操作的输出大小是如何得出的呢?我们举的例子是2x2的输出尺寸,动态图的结果是4x4的输出尺寸,难道每次都要计算过程结束之后才能知道卷积的输出尺寸吗?答案是否定的,卷积的输出尺寸是有计算公式的:
我们对卷积的过程中的所有参数进行一次正式定义:
输入图片大小: W×H
Filter(卷积核)大小: F×F
步长 :S
padding的像素数(在图像周围填充像素,使其满足一定大小,方便卷积运算): P
那么,卷积后的输出尺寸为MXN:
之前的W,H分别为:3,3,卷积核大小F为:2,2, 我们没有添加填充像素,因此p为0,步长s为1,因此:
所以,以后我们就可以直接从卷积核大小和输入数据的大小直接计算输出特征图的大小了,这样便于我们选择合适的卷积核与初始化数据的大小(当我们需要固定输出尺寸的时候就需要考虑卷积核的尺寸啦)。
结语:
文章从数学的角度去分析了卷积的计算过程,与之前的全连接网络一样,都是对输入数据的数学乘积运算,卷积核的计算过程虽然简单,但是它的提出却对深度学习是一次伟大的变革,我们将在下期文章再次对卷积操作进行一次总结,以提前解答我们后期实战中可能遇到的问题。
我们下期再会,各位,周末愉快!
编辑:玥怡居士|审核:小圈圈居士