机器学习 第二讲:矩阵的基本运算

矩阵的基本概念

假设 aij∈R, 其中 i=1,2,...,m; j=1,2,...,n. 我们定义如下的行列式:

A=??????a11a21?am1a12a22?am2???a1na2n?amn??????

是一个维数为 m×n 的实数矩阵。有时候我们会用如下的表达式来表示一个矩阵:

A=[aij],i=1,2,...,m;j=1,2,...,n

这表示一个m行n列的矩阵,下标的第一个数i表示行,第二个数j表示列。

列向量定义: 一个向量可以看成是只有一列的矩阵,所以,这里讨论的所有向量都默认为列向量。

符号定义: 矩阵用大写的粗体字母表示,比如矩阵A,B,X, 而向量用小写的粗体字母表示,比如向量a,b,x.

矩阵的转置: 矩阵A的转置为AT.

矩阵的逆: 如果一个矩阵A存在逆矩阵,则该逆矩阵表示为A?1.

矩阵的 determinant: 如果一个矩阵A是一个方阵,则它的determinant表示为|A|

单位矩阵表示为 I, 零矩阵空矩阵表示为0。

矩阵的迹: 如果一个矩阵是 n×n 的方阵,则该矩阵的迹(trace) 为 trA=∑ni=1aii, 等于所有主对角线元素之和,一个实数的迹是它本身,

矩阵的迹满足下列关系:

trAT=trAtrAB=trBAtrABC=trCAB=trBCA

矩阵的乘法

设 A 是一个 m×n 的矩阵,B 是一个 n×p的矩阵, 则两者的乘积AB 表示为:

C=AB

其中 C 是一个 m×p 的矩阵,C 中的任意一个元素 cij 表示为:

cij=∑k=1naikbkji=1,2,...,m;j=1,2,...,n

类似的,一个m×n 的矩阵 A 与一个n×1 的列向量 x相乘, 等于

z=Axzi=∑k=1naikxki=1,2,...,m

而一个m×1 的列向量 y 与一个m×n 的矩阵 A相乘,等于

zT=yTAzi=∑k=1makixki=1,2,...,n

因此,一个m×1 的列向量 y,一个m×n 的矩阵 A 以及一个n×1 的列向量 x, 他们的

乘积(是一个标量)可以表示为:

α=yTAxα=∑j=1m∑k=1najkyjxk

如果 A∈Rm×n, B∈Rn×p, 则满足以下关系:

C=ABcij=∑k=1naikbkjCT=BTATcji=∑k=1najkbki

矩阵的求导

假设有如下的函数:

y=Ψ(x)

其中 y∈Rm×1,x∈Rn×1, 则向量y关于x的导数,可以表示为:

?y?x=??????????????y1?x1?y2?x1??ym?x1?y1?x2?y2?x2??ym?x2????y1?xn?y2?xn??ym?xn?????????????

这个 m×n 的矩阵,是向量y关于x的一阶偏导数,这个矩阵也称为Jacobian矩阵。如果x 是一个标量,则Jacobian矩阵

是一个m×1的矩阵,如果y是一个标量,则Jacobian矩阵是一个1×n的矩阵。\

已知,y∈Rm×1,x∈Rn×1, A∈Rm×n,

y=Axwe can get:?y?x=A

证明

yi=∑k=1naikxk??yi?xj=aiji=1,2,...m,j=1,2,...n.??y?x=A

如果 x 是关于 z 的函数

y=Axwe can get:?y?z=A?x?z

如果:α=yTAx 则:

?α?x=yTA?α?y=xTAT

如果:α=xTAx, x∈Rn×1, A∈Rn×n 则:

?α?x=xT(A+AT)

证明

α=xTAx=∑j=1n∑i=1naijxixj??α?xk=∑j=1nakjxj+∑i=1naikxik=1,2,...n??α?x=xTAT+xTA=xT(A+AT)

如果 A 是一个对称矩阵,那么 α=xTAx 对 x 的导数为,?α?x=2xTA。\

设 α=yTx, 其中 x 和 y 是关于 z 的函数。则

?α?z=xT?y?z+yT?x?z

参考文献

Andrew Ng, Machine Learning, Stanford University.

Randal J. Barnes, Matrix Differentiation, University of Minnesota, Minneapolis, USA

Dhrymes, Phoebus J., 1978, Mathematics for Econometrics, Springer-Verlag, New york, 136 PP.

