本文转自:http://blog.csdn.net/chenli2010/article/details/24290623

本文我们要谈论的文章为:

Yann N. Dauphin, Yoshua Bengio. Big Neural Networks Waste Capacity. ICLR2013.

文章下载地址:http://arxiv.org/abs/1301.3583

公开讨论地址:http://openreview.net/document/5563cdeb-e853-47ac-83b2-1b1b20cc1535


引言:

对于一个分类模型而言,随着模型复杂度的上升,training error一般呈现单调递减的特性,而test error则

先减后增。在test error达到临界点之前,模型为underfitting;在临界点时,模型为fitting;过了临界点,

模型就呈现overfitting的特性。如下图所示:


然而,当神经网络遇到大样本时,有时会出现training error和test error同时单调递减然后趋于一个大于0

的定值的情况。让我们先把test error丢到一边,单从training error上来看,传统的经验告诉我们,随着

模型的复杂度的增加,training error应该逐渐减小到0才对,毕竟,training sample对模型来说是可见的,

极端情况下,模型只需要做一个memorization就可以了。如果training error不能减小到0,这说明,不管

模型的复杂度增加多少,模型都是underfitting的(至少对training sample来说是的)。怎么会这样?


文章内容:

Yann N. Dauphin和Yoshua Bengio认为,目前的随机梯度下降算法并不适用于large neural network。所以,

就算增加了模型的复杂度,使得模型有能力去表达更复杂的数据,但是,我们目前无法将模型的这种能力

挖掘出来。

为了验证这种想法,Yann N. Dauphin和Yoshua Bengio在ImageNet上做了实验。 首先在图像上提取SIFT

特征,然后用k-means聚类得到1000个 visual words。之后这些特征被送到一个单隐含层的神经网络,

输出层用softmax进行分类。实验的目的在于,探求training error和model complexity之间的关系。为了

得到最小的training error,该实验没有用任何正则化方法。(几乎所有的正则化方法都是在解决overfitting

的问题,而该实验想解决的是underfitting的问题)

由于只有一个隐含层,该模型的tuning parameter只有两个,隐含层的神经元的个数和学习速率。前者直接

与模型复杂度相关,后者采用gird search的方法在[0.1, 0.01]之间取最优值。

实验结果:

这张图说的就是引言中提到的情况,随着模型复杂度的上升,training error递减并趋于一个大于0的常数。

这说明,模型复杂度的增加并不能解决underfitting的问题。


这张图说的是隐含层节点数和增加一个节点所去掉的错误样本(训练过程)的个数之间的关系。如果模型是

well-trained的话,每增加一个节点所去掉的错误样本应该接近常数才对,因为,对于单隐含层的神经网络来说,

网络的表达能力和隐含层节点的个数应该呈现近似线性相关的关系。因此,上图实际上是说,随着网络的增大,

增加隐含层节点所得到的收益迅速减小,即所谓的 highly diminishing returns。


讨论:

Yann N. Dauphin和Yoshua Bengio认为,这种highly diminishing returns是当前普遍使用的一阶梯度下降算法

的一个failure。

In fact, we know that the first order approximation fails when there are a lot of interactions between
hidden units. It may be that adding units increases the interactions between units and causes the
Hessian to be ill-conditioned.

所以,有两种解决方法:

1. 打断节点之间的interaction,使得Hessian矩阵变得better conditioned.

2. 更好的训练算法,将节点之间的interaction也考虑进去。其实就是要考虑Hessian矩阵。


comment:

文章的观点新颖,但是实验部分有一些值得商榷的地方。比如,用SIFT+k-means提取特征而并非直接

使用原始数据,没有考虑特征提取所引起的信息丢失;用错误率/错误样本数的评判准则似乎不妥,

因为,容易被分类的样本在模型较小的时候就已经被正确分类了,剩下的顽固分子本来就很难被分类,

它的分类的困难程度应该比容易分类的样本要高很多,如果模型的复杂程度线性增加的话,剩下的难

分类的样本的困难程度应该呈非线性递增才对。另外,单层神经网络得到的结论是否适用于deep的神

经网络,这也是一个问题。