机器学习线性模型

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) 选不好还会震荡

以上是关于机器学习线性模型的主要内容,如果未能解决你的问题,请参考以下文章

机器学习-广义线性模型

机器学习:线性模型学习总结:线性回归

机器学习-第二节:机器学习模型之线性回归

机器学习-第二节:机器学习模型之线性回归

如何搞懂机器学习中的线性回归模型?机器学习系列之线性回归基础篇

机器学习:线性模型学习总结:逻辑回归分类