电子商务网站制作公司,软件技术岗位有哪些,网站建设二级菜单,wordpress分享后可见导数
先了解导数#xff0c;也就是梯度 解释梯度#xff1a;yf(x) x2(随机取一个值)#xff0c;然后x变化了△x(趋向于0)#xff0c;y值变化了△y#xff0c;△y除以△x 就是x2的梯度。当x等于一个值#xff0c;对应的梯度为0#xff0c; 代表了y到了该函数的极…导数
先了解导数也就是梯度 解释梯度yf(x) x2(随机取一个值)然后x变化了△x(趋向于0)y值变化了△y△y除以△x 就是x2的梯度。当x等于一个值对应的梯度为0 代表了y到了该函数的极大值或者极小值。 举例 函数yx*x 梯度也就是导数高中学过求导函数y2x 当x2,x变化了0.1(△x0.01)x2的导数为((20.1)*(20.1)-2*2)/((20.1)-2)4.1 约等于4跟导数y2x计算的结果接近△x越小越接近。 x在某一点的导数值代表了切线的陡与缓。值趋向于0代表了y也就是目标值到了极大值或者极小值。
线性回归开始
w4;//预设置权重
x_data[1,2,3];
y_data[2,4,6];
1、定义前向传播函数也就是数学模型 比如 yw*x; def forword(x){return w*x;}
2、定义损失函数使用设置的w权重计算出来实际样例数据与模型计算出来的数据取差值的平方和然后取平均 def cost(xs,ys){costval 0;for x,y in zip(xs,ys){y_pred fowrod(x);costvalcostval(y_pred-y)**2;//计算出来实际样例数据与预测出来的数据取差值的平方和,存储到变量costval}return costval / len(xs);}
3、定义计算梯度的函数。这里的因变量是w相当于yf(x)中的x。 导函数为 2*x*(x*w-y)。使用真实数据灌入梯度函数求出来平均梯度。 当平均梯度越小一般情况第二步的损失函数的值也越小除非数据与模型严重不吻合梯度越小代表了变化量越小差值越小。grandint得到的值越小w的取值使损失函数的值越小偏差越小越吻合模型。
def grandint(xs,ys):grad0for x,y in zip(xs,ys):gradgrad2*x*(x*w-y)return grad/len(xs)
4、训练训练100轮
for i in range(100):cost_valcost(x_data,y_data)grad_valgradient(x_data,y_data)ww-0.1*grad_val;//0.1为步长