<Pytorch深度学习实践>(一):线性模型

线性模型

目的

   通过已有的离散数据来学习到一个线性函数: y = f ( x ) = w x + b y=f(x)=wx+b y=f(x)=wx+b,用函数 f ( x ) f(x) f(x) 来预测新数据的类别。其中要学习的参数则是权重 w w w 和偏置 b b b
  Training loss:loss=( ( y ^ − y ) 2 = ( x ∗ w − y ) 2 (\hat{y}-y)^{2}=(x*w-y)^2 (y^y)2=(xwy)2)
  Mean Square Error (MSE): c o s t = 1 / N ∑ n = 1 N ( y ^ n − y n ) 2 cost=1/N\sum_{n=1}^{N}{(\hat{y}_n-y_n)^2} cost=1/Nn=1N(y^nyn)2
  代码:(穷举法)

import numpy as np
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=0
	for 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_val
		print(x_val,y_val,y_pred_val,loss_val)
	print("MSE=",l_sum/3)
	w_list.append(w)
	mse_list.append(l_sum/3)
print(w)
print(mse_list)

你可能感兴趣的:(学习笔记,java,设计模式,机器学习)