作者:郭原雪2865 | 来源:互联网 | 2023-10-12 15:14
步骤:1数据集2模型选择(根据数据集的情况进行选择)3训练(knn等)大部分都需要training4推理训练好以后对以后的预测和应用输入x预测y以上监督学习训练好了
步骤:
1 数据集
2 模型选择(根据数据集的情况进行选择)
3 训练(knn等)大部分都需要training
4 推理
训练好以后对以后的预测和应用
输入 x
预测 y
以上监督学习
训练好了以后需要测试集进行评估
随机猜测(对于权重可以使用随机猜测进行)
平均损失,可以看到当预测是3,6,9的时候,平均损失是14/3。
因此为了得到比较好的模型,更好的反应理想分布,这个时候就要找最小的损失。
另外,为什么要使用平方了,为了防止误差有负数,相互抵消了。
MSE(Mean Square Error)
综上可知,为了解决这个问题,就要找到这样的预测权重值,使得误差最小,这就是我们要求取的权重值。
初中学数学的时候,为了验证,我们采用穷举法,就是尽可能多的列举数据,去验证和计算。
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_list = []
mse_list = []
for w in np.arange(0.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)l_sum_min = min(mse_list)print(l_sum_min)
plt.plot(w_list,mse_list,c='g')
plt.ylabel('loss')
plt.xlabel('w')
plt.show()
w= 4.0
1.0 2.0 4.0 4.0
2.0 4.0 8.0 16.0
3.0 6.0 12.0 36.0
MSE= 18.666666666666668
0.0
上面每一步的作用我都有注释,有助于各位理解。
学习心得
概括一下就是,学习深度学习的时候,无非就是下面几步
1 准备数据集(生成或者导入)
2 根据数据的情况构建模型
3 定义前向传播和反向传播
4 代入训练模型
5 可视化训练结果
注意:后面学习的是通过epoch作为横坐标,本实验用的是w(权重)作为横坐标,是不一样的,因为在训练的时候,如果模型比较负责,权重就不会是线性的,可能是一个平面的。因此后面就会通过训练的轮数作为训练的结果可视化的横坐标,这样就可以根据每一轮训练的损失作为纵坐标,从而进行展示。