这个是面试是遇到的这个问题。说对于线性回归,可以用normal equation来解,但是为何deep learning没法用解析解?当时答得略差。从网上找答案暂时也没有特别好的答案,因此我自己想了一下,总结在这里。
-
对于类似于sigmoid、tanh还有什么softplus之类奇奇怪怪的激活函数来说,以及类似交叉熵之类的损失函数来说,前向推断直接求导之后等于0,求极值,这个方程是超越方程,没有解析解。事实上人类能解的方程很少的。即使是最简单的多项式方程来说,大于等于5次的,都没有解析解求解( Abel–Ruffini theorem),更别说类似什么sigmoid套sigmoid套sigmoid之类的这种方程了。
-
最简单一些的网络,比方说前向的,激活函数是relu。由于relu是分段线性函数,前向推断可以是分段线性函数。这个时候假如loss又是l2 loss啊,l1 loss啊这类简单的,确实可以求解析解。但是要考虑的是规模。比方说,一共2层神经元,每层2个,ok,那就是16段线性( 2 2 × 2 = 16 2^{2\times2}=16 2