本文主要是介绍Coursera 机器学习 -- Matrices and Vectors 笔记(线性代数复习课)【第一周】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Matrices and Vectors
Matrices(矩阵)
矩阵:是由数字组成的,并且在[]中的。它是由行和列组成。
例如下图中,左侧就是一个4×2的矩阵,而右侧是一个2×3的矩阵,而通常表示一个矩阵是几行几列的写法便是R^4×2,代表着它是4×2的矩阵。
再看下图,通过A来标识具体矩阵的某个元素,例如A11=1402,代表的就是A这个矩阵的第一行,第一列的元素是1402,A41=147,代表第四行,第一列的值,假如A43,下图矩阵并没有第三列,所以你可以认为它是错误的,没有定义的。
Vector(向量)
向量:是一种特殊的矩阵,只有一列的矩阵。
例如下图,代表的就是一个4维向量,可以用R^4来表示:
如何来表示某一个向量中的元素呢?
如下图,y1=460,y2=232,是用yi来定义某一行的元素值:
而在向量中有两种定义其索引的形式,如下图:
而在本课程中,教授以1开始的索引为例子,但在实际设计到机器学习的算法中,应该是以0开始。
tips:平时习惯用大写字母来代表矩阵,小写字母代表向量.
Addition and Scalar Mulitplication(标量的加减法,乘法)
Matrix Addition(矩阵加法)
如下所示:
矩阵的加法,若两个维度相同的矩阵,就是对应的元素相加即可,若维度不相同,则会出现错误,也就是A与B的行数不同,则不可以进行运算。
Scalar Multiplication(标量乘法)
若是一个标量与一个矩阵做乘法,则是矩阵的每个元素都乘上标量即可。在乘法的顺序上,可以相互调换,不影响。与此同时,除法也是一样的。如下图:
Matrix-Vector Multiplication(矩阵-向量的乘法运算)
举例:
先用一个矩阵和一个向量相乘,如下图,看了就懂系列,结果很容易算出来:
用公式写出来就是(A代表矩阵,b代表向量):
A11xb11 + A12xb21 + A13xb31 + A14xb41
A21xb11 + A22xb21 + A23xb31 + A24xb41
...... + ...... + ..... + ......
结论:如果A矩阵是3x2,B向量是2x1 ,最终产生的矩阵3x1维度,也可叫向量,因为结果是1列的矩阵。即mxn的矩阵 X nx1的向量 = m行的向量
下面阐述了,如果有个预测房价的hypothesis函数,而左侧有一批房子的大小数据,首先要构建一个矩阵(用一列1和数据组成的,目的是为了构造与向量中的行数相同的列数,这样才能相乘操作)。还需要构建一个二维向量(这里的参数是hypothesis的θ0和θ1),使这两组数据相乘,而在hypothesis函数中的x,对应的就是房子的大小,代入矩阵中可以看到hθ(2104)这样的矩阵结果,对应的就是房价。
矩阵乘法模拟出来的公式:
prediction = DataMatrix * Paramties
prediction:预测的房价(预测值)
DataMatrix:房子的大小(数据集)
Paramties:hypothesis的参数(θ0,θ1)
总结:这样的公式好处就是在编程语言中,省去了大量的循环遍历,提升了高效的数据处理以及计算能力。
Matrix-Matrix Multiplication(矩阵-矩阵乘法)
矩阵A与矩阵B相乘时:
可以把B矩阵分成多个向量,在分别进行矩阵-向量的乘法运算,最终得到的两个单独的向量在合成一个矩阵即可。如下图:
与矩阵-向量最后的房价一样的例子,如下图:
上图右侧有三个不同的hypothesis函数,通过矩阵将它们写成一个2x3的矩阵(每列对应的就是hypothesis中的θ0,θ1),房子大小的矩阵依然需要用1去构造(房子大小矩阵的列数与hypothesis参数矩阵行数相同),最终结果是蓝色,红色,粉色,三种分别对应着三个不同的hypothesis的结果,每组对应着房子大小的四个房价值。
Matrix Multiplication Properties(矩阵乘法的属性)
在普通的乘法中,我们知道乘法有着交换律的属性,也就是说:
A x B = B x A
但是在矩阵的属性中,这样的交换律并不实用!
A x B ≠ B x A
像下图所示,交换的两个矩阵结果并不相同:
在普通的乘法中,我们知道乘法有着结合律的属性,也就是说:
(A x B) x C = A x (B x C)
在矩阵的属性中,这样的结合律属性答案是相同的!
(A x B) x C = A x (B x C)
如下图:
identity matrix(单位矩阵I):对角线都是1,且其他元素都是0的矩阵,如下图:
单位矩阵的特性:
A·I = I·A = A
也就是说任何矩阵点乘单位矩阵都得自己本身
Inverse and Transpose(逆矩阵和转置矩阵)
先来说说”逆”:
在我们的实数中,比如3,它自己本身就有着逆数,3^-1次方就是3的逆数,3·3^-1=1,但非所有实数都有这逆运算,比如0,就没有逆运算。
需要注意的是,如果A是squart matrix(方阵,行数列数相等的矩阵,若都是0的方阵,也是没有逆矩阵的!!),才有逆矩阵,得出公式:
A·A^-1 = A^-1·A = I
接下来说说Transpose(转置):
如下图:
如果A是mxn的矩阵,让B=A^T,那B是一个nxm的矩阵:
Bij = Aji
B12 = A21
总结:
总的来说又温习了一遍大学的线代,还算对矩阵和向量有些印象,最深刻的应该是利用矩阵巧妙地讲hypothesis的参数构造在一起进行矩阵相乘的运算,这点真的佩服。还有温习了单位矩阵是对角线都是1,其余是0,并且矩阵与逆矩阵点乘等于单位矩阵(只有方阵才有逆矩阵!!!)。转置也很好理解,就是以对角线转体即可。
展望结语
坚持了一下午。。感觉边看边总结真的好累啊╮(╯▽╰)╭。。今日打卡,滴滴滴!下一次的博客是分类算法的笔记!
已经在奔往机器学习的路上——!
这篇关于Coursera 机器学习 -- Matrices and Vectors 笔记(线性代数复习课)【第一周】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!