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