《Pytorch深度学习实践》ch1-线性模型
------B站《刘二大人》
1.Machine Learning
- 训练集,测试集;
- 开发集:将训练集拆分为(训练集,开发集),用来测试泛化的能力,模型的评估;
- 监督学习:利用一组已知类别的样本生成函数,预测新的实例;
- 过拟合:在训练集上误差很小,而测试集误差很大(噪声也被学习了);
- 泛化:对于没见过的实例也能正确地预测;
2.Model design
- 线性模型:这里简化问题,设置截距为0,即为 y = x * w;
3.Loss & Cost
- Loss:损失,用来评估模型预测误差;
- MSE:平均平方误差,计算损失平均值;
4.Draw the graph
import numpy as np
import matplotlib.pyplot as plt# 数据集
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]# 模型
def forward(x): return x * w# 损失函数
def loss(x, y):y_pred = forward(x)return (y_pred - y) * (y_pred - y)# 权重 w 为横坐标,平均平方误差 MSE 为纵坐标
w_list = []
mse_list = []
for w in np.arange(0, 4.1, 0.1):print('w=', w)l_sum = 0for x_val, y_val in zip(x_data, y_data):y_pred_val = forward(x_val)loss_val = loss(x_val, y_val)l_sum += loss_valprint('\t', x_val, y_val, y_pred_val, loss_val)print('MSE=', l_sum / 3)w_list.append(w)mse_list.append(l_sum / 3)# 绘图
plt.plot(w_list, mse_list)
plt.ylabel('Loss')
plt.xlabel('w')
plt.show()
- MSE计算结果,损失函数结果如下: