过拟合处理方法

过拟合处理方法

- 增加数据集

这是我用三阶函数拟合,但是只给定两个数据训练。可以看出来拟合不好,特点是train的loss能降下去,但是test效果不好。解决方法之一是增加数据集
在这里插入图片描述

我将数据集增加到4个:
在这里插入图片描述
效果好了一些

增加到6个:

在这里插入图片描述
已经差不多了,最后我增加到8个:

在这里插入图片描述
可以看得出来,拟合得很好了。

- 权重衰减

在这里插入图片描述

n_train, n_test, num_inputs = 20, 100, 200
true_w, true_b = torch.ones(num_inputs, 1) * 0.01, 0.05

features = torch.randn((n_train + n_test, num_inputs))
labels = torch.matmul(features, true_w) + true_b
labels += torch.tensor(np.random.normal(0, 0.01, size=labels.size()), dtype=torch.float)
train_features, test_features = features[:n_train, :], features[n_train:, :]
train_labels, test_labels = labels[:n_train], labels[n_train:]

数据是设置的200个特征,train_data 20个,test_data 100个。

将lambd设置为0,即不使用L2范数正则化,可以看到过拟合了。
在这里插入图片描述

将lambd设置为3,可以看到拟合效果好了一些。
在这里插入图片描述
设置到30
在这里插入图片描述
应该已经是到达极限了。

- 丢弃法(dropout)

在这里插入图片描述
测试结果:

加入dropout层:
在这里插入图片描述
未加入dropout层:

在这里插入图片描述
从结果上面看其实差不多,加入dropout略有提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值