过拟合与droupout

过拟合与欠拟合都与模型的复杂度是相关的,即模型的复杂度较高时容易出现过拟合,模型复杂度较低时容易出现欠拟合。

防止过拟合的方式

dropout

  • 由于是随机丢弃神经元,所以每个mini-batch训练的网络都是不同的。当将一半的神经元失活,对保留的神经元进行梯度下降,这一过程就是使用保留的网络结构对数据进行学习;第二次迭代时,继续使用保留的网络结构进行学习,比如说500次,这种固定的网络结构就可以达到一定的拟合效果;500次后再将一半的神经元失活,对保留的神经元进行梯度下降(对前面保留的不一致)重复前面的过程,这第二种固定的网络结构也可以达到一定的拟合效果;以此类推,就会有多种这样的网络结构,都会有一定的拟合效果;

  • 对于一个含有N个节点的神经网络来说,经过dropout之后,可以看做2^n个模型的集合,同时训练的参数数目依然保持不变,这解决了 大规模神经网络训练费时 的问题

  • 由于可以看做2^n个模型的集合,dropout可以看做bagging的一个形式。同时每个模型的每个参数都与其他模型进行共享,从而实现了 高度的正则化 。正则化减少了神经元之间的共适应关系,因为dropout程序导致两个神经元不一定每次都在一个dropou网络中出现,这种的权值更新不再依赖有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其他特定特征下才有效果的情况。迫使网络去学习更加鲁棒的特征。

  • 在测试过程中不使用随机失活,可以理解为:对数量巨大的子网络们做模型集成(即不失活的神经网络被认为是多个随机失活神经网络的集成),以此计算出一个平均的预测。

你可能感兴趣的:(深度学习基础知识的理解)