神经网络中的多个隐藏层如何提高其学习能力?
How do multiple hidden layers in a neural network improve its ability to learn?
大多数神经网络只有一个隐藏层就可以带来很高的准确率,那么多个隐藏层的目的是什么?
要回答您的问题,您首先需要找到 'deep learning' 这个词在将近十年前被创造出来的原因。深度学习只不过是一个具有多个隐藏层的神经网络。术语深度大致指的是我们的大脑通过不同层的神经元传递感觉输入(特别是眼睛和视觉皮层)以进行推理的方式。然而,直到大约十年前,由于出现了不同的问题,研究人员无法训练具有超过 1 或两个隐藏层的神经网络,例如 vanishing, exploding gradients, getting stuck in local minima, and less effective optimization techniques (compared to what is being used nowadays) and some other issues. In 2006 and 2007 several researchers 1 and 2 展示了一些新技术,可以更好地训练具有更多隐藏层的神经网络深度学习时代开始了。
在深度神经网络中,目标是模仿大脑的行为(希望如此)。在描述更多之前,我可能会指出,从抽象的角度来看,任何学习算法中的问题都是在给定一些输入 X 和输出 Y[= 的情况下逼近一个函数35=]。神经网络也是如此,理论上已经证明,只有一个隐藏层的神经网络以有界连续激活函数为单位可以逼近任何 函数。该定理被创造为 universal approximation theorem。然而,这提出了一个问题,为什么 当前具有一个隐藏层的神经网络 不能 以非常非常高的精度(比如 >99%)逼近任何函数)?这可能是由于多种原因造成的:
- The current learning algorithms are not as effective as they should be
- For a specific problem, how one should choose the exact number of hidden units so that the desired function is learned and the underlying manifold is approximated well?
- The number of training examples could be exponential in the number of hidden units. So, how many training examples one should train a model with? This could turn into a chicken-egg problem!
- What is the right bounded, continuous activation function and does the universal approximation theorem is generalizable to any other activation function rather than sigmoid?
- There are also other questions that need to be answered as well but I think the most important ones are the ones I mentioned.
在对上述问题(无论是理论上还是经验上)得出可证明的答案之前,研究人员开始使用多个隐藏单元数量有限的隐藏层。从经验上看,这显示出很大的优势。虽然添加更多的隐藏层会增加计算成本,但经验证明,更多的隐藏层可以学习输入数据的层次表示,并且也可以更好地泛化到看不见的数据。通过查看下面的图片,您可以看到 深度神经网络 如何学习特征的层次结构,并在我们从第一个隐藏层到最后一个隐藏层时依次组合它们:
图片来自 here
如你所见,第一个隐藏层(显示在底部)学习了一些边,然后将这些看似无用的表示组合起来变成对象的某些部分,然后将这些部分组合起来会产生人脸、汽车等东西、大象、椅子和……请注意,如果不使用新的优化技术和新的激活函数,这些结果将无法实现。
大多数神经网络只有一个隐藏层就可以带来很高的准确率,那么多个隐藏层的目的是什么?
要回答您的问题,您首先需要找到 'deep learning' 这个词在将近十年前被创造出来的原因。深度学习只不过是一个具有多个隐藏层的神经网络。术语深度大致指的是我们的大脑通过不同层的神经元传递感觉输入(特别是眼睛和视觉皮层)以进行推理的方式。然而,直到大约十年前,由于出现了不同的问题,研究人员无法训练具有超过 1 或两个隐藏层的神经网络,例如 vanishing, exploding gradients, getting stuck in local minima, and less effective optimization techniques (compared to what is being used nowadays) and some other issues. In 2006 and 2007 several researchers 1 and 2 展示了一些新技术,可以更好地训练具有更多隐藏层的神经网络深度学习时代开始了。
在深度神经网络中,目标是模仿大脑的行为(希望如此)。在描述更多之前,我可能会指出,从抽象的角度来看,任何学习算法中的问题都是在给定一些输入 X 和输出 Y[= 的情况下逼近一个函数35=]。神经网络也是如此,理论上已经证明,只有一个隐藏层的神经网络以有界连续激活函数为单位可以逼近任何 函数。该定理被创造为 universal approximation theorem。然而,这提出了一个问题,为什么 当前具有一个隐藏层的神经网络 不能 以非常非常高的精度(比如 >99%)逼近任何函数)?这可能是由于多种原因造成的:
- The current learning algorithms are not as effective as they should be
- For a specific problem, how one should choose the exact number of hidden units so that the desired function is learned and the underlying manifold is approximated well?
- The number of training examples could be exponential in the number of hidden units. So, how many training examples one should train a model with? This could turn into a chicken-egg problem!
- What is the right bounded, continuous activation function and does the universal approximation theorem is generalizable to any other activation function rather than sigmoid?
- There are also other questions that need to be answered as well but I think the most important ones are the ones I mentioned.
在对上述问题(无论是理论上还是经验上)得出可证明的答案之前,研究人员开始使用多个隐藏单元数量有限的隐藏层。从经验上看,这显示出很大的优势。虽然添加更多的隐藏层会增加计算成本,但经验证明,更多的隐藏层可以学习输入数据的层次表示,并且也可以更好地泛化到看不见的数据。通过查看下面的图片,您可以看到 深度神经网络 如何学习特征的层次结构,并在我们从第一个隐藏层到最后一个隐藏层时依次组合它们:
如你所见,第一个隐藏层(显示在底部)学习了一些边,然后将这些看似无用的表示组合起来变成对象的某些部分,然后将这些部分组合起来会产生人脸、汽车等东西、大象、椅子和……请注意,如果不使用新的优化技术和新的激活函数,这些结果将无法实现。