吴恩达机器学习笔记18-逆矩阵、矩阵转置
本文是吴恩达《机器学习》视频笔记第18篇,对应第1周第18个视频。
“Linear Algebra review(optional)——Inverse and transpose”
本小节,是第一周学习内容的最后一个小视频。
01
—
笔记
上两个小节分别讲了矩阵和矩阵的乘法、矩阵乘法的性质、单位矩阵,这一小节讲一些特殊的矩阵运算:矩阵的逆和矩阵转置。
同样的,我们对比实数运算来理解矩阵的逆运算和转置。
1.1 逆矩阵
在实数空间中,我们有一个特殊的数“1”,任何数和1相乘都等于它本身,如果一个数和它的倒数相乘等于1。当然,也并不是所有的数都有倒数的,比如0.
那么,在矩阵的世界中,有没有类似实数倒数的定义呢?那就是逆矩阵了。它怎么定义呢?如下:
如果一个方阵存在逆矩阵,那它们满足: . 要注意,只有方阵(即矩阵的行数=矩阵的列数)才可能存在逆矩阵。
那逆矩阵怎么算出来呢?当然是使用软件来做了。如果用Python的话,可以用Numpy来做。
本门课使用的是Octava,直接用函数pinv即可,代码如下:
A=[3 4; 2 16]
inverseOfA = pinv(A)
pinv(A)即是所求,关于Octava的使用将在第二周的课程中讲解。
我们需要注意的是:(1)只有方阵才有可能有逆矩阵;(2)并不是所有的方阵都有逆矩阵。那到底什么样的矩阵没有逆矩阵呢?此处并没有讲,后面机器学习问题碰到的时候再说。对于不存在逆矩阵的矩阵,学术上被称为“奇异矩阵”或者“退化矩阵”。
1.2 转置
如下图,A的转置矩阵用 来表示。
矩阵A的第一列,变成了A的转置后的第一行,就这么简单。更正式一点的定义如下:
就是说,把矩阵的行标列标呼唤一下,就变成它的转置矩阵了。
到此为止,我们把机器学习中所要用到的线性代数的知识就都复习完了。包括了:加减、乘标量、乘向量、乘矩阵、求逆、求转置、矩阵乘法的性质这几部分内容,说起来很简单,但就是这样简单的线性代数基础可以发展成机器学习的算法,很奇妙。
- Modbus RTU驱动程序开发指引
- freeRTOS任务创建
- 洛谷P4213 Sum(杜教筛)
- JVM活学活用——调优工具
- .Net中的AOP系列之构建一个汽车租赁应用(下)
- Zookeeper学习笔记——2 Shell和Java API的使用
- Java基础巩固——反射
- 手把手教你在树莓派上搭建web服务器
- 安装和搭建基于netcore的demo
- 项目心得:广度遍历搜索部门处理业务
- 使用JAVA开发微信公众平台(一)——环境搭建与开发接入
- BZOJ4805: 欧拉函数求和(杜教筛)
- centos7.x下搭建netcore环境和helloworld的demo
- ARM coretex M4 系统定时器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法