文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
注:本文为李沐大神的《动手学深度学习》的课程笔记!
高维线性回归
使用线性函数$y = 0.05 + \sum_{i = 1}^p 0.01x_i + \text{noise}$生成数据样本,噪音服从均值0和标准差为0.01的正态分布。
1 | # 导入mxnet |
生成数据集
1 | # 训练数据数量 |
1 | # 生成数据 |
1 | # 批数据大小 |
初始化模型参数
1 | def init_params(): |
$L_2$ 范数正则化
在训练时最小化函数为:$\text{loss} + \lambda \sum_{p \in \textrm{params}}|p|_2^2。$
1 | # L2范数 |
定义训练和测试
1 | %matplotlib inline |
观察过拟合
1 | train(0) |
('learned w[:10]:',
[[ 1.04817176 -0.02568593 0.86764956 0.29322267 0.01006179 -0.56152576
0.38436398 -0.30840367 -2.32450151 0.03733355]]
<NDArray 1x10 @cpu(0)>, 'learned b:',
[ 0.79914856]
<NDArray 1 @cpu(0)>)
使用正则化
1 | train(5) |
('learned w[:10]:',
[[ 0.00107633 -0.00052574 0.00450233 -0.00110545 -0.0068391 -0.00181657
-0.00530632 0.00512845 -0.00742549 -0.00058495]]
<NDArray 1x10 @cpu(0)>, 'learned b:',
[ 0.00449432]
<NDArray 1 @cpu(0)>)