线性回归是一种常用的机器学习回归算法,其原理是通过输入和输出学习回归函数,确定回归参数向量w和截距b。对于新的样本x,其预测值为y^=xw+b。式中,x是n−1维横向量,x=[x1,x2,...,xn−1],w是n−1维列向量,w=[w1,w2,...,wn−1]T。
通常,为了方便表示,将b写入w中,x中也在末尾增加一个1,因此w、x、y^分别变为:
w=[w1,w2,...,wn−1,b]Tx=[x1,x2,...,xn−1,1]y^=xw
线性回归的成本函数为:
21i=1∑m(yi−yi^)2
其中m为样本的数量。从成本函数可以看出,线性回归的求解是希望求得平方误差的最小值,即找到一条直线尽量拟合所有样本点。原理在这里不过多赘述,本文主要进行w的公式推导。
在推导之前,需要简单介绍矩阵求导规则。
矩阵求导规则
- 行向量对元素求导
设y=[y1,y2,…,yn]是n维行向量,x是元素,则∂x∂y=[∂x∂y1,∂x∂y2,…,∂x∂yn]
- 列向量对元素求导
设y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤是n维列向量,x是元素,则∂x∂y=⎣⎢⎢⎢⎡∂x∂y1∂x∂y2⋮∂x∂yn⎦⎥⎥⎥⎤
- 元素对行向量求导
设y是元素,x=[x1,x2,…,xn]是n维行向量,则∂x∂y=[∂x1∂y,∂x2∂y,…,∂xn∂y]
- 元素对列向量求导
设y是元素,x=⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤是n维列向量,则∂x∂y=⎣⎢⎢⎢⎢⎡∂x1∂y∂x2∂y⋮∂xn∂y⎦⎥⎥⎥⎥⎤
以上只简单介绍了元素和向量之间相互求导的方法。更详细的有关矩阵求导的内容可以参考一下两篇博客:
第二篇博客中的图片取自*,因此访问时需要踩个*。
总结几个重要的求导公式(分母布局结果,分子布局的结果为分母布局结果的转置):
-
∂x∂Ax=AT
-
∂x∂xTA=A
-
∂x∂xTAx=Ax+ATx
其中x为列向量,A为与x无关的行向量。
线性回归参数向量公式推导
本文推导过程采用分母布局。首先将成本函数矩阵化,表示为w的函数:
J(w)=21i=1∑m(yi−yi^)2=21i=1∑m(yi−xiw)2=21(Y−Xw)T(Y−Xw)=21(YT−wTXT)(Y−Xw)=21(wTXTXw−wTXTY−YTXw+YTY)
∂w∂J(w)=21[XTXw+(XTX)Tw−XTY−(YTX)T]=XTXw−XTY
令其等于0,则
XTXw−XTY=0w=(XTX)−1XTY
岭回归参数向量公式推导
岭回归其实就是L2正则化,即在成本函数后面加上对参数向量的L2正则化项,因此,成本函数变为:
J(w)=21(YT−wTXT)(Y−Xw)+2λ∣∣w∣∣2=21(YT−wTXT)(Y−Xw)+2λwTw
∂w∂J(w)=XTXw−XTY+2λ(w+w)=XTXw−XTY+λw=(XTX+λI)w−XTY
令其等于0,则
(XTX+λI)w−XTY=0w=(XTX+λI)−1XTY
公式中的λI就是岭回归的“岭”。