1 问题:过拟合

2 原因:特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多

             机器学习算法为了满足尽可能复杂的任务,其模型的拟合能力一般远远高于问题复杂度

3 方法:

  1.  获取更多数据
  1. 从数据源头获取更多数据
  2. 根据当前数据集估计数据分布参数,使用该分布产生更多数据:这个一般不用,因为估计分布参数的过程也会代入抽样误差。
  3. 数据增强(Data Augmentation):通过一定规则扩充数据
  1. 使用合适的模型
  1. 通过使用合适复杂度的模型来防止过拟合问题,让其足够拟合真正的规则,同时又不至于拟合太多抽样误差
  2. 四个方面来限制网络能力
  1. 2.1 网络结构 Architecture  这个很好理解,减少网络的层数、神经元个数等均可以限制网络的拟合能力;
  2. 2.2 训练时间 Early stopping 对于每个神经元而言,其激活函数在不同区间的性能是不同的:这个很好理解,减少网络的层数、神经元个数等均可以限制网络的拟合能力;
  3. 2.3 限制权值 Weight-decay,也叫正则化(regularization)     这类方法直接将权值的大小加入到 Cost 里,在训练的时候限制权值变大
  4. 2.4 增加噪声 Noise   在输入中加噪声:在权值上加噪声对网络的响应加噪声
  1. 3. 结合多种模型  训练多个模型,以每个模型的平均输出作为结果
  1. Bagging  分段函数
  2. Boosting   训练复杂神经网络比较慢,那我们就可以只使用简单的神经网络(层数、神经元数限制等)。通过训练一系列简单的神经网络,加权平均其输出
  3. Dropout
    这是一个很高效的方法
  1. 贝叶斯方法

GRNN过拟合_拟合