首先,我们不相互堆叠线性函数以获得非线性函数。NN可能永远不会那样工作的原因很明确:将线性函数相互堆叠会再次产生线性函数。
使NN非线性的是线性函数后面的激活函数!但是,原则上您是对的:我们只是相互堆叠了很多逻辑回归(虽然不是线性的!)……tadaa:我们从中得到了好处……这公平吗?事实证明,从理论上讲,这实际上是公平的。更糟糕的是:使用Stone-Weierstrass著名的著名定理,我们简单地证明了仅具有一个隐藏层并且在最终节点处没有输出函数的神经网络足以逼近任何连续函数(相信我,连续函数可能很难看。野兽,请参阅“魔鬼阶梯”:https : //en.wikipedia.org/wiki/Cantor_distribution[ a ,b ]X ↦ = b + 一1个ϕ1个(x )+ 。。。+ 一个升ϕ升(x )升
那为什么要使用深度神经网络呢?
原因是上面的SW定理仅保证有足够大的层大小,以便我们可以接近(希望是连续的)目标函数。但是,所需的层大小可能太大,以至于没有计算机能够处理该大小的重量矩阵。具有更多隐藏层的NN似乎是“准确性”和可计算性之间的良好折衷。我不知道有任何理论结果表明,与增加单个隐藏层的大小相比,放置更多隐藏层时,NN的表达能力会增长“多少”的方向,但也许网络上有一些资源...
我们能真正理解深度神经网络吗?
问题示例:为什么当神经网络预测另一种类似情况为FALSE时,神经网络为何准确地预测这种情况为TRUE?为什么要准确地评价此客户比其他客户更有价值?我不是很相信。该模型具有复杂性,您无法再对其进行合理的解释了……我只听说这仍然是一个活跃的研究领域,但我不知道任何资源……
是什么使NN在所有模型中如此独特?
这些天我们这么多使用NN的真正原因是由于以下两个原因:
- 它们具有自然的“流式”属性。
- 我们可以在多个方向上将它们最大化。
ŤFŤT′T′等)基于此属性。人们试图将这种流媒体属性注入其他模型(例如Gradient Boosting),但它并非自然而然,并且在计算上不如NN设置便宜。
乘2。我的意思是人们已经训练过NN来做最奇怪的事情,但是原则上他们只是使用相同的框架:将平滑的函数相互堆叠,然后让计算机(即PyTorch / Tensorflow)为您做脏的数学运算权重的损失函数的导数。一个例子就是这篇论文人们不仅使用RL方法,而且还通过讲授NN如何在内存堆栈上操作来学习化学物质的复杂语言,构造了NN的体系结构(!)。尝试通过梯度增强来做到这一点;-)之所以必须这样做,是因为化学语言至少与括号内的语言“一样难以学习”(即,每个开头的括号后面都有一个闭合的括号) ),因为人们用来描述分子的SMILES语言包含符号“(”和“)”。从理论计算机科学(Chomsky层次结构)开始,人们知道不能用常规自动机来描述这种语言,但是需要向下推自动机(即具有堆栈存储器的自动机)。那是他们(我想)向NN教授这种奇怪的东西的动机。