• 卷积神经网络(CNN)的细节问题(滤波器的大小选择)


    0. 滤波器的大小选择

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

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

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

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

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

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

    考虑 103×103 的输入图像:

    • 全连接,隐层神经元的数目为 106 时,则每一个输入像素与每一个隐层神经元之间都是待学习的参数,
      • 数目为 106×106=1012
    • 卷积,卷积核的大小为 10×10 时,
      • 步长为 10,103×10310×10×(10×10)103×10310×10表示的是输入图像可划分的块数,也即经卷机作用后的输出图像;
      • 步长为 1,(10310+1)×(10310+1)(10×10)
      • 在不考虑步长的前提下,可近似将待学习的参数的数目视为 (103×103)(10×10)

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

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

    如果 K 个输入通道(Xk,0k<K)的输入经若干卷积核的作用之后得到 L 个通道的输出(Y,0<L),需要的卷积核的数目为 L×K

    Y(m,n)==Xk(m,n)Hk(m,n)k=0K1i=0I1j=0J1Xk(m+i,n+j)Hk(i,j)

    Hk(i,j) 表示的是第 列,第 k 行二维卷积核,卷积核的大小为 IJ

    4. 时间复杂度

    • N×N 大小的图像,FK×K 的 filters ⇒ 计算复杂度 O(N2×K2×F)
      • 要知道 F 的值一般是很大的,比如 256;
  • 相关阅读:
    Android 内存溢出解决方案(OOM) 整理总结
    mysql数据库基本操作
    java基础集合框架——List、Set、Map概述(java集合一)
    Android基础常用日期操作工具类
    Android 中的adapter和作用以及常见的adapter
    Android中的SimpleAdapter
    android中selector使用
    Android 中消息处理机制-Looper、Handler、Thread(一)
    Android 中消息处理机制-Looper、Handler、Thread (二)
    android中MessageQueue , Message , Looper , Handler(三)
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9422059.html
Copyright © 2020-2023  润新知