神经网络的深度

数据挖掘 神经网络 自习
2021-10-09 11:53:31

我是自学的。我完全理解为什么神经网络的深度会影响学习,以及它与宽度有何不同。但我正在寻找一些关于它的理论依据。不幸的是,我可以提出的论文,例如神经网络中深度的好处 前馈神经网络的深度的力量 太深太长了。我也不是很擅长数学,但是,我相信它背后一定有一个简单、简短和紧凑的数学。有人可以指点我一些教程/文章/论文/报告,我可以很容易地理解它吗?

2个回答

我认为简短的数学直觉将表明Deeper 提供了更多的灵活性

想象一下,我们想要拟合一个极其复杂的函数,如下所示:

随机复杂函数可视化

...但是在n 维空间中- 我们显然无法想象这样的功能。但我们可以同意这很复杂

基本数学类比

神经网络的目标是通过逼近复杂的函数将原始输入数据(例如图像到卷积网络)映射到一些输出。

所以如果我们有一些输入,并应用一个非线性函数 f 对它,我们将它转​​换成别的东西:

p1=F(一世np)

也许这给了我们一个曲线函数,但它并没有接近匹配复杂的函数,所以我们赋予模型另一个机会,通过应用第二个非线性函数:

p2=G(p1)

提供第二个功能几乎就像为模型提供另一个自由度(或灵活性)。

我们继续这样,直到非线性函数链能够足够好地映射输出空间。也许我们最终会这样:

p6=ķ(j(一世(H(G(F(一世np)))))

在这个框架中,将每个非线性函数想象成深度网络中的一层。网络越深入,我们应用的功能就越多,我们就越能将输入塑造和转换成其他东西;也许在不同的范围内,以不同的幅度等等。

这应该(以一种非常随意的方式)让您相信,应用的更多功能会在最终输出空间中提供更多可能性。所以更多的层给了我们更多的能力来表达越来越复杂的功能。


实用说明:我们添加的层数越多,模型就越强大,并且以下两种情况的趋势越大:

  1. 很难训练
  2. 最终完全过拟合训练数据
  3. 模型训练的时间越长
  4. 在未见过的数据上获得合理的验证指标可能需要的正则化水平越高

图片来源

我推荐使用Tensorflow Playground来获得直观的理解。特别是,尝试找到适合螺旋数据集的方法。

按照我的理解,神经网络的每一层都可以由之前所有层提供的所有形状组成。第一层(假设 sigmoid 或 tanh 激活)只能制作 sigmoid 形状。第二层中的每个节点现在可以从第一层中所有 sigmoid 形状的线性组合中制作复杂的形状。第三层的每个节点都可以在第二层的复杂形状中做出更复杂的形状。等等等等。