Golub, Gene H., and Charles F. Van Loan, 1983, Matrix Computations, Johns Hopkins University Press, Baltimore, Maryland, 476 pp.

Graybill, Franklin A., 1983, Matrices with Applications in Statistics, 2nd Edition, Wadsworth Internationl Group, Belmont, California, 461 pp.

时间: 2024-11-05 18:44:38

机器学习 第二讲:矩阵的基本运算的相关文章

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学习系统设计.SVM(Support Vector Machines 支持向量机).聚类.降维.异常检测.大规模机器学习等章节.所有内容均来自Standford公开课machine

机器学习基石第二讲:learn to answer yes/no

博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完成了机器学习基石的第二讲,主要介绍了机器学习的定义,PLA算法和pocket PLA算法.下面将笔记整理在下面. Perceptron Hypothesis Set 延续前面的信用卡发放问题.银行已有的用户数据可能包括用户的年龄.年薪.工作时长.债务情况等特征信息,我们分别用x1,x2,-,xd来表示,那么对于每一个用户都有一个向量来表示其信息.我们为每一个特征信息分配一个权

机器学习基石第二讲笔记

第二讲介绍了Perceptron Learning Algorithm (PLA),是以后学习的基础. PLA是二元的线性分类器,类似于神经感受器,用于做是非题. 1. PLA的假设函数:h(x) = sign(w'x). 这里w'是列向量,x是行向量.x代表一个数据点,这个点可能包含了d个维度,即x = (x1, x2, ..., xd).举例来说,x可以是一个人,里面包含了人的各种特征,比如年龄.性别.职业.收入等等.w'是每个维度所占的权重.比如银行要给客户发信用卡,就要考虑客户各个方面以

机器学习中的矩阵方法04:SVD 分解

机器学习中的矩阵方法04:SVD 分解 前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出更有意思的信息.奇异值分解( SVD, Singular Value Decomposition ) 在计算矩阵的伪逆( pseudoinverse ),最小二乘法最优解,矩阵近似,确定矩阵的列向量空间,秩以及线性系统的解集空间都有应用. 1. SVD 的形式

机器学习中的矩阵方法01:线性系统和最小二乘

机器学习中的矩阵方法01:线性系统和最小二乘 说明:Matrix Methods in Data Mining and Pattern Recognition 读书笔记 非常 nice 矩阵在线计算器,网址:http://www.bluebit.gr/matrix-calculator/. 1. LU Decomposition 假设现在要解一个线性系统: Ax = b, 其中 A 是 n×n 非奇异方阵,对于任意的向量 b 来说,都存在一个唯一的解. 回顾我们手工求解这个线性方程组的做法,首先

斯坦福大学深度学习与自然语言处理第二讲

第二讲:简单的词向量表示:word2vec, Glove(Simple Word Vector representations: word2vec, GloVe) 转载请注明出处及保留链接“我爱自然语言处理”:http://www.52nlp.cn 本文链接地址:斯坦福大学深度学习与自然语言处理第二讲:词向量 推荐阅读材料: Paper1:[Distributed Representations of Words and Phrases and their Compositionality]]

通达OA 二次开发培训第二讲

本次是通达OA二次开发第二讲,主要介绍了如何在通达OA中进行程序开发,并将开发程序挂接到OA系统中.

学习笔记:矩阵的基本运算的实现

2017-09-05 21:33:33 writer:pprp 昨天开始就上课了,没有整天整天的时间去编代码了,充分抓住每天晚上的时间吧, 今天下午预习了一下线性代数中矩阵最基本的运算,今晚就打算实现一下基本的功能 矩阵加法,矩阵减法,矩阵乘法,矩阵转置 代码如下: /* @theme:矩阵类的实现 @writer:pprp @begin:20:48 @end:21:30 @declare:注意行还有列的赋值 @date:2017/9/5 */ #include <bits/stdc++.h>

从大数据菜鸟走上大师的历程 第二讲:函数定义,流程控制,异常处理

Scala 第二讲 函数定义,流程控制,异常处理 For 循环  for(左边为单个对象obj  <-  右边为对象集合objs ) for 循环里把右边的对象赋给左边 现在正是学习大数据的最好机遇,不花一分钱就可以成为大数据高手,实现年薪50万的梦想. 王家林的第一个中国梦:免费为全社会培养100万名优秀的大数据从业人员! 如果您有兴趣请点击这个链接进入大数据的学习 http://blog.sina.com.cn/s/blog_8fbd39ee0102vto3.html 如果您确实感觉视频教程