吴恩达机器学习——第三章 线性代数回顾

这一章主要介绍了什么是矩阵与向量、相关运算(矩阵加法、标量乘法、矩阵向量乘法、矩阵乘法)、矩阵乘法特征和逆、转置。
一、矩阵和向量
1、矩阵:是指纵横排列的二维数据表格;(下图为m×n矩阵)
矩阵的写法:行×列;
矩阵元素:A_ij表示A矩阵的 i 行 j 列的元素, i , j 的索引一般从1开始,当然也可以从0开始,但是本课程约定从1开始;


矩阵

例:下面是一个4×2的矩阵,A_32=1437


4*2矩阵

2、向量:一种特殊的矩阵(n×1矩阵),也称之为n维向量,包括1索引向量和0索引向量,本课程中主要涉及列向量。
向量

注:惯例,用大写字母表示矩阵,用小写字母表示数字或标量或向量。
二、相关运算(矩阵加法、标量乘法、矩阵向量乘法、矩阵乘法)
1、矩阵加法:矩阵维数要相同,将对应索引的元素直接相加得到新的矩阵;


矩阵加法

2、标量跟矩阵相乘:将标量与矩阵元素逐个相乘,该乘法符合交换率。除法一样,因为除法也可以写成乘法的倒数。(标量:代表一个实数)


标量跟矩阵相乘

3、矩阵向量乘法:矩阵m×n与向量n相乘,结果是m×1的矩阵,也就是向量m
计算过程:取矩阵第1行的每一列与向量对应的行相乘并将结果相加,得到结果向量的第1行,矩阵逐行做此操作得到最终的结果。


用图表示

例:


矩阵向量乘法

4、矩阵乘法
矩阵m×n只能与n×o的矩阵相乘,也就是说左边的列要等于右边的行,结果是m×o的矩阵,矩阵乘法不符合交换率。
计算过程:先拿右边矩阵的第一列做为向量跟左边的矩阵做向量与矩阵乘法,结果是一列向量,然后再拿右边第2列与左边矩阵做乘法......以此类推

用图表示

例:
矩阵乘法

矩阵乘法可以用numpy的matmul函数或dot函数来计算
三、矩阵乘法的性质
1、矩阵乘法不服从交换率,就算是行和列的维度都相同也不行,

例:

两个矩阵相乘

2、矩阵乘法服从结合率:

3、单位矩阵:一般用 I 或者 E 表示,其从左上角到右下角的对角线的值都为1,其余元素值为0。
单位矩阵

对于所有的矩阵A都有:

四、逆、转置
1、如果A是一个m×m的矩阵,而且A有其逆矩阵,则:

并不是所有的矩阵都有逆矩阵,没有逆矩阵的矩阵称为奇异矩阵或者退化矩阵。
附:七种矩阵的定义
用numpy求逆矩阵:

import numpy as np

a  = np.array([[1, 2], [3, 4]])  # 初始化一个非奇异矩阵(数组)
print(np.linalg.inv(a))  # 对应于MATLAB中 inv() 函数

# 矩阵对象可以通过 .I 更方便的求逆
A = np.matrix(a)
print(A.I)
结果

2、转置:

转置

转置基本性质:


参考资料:
1、https://blog.csdn.net/xienan_ds_zj/article/details/86738316
2、https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes/blob/master/markdown/week1.md

你可能感兴趣的:(吴恩达机器学习——第三章 线性代数回顾)