线性回归 Linear Regression

线性回归详细代码请移步此处

对于线性模型:
y = w × x + b y=w×x+b y=w×x+b

其中,w为权重,初始值在本次代码中采用正态分布随机数,偏置b初始化为0.0

y p r e y_{pre} ypre 表示线性模型的预测值, y r e a l y_{real} yreal 表示对于输入x对应的真实标签,则损失函数采用均方误差:
E r r o r = ( y p r e − y r e a l ) 2 Error=(y_{pre}-y_{real})^{2} Error=(ypreyreal)2

将线性模型公式带入得到:
E r r o r ( x ) = ( ( w × x + b ) − y r e a l ) 2 Error(x)=((w×x+b)-y_{real})^{2} Error(x)=((w×x+b)yreal)2

这个式子就变成了关于x的一元二次函数,且开口向上,那么,预测问题就变成了降低误差问题,进一步变成了寻找抛物线最低点的问题:
[NN]线性回归 Linear Regression
E r r o r ( x ) Error(x) Error(x)的斜率,可用grad(param)=tf.GradientTape().gradient( E r r o r ( x ) Error(x) Error(x), param)来获得,那么权重w和偏置b的更新公式为:
w = w − η ∗ g r a d ( w ) w=w- \eta *grad(w) w=wηgrad(w)
b = b − η ∗ g r a d ( b ) b=b- \eta *grad(b) b=bηgrad(b)
其中, η \eta η 成为步长(step size)或者学习率(learning rate)
只要设定一个合理的学习率,w和b就会一步步靠近最低点,但是如果步长过大,就很难收敛到最低点,俗称步子迈太大容易扯到蛋:
[NN]线性回归 Linear Regression

相关文章: