了解网络容量以及超参数的基本概念。知道通过增加神经元以及增加隐藏层的方式可以提高准确率,但是同时会导致训练难度大、过拟合等问题。
网络容量
可以认为与网络中的可训练参数成正比。网络中的神经单元数越多,层数越多,神经网络的拟合能力越强。但是训练速度、难度也就越大,越容易产生过拟合。
一般来说,神经网络的参数对应着一组函数:函数集。我们之所以能够使用一个神经网络来逼近(拟合)某个目标函数是因为这个函数集包含了我们想要拟合的目标函数。这里容量就是神经网络表示函数集要包含目标函数。 显然大的容量才让我们的搜索有保障。
理论上已经证明足够多层的神经网络是可以拟合任何函数的。但是,实践中,我们网络的层数不可能是那么的多,而且层数增多训练压力也变大,效果变差。后来出现了ResNet等技术等为深层网络的训练提供了支持。
增加网络容量主要有两个方法,第一种是增加神经元的数量,第二种是增加网络的层数。
超参数的概念
超参数的设置对最终网络的表现影响甚大,例如隐藏层与隐藏单元的数量,网络的深度与结构,激活函数,优化器,损失函数等重要配置等。所谓超参数,就是在搭建神经网络过程中,需要我们自己去选择的参数,并不是那些需要通过梯度下降算法去优化的参数。例如中间层的神经元个数、学习速率等都是超参数。
如何提高网络的拟合能力?
一种很显然的想法就是增大网络容量:1、增加层;2、增加隐藏神经元个数
那么这两种方法哪种更好呢?
单纯增加神经元个数对于网络性能的提高并不是很明显,增加层会大大提高网络的拟合能力,这也是为什么深度学习的层越来越深的原因。但是单层的神经元个数不能太少,太少的话,会造成瓶颈使得模型欠拟合。
实例展示
一开始使用单层的神经网络进行训练的结果,准备率不到90%:
现在尝试增加层的数量,再去查看正确率情况:
显然正确率得到了提高。
但是正如前面所说,过多的隐藏层训练速度、难度大,越容易产生过拟合。具体什么是过拟合以及如何抑制过拟合,将在下一篇文章中进行讲解。
2 条评论
活捉大佬一枚!
哈哈,菜狗飘过~~