概念
在线性回归的原始版本中,只有一个特征x,也就是房屋的大小,我们依据x来预测y,也就是房屋的价格,该模型是
f
w
,
b
(
x
)
=
w
x
+
b
f_{w,b}(x)=wx+b
fw,b(x)=wx+b
但是现在我们在预测房屋价格的时候,并不仅仅考虑房屋的大小,还要考虑卧室的数量,楼层的数量和房屋的使用年限,那会怎么样呢?
对此,我们要引出一些新的符号,我们将使用变量X_1,X_2,X_3,X_4来表示这四个特征,在这里我们用 X_{j} 来表示第 j 个特征(比如X_{1}就代表第一列),用n来表示特征的总数,用X^{i}, 上标 i 来表示第i个训练示例,或者我们称它为包含第 i 个训练示例的所有特征的向量(比如X^{2}就代表第二行),或者有时我们称它为包含第 i 个训练示例的所有特征的向量。这里或许可以用上行下列来记忆。综合起来上面的内容,我们用X_{j}^{i}来表示第 i 个训练样本中的第 j 个特征的数值,比如X__{1}^{2} 就表示第二个训练样本的房屋大小的值1416。
由于多了几个特征,之前的模型也要做进一步的修改
f
w
,
b
(
x
)
=
w
1
x
1
+
w
2
x
2
+
w
3
x
3
+
w
4
x
4
+
b
f_{w,b}(x)=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+w_{4}x_{4}+b
fw,b(x)=w1x1+w2x2+w3x3+w4x4+b
b我们可以理解为房子的底价,w_{1}可以理解为房子每增加一平方英尺,房价会上涨多少,其余的也类似。那假如有n个特征,模型将会是下面这样
f
w
,
b
(
x
)
=
w
1
x
1
+
w
2
x
2
+
…
…
+
w
n
x
n
+
b
f_{w,b}(x)=w_{1}x_{1}+w_{2}x_{2}+……+w_{n}x_{n}+b
fw,b(x)=w1x1+w2x2+……+wnxn+b
下面我们要引入一些符号,以简单等效的重写下面这个表达式。
我们将w定义为一个数字列表,其中参数为w_{1},w_{2},w_{3},……w_{n}, b就是一个单纯的数字,不是一个向量,这里的向量w和数字b一起组成了模型的参数。那上面的式子就可以表示为
f
w
,
b
(
x
)
=
w
⋅
x
+
b
=
w
1
x
1
+
w
2
x
2
+
w
3
x
3
…
…
w
n
x
n
+
b
f_{w,b}(x)=w\cdot x+b=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}……w_{n}x_{n}+b
fw,b(x)=w⋅x+b=w1x1+w2x2+w3x3……wnxn+b
这种具有多个输入特征的线性回归模型就是多元线性回归
梯度下降
假如我们现在有一个问题,有16个特征和16个参数
w
=
(
w
1
,
w
2
,
w
3
,
…
…
w
16
)
d
=
(
d
1
,
d
2
,
d
3
,
…
…
d
16
)
w=(w_{1},w_{2},w_{3},……w_{16})\\ d=(d_{1},d_{2},d_{3},……d_{16})
w=(w1,w2,w3,……w16)d=(d1,d2,d3,……d16)
d里面存储导数的值,在这个问题中,我们将先忽略参数b,现在,我们要计算这16个参数中每一个的更新
w = np.array([0.5,1.3,……,3.4])
d = np.array([0.3,0.2,……,0.4])
w j = w j − 0.1 d j f o r j = 1 , 2 , … … 16 0.1 是学习率 w_{j}=w_{j}-0.1d_{j} \ \ \ \ \ \ \ \ \ \ for j=1,2,……16\ \ \ \ 0.1是学习率 wj=wj−0.1dj forj=1,2,……16 0.1是学习率
如果不用向量处理的话,我们需要做一下操作
for i in range(0,16):
w[j] = w[j]-0.1*d[j]
如果使用向量化处理的话,就可以利用计算机的并行处理,代码实现如下
w = w - 0.1 * d
也许只有16个特征时,处理的速度差异并不明显,但是如果是非常大的训练集,将会在学习时间上产生很大的差距
对于梯度下降算法,如果不使用向量化处理,则重复以下操作:
w
j
=
w
j
−
α
δ
δ
w
j
J
(
w
1
,
…
…
w
n
,
b
)
b
=
b
−
α
δ
δ
b
J
(
w
1
,
w
2
,
…
…
,
w
n
,
b
)
w_{j}=w_{j}-\alpha \frac{\delta}{\delta w_{j}}J(w_{1},……w_{n},b)\\ b=b-\alpha \frac{\delta}{\delta b}J(w_{1},w_{2},……,w_{n},b)
wj=wj−αδwjδJ(w1,……wn,b)b=b−αδbδJ(w1,w2,……,wn,b)
如果使用向量化操作,则重复以下操作:
w
j
=
w
j
−
α
δ
δ
w
j
J
(
w
,
b
)
b
=
b
−
α
δ
δ
b
J
(
w
,
b
)
w_{j}=w_{j}-\alpha \frac{\delta}{\delta w_{j}}J(w,b)\\ b=b-\alpha \frac{\delta}{\delta b}J(w,b)
wj=wj−αδwjδJ(w,b)b=b−αδbδJ(w,b)
得到梯度下降公式:
w
1
=
w
1
−
α
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
i
)
x
1
i
w
2
=
w
2
−
α
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
i
)
x
2
i
…
…
w
n
=
w
b
−
α
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
i
)
x
n
i
b
=
b
−
α
1
m
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
i
)
w_{1}=w_{1}-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})x_{1}^{i}\\ w_{2}=w_{2}-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})x_{2}^{i}\\ ……\\ w_{n}=w_{b}-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})x_{n}^{i}\\ \\ b=b-\alpha \frac{1}{m} \sum_{i=1}^{m} (f_{w,b}(x^{(i)})-y^{i})\\
w1=w1−αm1i=1∑m(fw,b(x(i))−yi)x1iw2=w2−αm1i=1∑m(fw,b(x(i))−yi)x2i……wn=wb−αm1i=1∑m(fw,b(x(i))−yi)xnib=b−αm1i=1∑m(fw,b(x(i))−yi)