线性代数在数学、物理和计算机方面扮演的角色是非常非常重要,建议大家可以在闲暇时间认真复习复习相关的知识,对于我们理解自己的相关工作以及提升自己非常有用。接下来就简单且“重点”的概括一下矩阵的运算,毕竟在后面的推导以及学习过程中要用到。
定理一 设 A A A, B B B, C C C均为 m × n m\times n m×n矩阵, k k k, l l l为数. 则
定理二 设 A A A, B B B, C C C都是矩阵, k k k是数.则在下列各项中有意义的情况下,等式成立.
定义 设矩阵 A A A为 m × n m\times n m×n . 称矩阵 B B B为A的转置,记做 B = A T B=A^{T} B=AT 或 B = A ′ B=A' B=A′,如果 B B B是一个 n × m n\times m n×m矩阵并且对任意 i = 1 , 2 , . . . , n , j = 1 , 2 , . . . , m , [ B ] i j = A j i i=1,2,...,n,j=1,2,...,m,[B]_{ij}=A_{ji} i=1,2,...,n,j=1,2,...,m,[B]ij=Aji,也就是说,如果
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] A=\left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots &\vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{matrix} \right] A=⎣⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎥⎥⎥⎤
则
A T = [ a 11 a 21 ⋯ a m 1 a 12 a 22 ⋯ a m 2 ⋮ ⋮ ⋱ ⋮ a 1 N a 2 n ⋯ a m n ] A^{T}=\left[ \begin{matrix} a_{11} & a_{21} & \cdots & a_{m1} \\ a_{12} & a_{22} & \cdots & a_{m2} \\ \vdots &\vdots & \ddots & \vdots \\ a_{1N} & a_{2n} & \cdots & a_{mn} \\ \end{matrix} \right] AT=⎣⎢⎢⎢⎡a11a12⋮a1Na21a22⋮a2n⋯⋯⋱⋯am1am2⋮amn⎦⎥⎥⎥⎤
特别地, n n n维列向量
α = [ a 1 a 2 ⋮ a n ] \alpha=\left[ \begin{matrix} a_{1} \\ a_{2} \\ \vdots \\ a_{n} \\ \end{matrix} \right] α=⎣⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎤
的转置 α T \alpha^{T} αT是一个 n n n维行向量, n n n维行向量的转置是一个 n n n维列向量.
定理三 设 A A A, B B B都是矩阵, k k k是数,如果下列等式中的运算都有意义,那么等式成立
具体的关于推导后面的博文会讲到,主要是极大似然估计以及概率的一些基础知识(很重要)。
给定数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m . , y m ) D={(x_1,y_1),(x_2,y_2),...,(x_m.,y_m)} D=(x1,y1),(x2,y2),...,(xm.,ym),其中 x i = ( x i 1 ; x i 2 ; . . . x i d ) , y i ∈ R x_i = (x_{i1};x_{i2};...x_{id}),y_i \in R xi=(xi1;xi2;...xid),yi∈R.样本由 d d d个属性描述,试图得到
f ( x i ) = ω T x i + b , 使 得 f ( x i ) ≃ y i f(x_i)=\omega^{T}x_i +b,使得f(x_i)\simeq y_i f(xi)=ωTxi+b,使得f(xi)≃yi
利用最小二乘法来对 ω \omega ω和 b b b进行估计,为了便于讨论,将 ω \omega ω和 b b b吸收入向量形式 w ^ = ( ω ; b ) \hat{w}=(\omega ;b) w^=(ω;b),相应的,把数据集 D D D表示为一个 m × ( d + 1 ) m\times (d+1) m×(d+1)大小的矩阵 X X X,其中每行对应于一个示例,该行前d个元素对应于示例的 d d d个属性值,最后一个元素恒置为1,即
X = [ x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ x 2 d 1 ⋮ ⋮ ⋱ ⋮ ⋮ x m 1 x m 2 ⋯ x m d 1 ] X=\left[ \begin{matrix} x_{11} & x_{12} & \cdots & x_{1d} & 1 \\ x_{21} & x_{22} & \cdots & x_{2d} & 1 \\ \vdots &\vdots & \ddots & \vdots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{md} & 1 \\ \end{matrix} \right] X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤
再把标记也写出向量形式 y = ( y 1 ; y 2 ; . . ; y m ) y=(y_1;y_2;..;y_m) y=(y1;y2;..;ym),则有
ω ^ ∗ = a r g m i n ω ^ ( y − X ω ^ ) T ( y − X ω ^ ) \hat{\omega}^{*}=arg min_{\hat{\omega}}(y-X\hat{\omega})^{T}(y-X\hat{\omega}) ω^∗=argminω^(y−Xω^)T(y−Xω^)
令 E ω ^ = ( y − X ω ^ ) T ( y − X ω ^ ) E_{\hat{\omega}}=(y-X\hat{\omega})^{T}(y-X\hat{\omega}) Eω^=(y−Xω^)T(y−Xω^),则采用上面矩阵的相关运算可得
E ω ^ = ( y − X ω ^ ) T ( y − X ω ^ ) = ( y T − ω ^ T X T ) ( y − X ω ^ ) = ω ^ T X T X ω ^ − ω ^ T X T y − y T X ω ^ + y T y E_{\hat{\omega}} = (y-X\hat{\omega})^{T}(y-X\hat{\omega}) \\ = (y^{T}-\hat{\omega}^{T}X^{T})(y-X\hat{\omega} )\\ =\hat{\omega}^{T}X^{T} X\hat{\omega}-\hat{\omega}^{T}X^{T}y-y^{T}X\hat{\omega}+y^{T}y Eω^=(y−Xω^)T(y−Xω^)=(yT−ω^TXT)(y−Xω^)=ω^TXTXω^−ω^TXTy−yTXω^+yTy
对上式对 ω ^ \hat{\omega} ω^求导
∂ E ω ^ ∂ ω ^ = ∂ ( ω ^ T X T X ω ^ − ω ^ T X T y − y T X ω ^ + y T y ) ∂ ω ^ = 2 X T X ω ^ − X T y − y T X = 2 X T X ω ^ − X T y − X T y = 2 X T ( X ω ^ − y ) \frac{\partial E_{\hat{\omega}}}{\partial \hat{\omega}}=\frac{\partial(\hat{\omega}^{T}X^{T} X\hat{\omega}-\hat{\omega}^{T}X^{T}y-y^{T}X\hat{\omega}+y^{T}y)}{\partial \hat{\omega}} \\ = 2X^{T} X\hat{\omega}-X^{T}y-y^{T}X \\ = 2X^{T} X\hat{\omega}-X^{T}y-X^{T}y \\ =2X^{T} (X\hat{\omega}-y) ∂ω^∂Eω^=∂ω^∂(ω^TXTXω^−ω^TXTy−yTXω^+yTy)=2XTXω^−XTy−yTX=2XTXω^−XTy−XTy=2XT(Xω^−y)
令上式为零可得 ω ^ \hat{\omega} ω^最优解的闭式解,但是由于涉及矩阵运算逆的运算,比单变量的情形复杂一些,下面做一些讨论:
当 X T X X^{T}X XTX为满秩矩阵(full-rank matrix)或正定矩阵(positive definite matrix)时,令上式为零,可得
ω ^ ∗ = ( X T X ) − 1 X T y \hat{\omega}^{*}=(X^{T}X)^{-1} X^{T}y ω^∗=(XTX)−1XTy
最终学得的线性回归模型为
f ( x i ^ ) = x i ^ ( X T X ) − 1 X T y f(\hat{x_i})=\hat{x_i}(X^{T}X)^{-1} X^{T}y f(xi^)=xi^(XTX)−1XTy
因此在编程中要判断上述条件是否成立,不成立则不能进行运算。
如果 X T X X^{T}X XTX不是满秩矩阵,则引入正规项(regularization)进行处理,具体的讨论在后面博客中讨论
机器学习的学习是一个循序渐进的过程,对于好多理论公式的推导是非常有必要的,因此后期我会一一推导相关的公式,希望可以跟这个领域的大牛们交流讨论,谢谢大家了!