如何提高深度学习的泛化能力?

Posted 有理想、有本领、有担当的有志青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提高深度学习的泛化能力?相关的知识,希望对你有一定的参考价值。

数据增强

在样本有限的情况下,采用数据增强的方法对原有样本进行变换:

  • 平移、旋转、镜像翻转

  • 几何变换、对比度变换、颜色变换、添加随机噪声、图像模糊

  • 弹性变换算法:双线性插值、双三次插值

预处理

  • 均值减法:每个图像,减去所有图像的均值,使整个训练样本均值为0
  • 均一化:对样本图像进行均值减法后,再除以标准差,使整个训练样本均值为0,方差为1
  • 白化(ZCA):用到奇异值分解,使图像中物体的边缘更加清晰

Dropout

在网络的训练过程中,按照预先设定的概率将一部分中间层的单元暂时从网络中丢弃,通过把该单元的输出设置为0使其不工作,来避免过拟合。但是对被舍弃单元进行误差反向传播计算时,仍使用被舍弃之前的原始输出值

可用于训练包含全连接层的神经网络

训练完后,在识别时使用全部单元。对经过Dropout处理过的层要多乘一次训练时设定的概率(因为训练时舍弃了一部分,这时候识别要用全部的,多了)

DropConnect

与Dropout相似,DropCnooect是按照概率将一部分权重设置为0。相比之下,DropConnect更不容易发生过拟合

但是,没有免费的午餐,DropConnect训练难度更大,对随机数的依赖更高,所以Dropout使用更普遍

以上是关于如何提高深度学习的泛化能力?的主要内容,如果未能解决你的问题,请参考以下文章

[人工智能-深度学习-19]:神经网络基础 - 模型训练 - 泛化过拟合欠拟合以及常见的解决办法

深度学习为何泛化好?CMU博士论文《解释深度学习中的泛化性》

深度学习为何泛化好?CMU博士论文《解释深度学习中的泛化性》

深度学习——计算机视觉

一文浅谈深度学习泛化能力

[人工智能-深度学习-3]:张量tensor是数组Aarry和矩阵Matrix的泛化