机器学习线性模型
Posted colleenhe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习线性模型相关的知识,希望对你有一定的参考价值。
最小二乘法(LMS)
给定数据 (D={(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(N)},y^{(N)})}) ,(h_{ heta}(x)= heta^T x= heta_0x_0+ heta_1x_1+...+ heta_nx_n= heta_0+ heta_1x_1+...+ heta_nx_n)
给定 (N) 组数据:
[ heta_0+ heta_1x_1^{(1)}+ heta_2x_2^{(1)}+...+ heta_nx_n^{(1)}=y^{(1)}]
[ heta_0+ heta_1x_1^{(2)}+ heta_2x_2^{(2)}+...+ heta_nx_n^{(2)}=y^{(2)}\vdots]
[ heta_0+ heta_1x_1^{(N)}+ heta_2x_2^{(N)}+...+ heta_nx_n^{(N)}=y^{(N)}]
求解 ( heta),使得输入 (x),得到 (y)。求解线性方程组。
(Rightarrow A =egin{matrix} 1&x_1^{(1)}&dots &x_n^{(1)}\1&x_2^{(1)}&dots &x_n^{(2)}\vdots &vdots& quad &vdots\1&x_1^{(N)}&dots &x_n^{(N)}end{matrix})
每一行 (d_i) 代表一组数据,每一列 (x_i)代表一个向量
( heta =egin{matrix} heta_0 \ heta_1 \ vdots \ heta_nend{matrix})
(Y=egin{matrix}y^{(0)} \y^{(1)} \ vdots \ y^{(N)}end{matrix})
(Rightarrow A heta = Y)
矩阵下 (cost function):
[S=min_{ heta}||A heta-Y||_2^2quad (二范数的平方)\=(A heta-Y)^T(A heta-Y)\=( heta^TA^T-Y^T)(A heta-Y)\= heta^TA^TA heta- heta^TA^TY-Y^TA heta+Y^TY\= heta^TA^TA heta-2 heta^TA^TY+Y^TY]
最优解即:
[frac{partial S}{partial heta}=0 Rightarrow frac{ heta^TA^TA heta-2 heta^TA^TY+Y^TY}{partial heta}=frac{partial ( heta^TA^TA heta)}{partial heta}-2A^TY+0]
因为 (frac{d(u^Tv)}{dx}=frac{du^T}{dx}v+frac{dv^T}{dx}u)
所以 (frac{d(x^Tx)}{dx}=frac{dx^T}{dx}x+frac{dx^T}{dx}x=2x)
进一步 (frac{d(x^TBx)}{dx}=frac{dx^T}{dx}Bx+frac{dx^TB^T}{dx}x=Bx+B^Tx=(B+B^T)xquad B是方阵)
应用到方程中,将 (A^TA) 对应方阵 (B),则 (frac{partial S}{partial heta}=2A^TA heta-2A^TY=0quad Rightarrow A^TA heta = A^TY)
[ heta=(A^TA)^{-1}A^TY]
- 数据较小时(不超百万)用最小二乘法代替梯度下降可以取得不错的结果。
- 求矩阵的逆是最消耗时间的
- 用梯度下降会存在收敛问题,步长(alpha) 选不好还会震荡
以上是关于机器学习线性模型的主要内容,如果未能解决你的问题,请参考以下文章