这篇文章可以说是我自己五年来做“多层神经网络的理论分析”这个方向的一个初步令人满意的结果。我还记得那个BatchNorm的bias为负的实验还有BatchNorm的分析都是四年前做的,当我意识到新的假设和老的实验结果大有关系,并且找到四年前还是用lua-torch写的代码的时候,心情是复杂而激动的。当时看似徒劳的努力,会在几年之后被证明有价值。
研究的乐趣,莫若如是。
在发现这个学生-教师多层网络对应关系之前,这篇文章的前身在投稿ICLR之后被毫不留情地拒掉,之后的一段时间里我都找不到下一步应走的方向,是沿着前一篇文章数学上已经很复杂的方式继续做下去,还是从一些直觉和现象重新开始第一百零一次的建模,继续思考?自从我开始接触深度学习开始,自己就想要做一些工作,去真正理解它究竟是如何工作的,到底比传统模型好在哪里。对看重实际效果的人们而言,这似乎毫无意义,但我知道,这些重要的问题,总有一天要回答清楚,那时候深度学习才不是潮起潮落中的一朵浪花,而确实成为人工智能的中流砥柱。
在过去的几年里,我不止一次地以为不会再有《求道之人,不问寒暑》系列了。做理论,尤其是做要和实验现象贴合的深度学习理论,实在是一个吃力不讨好的事情。或许退一步调调参数,做做系统,想出些新算法已经足够。可是人嘛,毕竟还是想尝试一些本觉得不太可能做出来的事情,于是就有了这个系列,于是有了在日常工作之外的,永远看不到尽头的长跑。
希望有一天,可以跑出深度学习理论的曙光来。