Linear Model : y=x*ω
机器会随机生成一个a random guess,ω = random value
找一个评估模型LOSS,用loss来评价预测模型与已知模型之间的差别。试图找mean loss(平均损失值)趋于0
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,3.0,4.0]
#预测模型
def forward(x):
return x * w
#定义损失函数
def loss(x,y):
y_pred = forward(x)
return (y_pred-y)*(y_pred-y)
#记录w和对应的MSE数组,进而选择最小的MSE。
w_list = []
mse_list = []
for w in np.arange(0.0,4.1,0.1): #从0.0开始,到4.1,每次间隔为0.1.
print("w=",w)
l_sum=0
for x_val,y_val in zip(x_data,y_data): #每次将x_data和y_data拿出来赋值给x_val和y_val再进行计算。
y_pred_val = forward(x_val)
loss_val = loss(x_val,y_val)
l_sum += loss_val
print('\t',x_val,y_val,y_pred_val,loss_val)
print('MSE=',l_sum/3)
w_list.append(w) #添加相应的w
mse_list.append(l_sum/3) #添加相应的Mse
plt.plot(w_list,mse_list)
plt.ylabel('Loss')
plt.xlabel('w')
plt.show()