DL 的难度取决于看问题的角度。数学系的话应该往理论方向看。
DL 用线性和非线性函数堆砌来构造函数,用随机梯度下降就可以训练,而且还有非常好的泛化能力,在我看来这样的东西居然没有原理这是完全不可想像的。但是 DL 很难,难到大家都不知道如何入手,用什么数学工具都不知道,所以说什么样的理论文章都有,凝聚态物理的(spin-glass),量子物理的(重整化群),ODE 的(动力系统),各种优化理论(这个例子太多),各种复杂度理论,但还没看到真正提炼出本质的。数学这边那么多理论,但现在还没有哪个能搬到 DL 上而且能严丝合缝的,至于能进行有效预测的就更没有了。这就足够说明问题的复杂性,DL 是没那么简单的。
要深入 DL,各种基础知识是不可少的。但是基础知识并不是拿来炫耀的本钱,因为学了一大堆,可能一个都没用。比如说 VC Dimension 或者 Rademacher Complexity 对 DL 有没有用?它们本身都很漂亮,但可能假设太强得到的结论和现实差很远,或者假设太宽泛得到的结论太弱,都不在 DL 的工作区间。所以做理论的人,不得不一个个学过来,想过了,试过了,然后放掉,下一个。解决问题是最终的目标,而不是学得比人多些,然后坐在原地不动夸耀自己厉害。耍弄十八般武艺,比不过高手一招制敌。至于这一招怎么找到,或者从理论分析这边入手,或者从实验入手,都是一样有价值,都是平等的,不存在谁鄙视谁的问题。鄙视就意味着有不合理的预设立场,忽视另一种思路的作用,对解决问题是不利的。
学数学的时候,我的感觉像是走进了琳琅满目的艺术博物馆,在整洁的环境中欣赏各种精巧的美。DL 相比之下就像是锅炉房里堆叠着一坨污七八糟的机器,工程师们东敲西打让它工作,虽然脏乱,确实有效。大部分人可以沿着前人铺好的锦绣路上再添砖加瓦,但是真正厉害的,是不顾脏乱跑到锅炉房里把机器拆开,化腐朽为神奇,找到最重要原理的那些人。开创比修补难,与其抱怨 DL 没有高深数学做框架,不如自己试试看,能不能做些有趣的东西出来。现在那么大的金矿放在那里,大家应该好好合作使劲挖矿才是啊。 小波是很美,但问题是它的基函数是固定形式的,不能适应具体问题,而且还需要数学家搞一辈子才能搞出来。与之相比,深度模型训练几天就能跑出来,而且针对具体问题(比如说图像分类)效果还更好,你会选哪个?所以说现在思路要转变,一个一个地研究模型太没效率了,做一个对数据自动建模的模型,是不是在战略上会更有趣一点呢?
我和我一个同学聊过,他现在是统计系的终身教授,列举了几个非常牛的数学家,问我 AI 再牛牛得过他们么?我没有正面回答,我在想人类看蚂蚁的时候会思考普通蚂蚁和聪明一点的蚂蚁之间的区别么?我这里并没有贬低数学家的意思,因为人类都是一样的,我也是微不足道的普通蚂蚁而已——相比耗能堪比一座小城市并且每几个月就更新换代的集群,人脑仅仅几十瓦的功率,神经元间慢达毫秒级的传输速度,败下阵来只是时间问题。而现在的人脑处理大部分任务甚至还远胜集群,可见人工智能潜力之大。我有时候觉得我们看到几颗星辰就以为是大突破了,其实我们还在漫漫长夜里瞎摸,太阳还没有露头呢。
另外说一下门槛低的问题。几百年前,微积分出来之后,一大类问题都可以用统一的方法解决,让技术进步的门槛降低了,本来高高在上的各种技巧平民化了,马上就带动了相关领域的巨大进展。这个历史进程和我们现在看到深度学习的进程一模一样,开源了,大家都用了,对整个人类而言进步就快了。到了这个时候,单枪匹马干不了什么事,人民群众才是技术进步的原动力。
面对时代的洪流,相比嘲弄别人随波逐流,思考应该如何顺势而为,或许是更有建设性的吧。