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

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

  •  
  •   maxxfire · 166 天前 · 1385 次点击
    这是一个创建于 166 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 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   166 天前 via Android
    当然是炼丹练出来的呀!炼丹师这个俗称可不是开玩笑的,哈哈哈哈,手动🐶
    maxxfire
        2
    maxxfire   166 天前
    @mscb 啊哈哈,还真有点形象,不过其网络结构一开始就定好了,这就是厉害之处了
    jingous
        3
    jingous   166 天前
    随便定的。默认的分辨率降低一倍,通道数增加一倍。除开始几层外,通道一般都是 2 的 N 次方
    jmc891205
        4
    jmc891205   166 天前 via iPhone
    这属于 hyperparameter
    也要调的
    jimliang
        5
    jimliang   166 天前
    不断调参后的相对最优解
    labnotok
        6
    labnotok   166 天前
    深度学习的意义就是把特征的提取从手工的构建中解放出来,filter 是由数据和网络的训练决定的,自然不会出现功能确定的 filter 。而且你也很难在某个 filter train 完之后明确说它的作用是什么。filter 与其说是 convolution,直接理解成使用 cross-correlation 层次化提取特征会清晰很多。


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

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