在非本地数据上使用深度学习的原因
看来我忘记了人工神经网络的一点,至少忘记了它的一个作用:激活函数。
确实,对于线性激活,多层可以简化为单层,但具有非线性函数,
一个两层的神经网络可以被证明是一个通用的函数逼近器。
但是,确实我现在不明白为什么要使用两个以上的隐藏层......
几个答案:
是的,在更简单的模型就足够了的情况下,这可能是矫枉过正。线性回归和逻辑回归也可以简单地表示为神经网络,但这并不是解决它的最有效方法。
从好的方面来说,深度学习框架擅长应用 GPU 等专用硬件。如果问题也适合深度学习,如果 GPU 可用,它可能会带来性能上的胜利。
它可以通过激活函数学习非线性关系。这并不意味着它可以轻松学习交互功能。是的,可以用两个足够宽的密集层来近似任何东西,但是它们必须非常宽才能学习一些任意函数。
它们对于时间序列数据很有用,但这是一种在时间维度上具有“局部性”的数据,您已经在其中进行了裁决。
中间表示可能对其他目的有意义。例如,学习从客户属性中对购买意图进行分类的网络会产生一个中间表示,该表示可能比原始输入更有意义地产生于聚类。嵌入在相对于目标有意义的空间中捕获输入。
卷积和依赖
Convnets 的结构方式是在模型中编码空间依赖性。他们没有明确地“减少维度的数量”。
这意味着,虽然完全接触的层会考虑所有特征之间的关系,但卷积层会假设相邻的特征在它们之间是连接的,而远距离的特征不相互依赖。
我们可以通过将所有像素一个接一个地排列在一个巨大的列中并将其传递给神经网络,将图像输入到一个完全连接的层中。然而,这将是一个非常昂贵和冗余的计算,因为我们知道远距离特征之间的“链接”相互依赖的概率非常低。
网络深度和总结
正如您在问题中正确陈述的那样,具有单个隐藏层且包含有限数量的神经元的前馈神经网络可以以任意精度逼近任何连续函数(通用逼近定理)。
但是,让我们看看单个隐藏层不能做什么。
1.非线性建模 非线性关系
非线性变换或曲率(例如多项式回归、逻辑单元等)经常被误读为模型参数(非线性模型)中的非线性。
如果我们的激活函数 是线性的,这本质上是线性回归:
如果我们添加另一层,如下图所示的一个神经元和线性激活,输出将是:
这减少到,
这 和 本质上,模型“参数非线性”但仍然“变量线性()。本质上,尽管有线性激活函数,但 2 层神经网络是线性关系的非线性模型。变量和参数的非线性都很重要,因为您无法使用单个回归模型复制这两个层神经网络并捕获模型的所有影响。
- 激活函数(每层):如果是非线性的,则在变量中引入非线性关系。有助于更改和/或扩展解决方案空间。
- 网络深度(更多层/连接):在参数中引入非线性,这是超越回归的非退化解决方案所必需的。本质上,使用多个隐藏层允许在不同的分辨率级别构建分层特征 [ 1 ]
2.参数非线性回归 神经网络
在类似的点上,通常将神经网络描述为参数非线性回归、多元回归等。当上述两种不同的非线性元素结合在一起时,深度神经网络是一种特殊的野兽。
- DNN 允许为大量参数拟合模型,不可能用 Levenberg-Marquard 拟合非线性最小二乘法。
- 尽管理论上是“参数化的”,但实际上很少(如果有的话)DNN 的超参数是预先固定的,实际上其整个建模管道(从预处理到架构和正则化)都是模型调整的一部分,通常会导致拟合来自更大类别模型的模型。
- DNN 可扩展到庞大的数据集。
无论如何,希望这会有所帮助。
另请参阅:
1 . 统计学习要素
2. https://stats.stackexchange.com/a/33891/110383
3. https://stackoverflow.com/a/61619406/11545502
4. https://stats.stackexchange .com/a/345065/110383