1、欠拟合
欠拟合:使用的模型的复杂度小于真实模型的复杂度,training loss和accuracy不满足满意度,test的loss和accuracy也比较差
2、过拟合
过拟合:使用模型复杂度大于训练模型复杂度,training的情况很好。test拟合不好。泛化能力不好。
3、检测overfitted:
将数据集划分为train,test,val三个数据集。训练集,验证集,测试集。其中测试集是是客户手中的数据。val set选择什么时候停止。
数据集划分:train划分再进行成为train和val的数据集
train-val-test
k-fold cross-validation
将数据集划分为训练集和测试集之后,将训练集划分为训练集与验证集,将这部分数据集进行切分组合,选择不同数据做验证集。将数据集划分为n份,其中的n-1份做训练集,剩余的1份做验证集。
4、减轻overfitted
regularization(正则化):减小模型复杂度,使得参数变小。在原来loss上面加一个一范数
5、动量和学习率衰减:
将w梯度方向加上一个向量,靠惯性冲出局部极小值。找到最大的坑。
学习率逐渐衰减:由大到小
传一个min监看loss连续多少个epoch没有减少
选择多少个epoch进行更新learning rate
6、Early Stop,Dropout
Early Stopping:用validation做模型参数选择,在最高点的validation performance(accuracy)提前结束。
dropout:在训练的时候迫使w减少,有效的w留下且小。w有概率。断掉一些数据输入。在test时候这些断掉的连接层又出现。
stochastic gradient descent:符合某一个分布
什么是随机梯度下降?
随机抽取小量样本进行梯度计算。
什么是梯度下降?
使用全部样本进行梯度计算。
深度学习中的体现:
每次只计算一个batch(随机抽取样本中设定的batchsize大小的图片)的梯度,去更新模型权重。
为什么使用随机梯度下降?
- 深度学习不是凸优化问题,梯度下降会陷入局部最优,用随机梯度下降跳出局部最优解。
2.数据量大,不能一次性计算所有训练集的梯度。