0. 滤波器的大小选择

  • 大部分卷积神经网络都会采用逐层递增(1⇒ 3 ⇒ 5 ⇒ 7)的方式。
  • 每经过一次池化层,卷积层过滤器的深度都会乘以 2;

1. 权值共享:减轻过拟合 & 降低计算量

一个卷积层(Wx+b ⇒ ReLU ⇒ maxpooling)可以有多个不同的卷积核,而每一个卷积核都对应一个滤波后映射出的新图像,同一个新图像中的每一个像素都来自完全相同的卷积核,这就是卷积核的权值共享。

那么为什么要共享卷积核的权值参数呢?

  • 降低模型复杂度以减轻过拟合;
  • 降低计算量;

2. 待求参数数目的量化分析

考虑 103×103<script type="math/tex" id="MathJax-Element-1">10^3\times 10^3</script> 的输入图像:

  • 全连接,隐层神经元的数目为 106<script type="math/tex" id="MathJax-Element-2">10^6</script> 时,则每一个输入像素与每一个隐层神经元之间都是待学习的参数,
    • 数目为 106×106=1012<script type="math/tex" id="MathJax-Element-3">10^6\times 10^6=10^{12}</script>
  • 卷积,卷积核的大小为 10×10<script type="math/tex" id="MathJax-Element-4">10\times 10</script> 时,
    • 步长为 10,103×10310×10×(10×10)<script type="math/tex" id="MathJax-Element-5">\frac{10^3\times 10^3}{10\times 10}\times \left(10\times 10\right)</script>,103×10310×10<script type="math/tex" id="MathJax-Element-6">\frac{10^3\times 10^3}{10\times 10}</script>表示的是输入图像可划分的块数,也即经卷机作用后的输出图像;
    • 步长为 1,(10310+1)×(10310+1)(10×10)<script type="math/tex" id="MathJax-Element-7">\left(10^3-10+1\right)\times\left(10^3-10+1\right)\cdot \left(10\times 10\right)</script>
    • 在不考虑步长的前提下,可近似将待学习的参数的数目视为 (103×103)(10×10)<script type="math/tex" id="MathJax-Element-8">\left(10^3\times 10^3\right)\cdot \left(10\times 10\right)</script>

3. CNN 的卷积与信号与系统中的卷积

CNN 的卷积并没有执行“翻转”操作,而是与输入图像做滑动窗口“相关”计算;

如果 K<script type="math/tex" id="MathJax-Element-9">K</script> 个输入通道(Xk,0k<K<script type="math/tex" id="MathJax-Element-10">X^k,\quad 0\leq k L<script type="math/tex" id="MathJax-Element-11">L</script> 个通道的输出( Y,0<L<script type="math/tex" id="MathJax-Element-12">Y^\ell, \quad 0\leq \ell L×K<script type="math/tex" id="MathJax-Element-13">L\times K</script>:

Y(m,n)==Xk(m,n)Hk(m,n)k=0K1i=0I1j=0J1Xk(m+i,n+j)Hk(i,j)
<script type="math/tex; mode=display" id="MathJax-Element-14"> \begin{split} Y^\ell(m, n)=&X^k(m,n)\star H^{k\ell}(m,n)\\ =&\sum_{k=0}^{K-1}\sum_{i=0}^{I-1}\sum_{j=0}^{J-1}X^{k}(m+i, n+j)H^{k\ell}(i, j) \end{split} </script>

Hk(i,j)<script type="math/tex" id="MathJax-Element-15">H^{k\ell}(i, j)</script> 表示的是第 <script type="math/tex" id="MathJax-Element-16">\ell</script> 列,第 k<script type="math/tex" id="MathJax-Element-17">k</script> 行二维卷积核,卷积核的大小为 IJ<script type="math/tex" id="MathJax-Element-18">I\cdot J</script>。

4. 时间复杂度

  • N×N<script type="math/tex" id="MathJax-Element-154">N\times N</script> 大小的图像,F<script type="math/tex" id="MathJax-Element-155">F</script> 个 K×K<script type="math/tex" id="MathJax-Element-156">K\times K</script> 的 filters ⇒ 计算复杂度 O(N2×K2×F)<script type="math/tex" id="MathJax-Element-157">O(N^2\times K^2\times F)</script>
    • 要知道 F<script type="math/tex" id="MathJax-Element-158"></script> 的值一般是很大的,比如 256;
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