V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maxxfire
V2EX  ›  程序员

问个机器学习问题,卷积神经网络的通道数是怎么定的?

  •  
  •   maxxfire · 2020-08-05 10:59:57 +08:00 · 2358 次点击
    这是一个创建于 738 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 LeNet 网络,它的通道数是为何这样设计的,有什么依据?
    比如:
    1. 第一层卷积层的通道为何是 6,按道理图片也就 RGB 三个通道。
    2. 第二层卷积层的通道又是 16,这个依据是什么?
    3. 在用 mxnet 实现时,卷积核的具体数字定义在何处,比如图像边缘检测,它的卷积核是:
    [-1, 0, 1]
    [-2, 0, 2]
    [-1, 0, 1]
    有很多核,有些核用来做边缘检测,有些核用来做高斯模糊。具体可参考: https://blog.csdn.net/chaipp0607/article/details/72236892
    但在具体 mxnet 代码中,却未找到这些核的定义。
    13 条回复    2020-08-05 15:48:09 +08:00
    mscb
        1
    mscb  
       2020-08-05 11:19:19 +08:00 via Android
    当然是炼丹练出来的呀!炼丹师这个俗称可不是开玩笑的,哈哈哈哈,手动🐶
    maxxfire
        2
    maxxfire  
    OP
       2020-08-05 11:30:14 +08:00
    @mscb 啊哈哈,还真有点形象,不过其网络结构一开始就定好了,这就是厉害之处了
    jingous
        3
    jingous  
       2020-08-05 11:36:42 +08:00
    随便定的。默认的分辨率降低一倍,通道数增加一倍。除开始几层外,通道一般都是 2 的 N 次方
    jmc891205
        4
    jmc891205  
       2020-08-05 11:54:11 +08:00 via iPhone
    这属于 hyperparameter
    也要调的
    jimliang
        5
    jimliang  
       2020-08-05 11:58:19 +08:00
    不断调参后的相对最优解
    labnotok
        6
    labnotok  
       2020-08-05 12:31:33 +08:00
    深度学习的意义就是把特征的提取从手工的构建中解放出来,filter 是由数据和网络的训练决定的,自然不会出现功能确定的 filter 。而且你也很难在某个 filter train 完之后明确说它的作用是什么。filter 与其说是 convolution,直接理解成使用 cross-correlation 层次化提取特征会清晰很多。


    运算上讲,channel 数是由上一层 filter 的个数决定的,而不是数据的维度。而你选择多少 filter 是个玄学的问题,稍微有点依据的说法是考虑你 GPU 的 CUDA 数和显存数据宽度,提高运算效率。
    xiri
        7
    xiri  
       2020-08-05 12:56:07 +08:00
    这东西就是随便猜(可能会有一点经验在里面),不断试错,最后选出一个最优的
    nightwitch
        8
    nightwitch  
       2020-08-05 13:03:34 +08:00
    channel 算是中等重要程度的超参数吧,直观的理解就是你想要把你的数据投影到多少维度的空间。没啥特定的规则,一般靠近原始输入的地方 channel 数逐渐增加,从低维空间升到高维,然后接近输出的的地方逐渐减少到 1 维输出,网络中可能有多个 1x1xchannel 的操作来调整通道数。
    maxxfire
        9
    maxxfire  
    OP
       2020-08-05 13:46:15 +08:00
    @labnotok 软件和数学都是严谨的,像这种玄学的东西我学不来
    VDimos
        10
    VDimos  
       2020-08-05 13:57:49 +08:00 via Android
    炼丹就是要试的
    realcaoqi95
        11
    realcaoqi95  
       2020-08-05 15:02:47 +08:00
    玄学问题
    superlc
        12
    superlc  
       2020-08-05 15:19:27 +08:00 via iPhone
    一个 hyperparameter 而已
    肯定是越多越好,参数越多能学到的信息量越大。不过一般来讲只要 filter 数够用了,再增加的话对性能的提升也十分有限,所以最终是一个参数量与资源消耗的权衡

    和传统算法里面的各种 threshold 差不多,说白了就是在满足要求的前提下随便选的
    IanPeverell
        13
    IanPeverell  
       2020-08-05 15:48:09 +08:00
    第一层 6 是经验值,并不是根据 RGB 而来的。意思是,在对输入提取特征值时,获取 6 种特质,然后再进行组合最后训练出来的效果、模型的性能等是最佳的。第二层的 16,是对 6 种特征进行组合得到的。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2324 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 02:59 · PVG 10:59 · LAX 19:59 · JFK 22:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.