V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zxCoder
V2EX  ›  问与答

神经网络的 maxout 激活函数怎么理解?

  •  
  •   zxCoder · 2021-11-21 20:34:03 +08:00 · 656 次点击
    这是一个创建于 887 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看介绍说得天花乱坠,就是加个全连接层然后取个 max ?那把那些全连接层看成网络原来的解构,实际上的激活函数不应该就是 max 吗?

    3 条回复    2021-11-22 11:26:00 +08:00
    ipwx
        1
    ipwx  
       2021-11-21 21:24:12 +08:00
    不是。

    它是在多出来的一维上做 max 的。其实是拟合了一个分段线性的凸函数。。。
    zxCoder
        2
    zxCoder  
    OP
       2021-11-22 09:45:07 +08:00
    @ipwx 是不是比如输入是 n*d ,d 是输入节点个数,然后 maxout 层的 W 是三维的,d*m*k ,m 是 maxout 隐层节点个数,然后相乘就得到 n*m*k ,然后对 k 这一维取最大值,最后输出的就还是 n*m 的
    ipwx
        3
    ipwx  
       2021-11-22 11:26:00 +08:00   ❤️ 1
    似乎就是这么回事。

    然后之所以说它是分段线性凸函数,那是因为每个 d*m*1 相当于一个 y=Ax+b 。对于 k 个这样的线性函数求 max ,它永远是凸的(下凸)。当然凸函数只是这个 maxout 的一个特殊性质,但是比如二次函数 y=Ax^2+b 就是个凸函数,原则上你可以用多个线性函数去切,去逼近。

    换句话说 maxout 是一个有限类别函数(像抛物线那样的下凸函数)逼近器,也许某些情况下比 leaky relu ,relu 之类的更好用一点 hhh 。

    另外 relu 和 leaky relu 可以被 maxout 表示,这两个就是两段线性组成的凸函数。sigmoid 或者 tanh 倒是不能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1011 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.