#目标直线y=w_t*x+b_t import random #定义学习率 a=0.01 epoch = 3000 #初始化 w=random.random() b=random.random() w_t=random.random() b_t=random.random() print(w_t,w,b_t,b) for i in range(epoch): #生成样本数据 x=random.random() y=w_t*x+b_t #函数(y-wx-b)*(y-wx-b)的偏导数 g_w=-2*(y-w*x-b)*x g_b=-2*(y-w*x-b) #更新 w=w-a*g_w b=b-a*g_b print(w,b)
运行结束时w,b和w_t,b_t的值基本接近