-
训练集,验证集,测试集。
-
k-折交叉验证:把数据分为k份,其中一份作为验证集,得到训练精度。循环k次分别将数据用作验证集,取平均值为最后结果。
-
过拟合:训练误差减小,但是泛化误差先减小,后增加。两个误差gap大。
解决:模型足够大,再控制模型容量。- 估计模型容量(比较同类算法模型):
- 模型参数的个数,参数的选择范围。
- 估计数据复杂度:样本个数,每个样本的元素个数,时间,空间结构。 - 模型容量要和数据复杂度匹配,才能避免过拟合和欠拟合。
- 如何控制模型容量?-控制参数取值范围:
- 硬性限制,参数<a
- 柔性限制:加正则项——权重衰退 :使得模型参数不会过大,控制模型复杂度。|note
-
dropout: 多用在MLP,
python
- lambda argument_list: expression表示的是一个函数。这个函数叫做lambda函数。argument_list是输入,带入expression得到输出。
- assert expression : Expression为False时,返回AssertError
- Tips:
- mask = (torch.Tensor(X.shape).uniform_(0, 1) > dropout).float()
输出0、1矩阵,并且用mask相乘比 X[mask] = 赋值运算速度快。
- mask = (torch.Tensor(X.shape).uniform_(0, 1) > dropout).float()