这个比较简单,但也记录一下。(要深入起来也不容易呀)
问:怎么防止过拟合?[头条,百度,boss直聘]
-
早停 Early stopping
Early stopping方法的 具体做法 是,在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算validation data的accuracy,当accuracy不再提高时,就停止训练。
一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy,当连续10次Epoch(或者更多次)没达到最佳accuracy时,则可以认为accuracy不再提高了。此时便可以停止迭代了(Early Stopping)。 -
数据集扩增
“有时候往往拥有更多的数据胜过一个好的模型。” 因为我们在使用训练数据训练模型,通过这个模型对将来的数据进行拟合,而在这之间又一个假设:训练数据与将来的数据是独立同分布的。
更多的数据有时候更优秀。但是往往条件有限,如人力物力财力的不足,而不能收集到更多的数据。
(问:采用什么样的方法可以降低获取数据的成本?)
半监督,或无监督学习。先聚类得到大致的类别,再人工标注。
常见的六大聚类算法
(有机会我再总结一下)
数据集扩增 需要得到更多的 和已有的数据是独立同分布的,或者近似独立同分布的数据。
一般有以下方法:
a 从数据源采集更多数据
b 复制原有数据并加上随机噪声
(有时候噪声是有用的,可以防止过拟合,因为它更能模拟真实的输入,比如手写数字样本,有的人数字写的不好,但又不能算错)<个人理解>
c 重采样
d 根据当前数据集估计数据分布参数,使用该分布产生更多数据等
e 如果是图片,可以做一些旋转,镜像,缩放等操作。 -
正则化
在进行目标函数或代