假设输入输出间为线性关系,其中
x∈Rn
x
∈
R
n
,
w∈Rn
w
∈
R
n
,预测输出为
yˆ
y
^
。定义输出为:
yˆ=wTX
y
^
=
w
T
X
使用均方误差作为P来衡量模型的性能,则损失函数为(其中
12m
1
2
m
的2加在常数项不影响结果):
loss=12m∑i=1m(yˆ(i)−y(i))2
l
o
s
s
=
1
2
m
∑
i
=
1
m
(
y
^
(
i
)
−
y
(
i
)
)
2
则目标任务则为:
argminloss:argmin12m∑i=1m(yˆ(i)−y(i))2
a
r
g
m
i
n
l
o
s
s
:
a
r
g
m
i
n
1
2
m
∑
i
=
1
m
(
y
^
(
i
)
−
y
(
i
)
)
2
可以直观的得出当
yˆ−y
y
^
−
y
时loss最小,则问题可转化为
argmin12m||yˆ−y||22
a
r
g
m
i
n
1
2
m
|
|
y
^
−
y
|
|
2
2
设
Cost=12m||yˆ−y||22
C
o
s
t
=
1
2
m
|
|
y
^
−
y
|
|
2
2
,对
w
w
求导如下:
ddwCost=1md(Xw−y)T(Xw−y)dw
d
d
w
C
o
s
t
=
1
m
d
(
X
w
−
y
)
T
(
X
w
−
y
)
d
w
=12md(Xw−y)T(Xw−y)dw
=
1
2
m
d
(
X
w
−
y
)
T
(
X
w
−
y
)
d
w
=12md(wTXTXw−wTXTy−yTXw+yTy)dw
=
1
2
m
d
(
w
T
X
T
X
w
−
w
T
X
T
y
−
y
T
X
w
+
y
T
y
)
d
w
标量转置为其本身:
=12md(wTXTXw−2yTXw+yTy)dw
=
1
2
m
d
(
w
T
X
T
X
w
−
2
y
T
X
w
+
y
T
y
)
d
w
ddwCost=1mXT(Xw−y)
d
d
w
C
o
s
t
=
1
m
X
T
(
X
w
−
y
)
使用梯度下降法同步更新
w
w
:
w=w−αddwCost
w
=
w
−
α
d
d
w
C
o
s
t
其中“偏置”通过训练时在样本中增加全1个体获取。
Note1:矩阵求导只是将单个数据的求导矩阵化,根据矩阵的组成方式即可得出结果,如果个别求导过程存在疑问,可以参考:https://en.wikipedia.org/wiki/Matrix_calculus#Scalar-by-vector_identities
以上为线性回归的基本思想,更具体描述待补充。
具体实现见:https://github.com/Alnlll/ML/tree/master/lr