1. 介绍一下卷积层与全连接层的区别?
- 卷积层输出层上的每个节点都只与输入层的部分结点(一个卷积核大小)连接。而在全连接层中,输出层的每个节点会与输入层所有节点存在连接。
- 卷积层的滑动窗口机制,使得输出层不同位置结点共享参数(卷积核参数)。而在全连接层中不同节点的连接权值都是不同的。
- 卷积层输出保持输入数据原有的结构信息,而全连接层将数据展成一维使得输入和输出数据在相应位置对应关系丧失。
2. 在卷积神经网络中, 如何计算各层的感受野大小?
感受野:对与卷积神经网络其中一层的feature map上的某一个点,原始输入数据能影响这个点的取值的区域。
3. 卷积层的输出尺寸,参数量和计算量。
- 输出尺寸:
假设一个卷积层的输入特征图的尺寸为 l w i ∗ l h i l_w^i*l_h^i lwi∗lhi, 卷积核大小为 k w ∗ k h k_w*k_h kw∗kh, 步长为 s w ∗ s h s_w*s_h sw∗sh, 计算输出特征图尺寸 l w o ∗ l h o l_w^o*l_h^o lwo∗lho。
假设卷积核在滑动过程中,对输入特征图左右两侧分别进行 p w p_w pw列填充,上下两侧分别进行 p h p_h ph列填充,则填充后的特征图尺寸为: ( l w i + 2 p w ) ∗ ( l h i + 2 p h ) (l_w^i+2p_w)*(l_h^i+2p_h) (lwi+2pw)∗(lhi+2ph)。
则输出特征图尺寸为:
l e o = ⌊ l e i + 2 p e − k e s e ⌋ + 1 , e ∈ { w , h } (1) l_e^o=\left \lfloor \frac{l_e^i+2p_e-k_e}{s_e} \right \rfloor+1, e \in{\{w, h\}} \tag{1} leo=⌊selei+2pe−ke⌋+1,e∈{w,h}(1) - 参数量:
假设当前卷积层输入通道数为 c i c^i ci, 输出通道数为 c o c^o co,当前卷积层的参数量为:
c i ∗ c o ∗ k w ∗ k h (2) c^i*c^o*k_w*k_h \tag{2} ci∗co∗kw∗kh(2) - 计算量:
当前卷积层的计算量=输出的所有点的个数*每一个点的计算量。
输出所有点的个数 = l w o ∗ l h o ∗ c o =l_w^o*l_h^o*c^o =lwo∗lho∗co
每个点的计算量 = c i ∗ k w ∗ k h =c^i*k_w*k_h =ci∗kw∗kh
结合 ( 1 ) (1) (1)得,计算量约为:
c i k w k h c o l w i l h i / ( s w s h ) , p e ≪ l e i , k e ≪ l e i (3) c^ik_wk_hc^ol_w^il_h^i/(s_ws_h), p_e\ll l_e^i, k_e\ll l_e^i \tag{3} cikwkhcolwilhi/(swsh),pe≪lei,ke≪lei(3)