我是自学的。我完全理解为什么神经网络的深度会影响学习,以及它与宽度有何不同。但我正在寻找一些关于它的理论依据。不幸的是,我可以提出的论文,例如神经网络中深度的好处或 前馈神经网络的深度的力量 太深太长了。我也不是很擅长数学,但是,我相信它背后一定有一个简单、简短和紧凑的数学。有人可以指点我一些教程/文章/论文/报告,我可以很容易地理解它吗?
神经网络的深度
数据挖掘
神经网络
自习
2021-10-09 11:53:31
2个回答
我认为简短的数学直觉将表明Deeper 提供了更多的灵活性。
想象一下,我们想要拟合一个极其复杂的函数,如下所示:
...但是在n 维空间中- 我们显然无法想象这样的功能。但我们可以同意这很复杂
基本数学类比
神经网络的目标是通过逼近复杂的函数将原始输入数据(例如图像到卷积网络)映射到一些输出。
所以如果我们有一些输入,并应用一个非线性函数 对它,我们将它转换成别的东西:
也许这给了我们一个曲线函数,但它并没有接近匹配复杂的函数,所以我们赋予模型另一个机会,通过应用第二个非线性函数:
提供第二个功能几乎就像为模型提供另一个自由度(或灵活性)。
我们继续这样,直到非线性函数链能够足够好地映射输出空间。也许我们最终会这样:
在这个框架中,将每个非线性函数想象成深度网络中的一层。网络越深入,我们应用的功能就越多,我们就越能将输入塑造和转换成其他东西;也许在不同的范围内,以不同的幅度等等。
这应该(以一种非常随意的方式)让您相信,应用的更多功能会在最终输出空间中提供更多可能性。所以更多的层给了我们更多的能力来表达越来越复杂的功能。
实用说明:我们添加的层数越多,模型就越强大,并且以下两种情况的趋势越大:
- 很难训练
- 最终完全过拟合训练数据
- 模型训练的时间越长
- 在未见过的数据上获得合理的验证指标可能需要的正则化水平越高
我推荐使用Tensorflow Playground来获得直观的理解。特别是,尝试找到适合螺旋数据集的方法。
按照我的理解,神经网络的每一层都可以由之前所有层提供的所有形状组成。第一层(假设 sigmoid 或 tanh 激活)只能制作 sigmoid 形状。第二层中的每个节点现在可以从第一层中所有 sigmoid 形状的线性组合中制作复杂的形状。第三层的每个节点都可以在第二层的复杂形状中做出更复杂的形状。等等等等。