专栏首页讲编程的高老师吴恩达机器学习笔记16-矩阵与矩阵的乘法

吴恩达机器学习笔记16-矩阵与矩阵的乘法

本文是吴恩达《机器学习》视频笔记第16篇,对应第1周第16个视频。

“Linear Algebra review(optional)——Matrix-matrix multiplication”

01

笔记

上一视频讲的是矩阵和向量相乘,我们在上上上个视频“矩阵和向量”那一节已经知道向量也是一种特殊的矩阵,那这一节我们把后面的这个向量给一般化为矩阵,即矩阵和矩阵的乘法。

1.1 引入

前面讲过梯度下降用于线性回归模型的参数确定,如果有矩阵的乘法的加持,我们就可以不用梯度下降法也能求解这个问题。

先来看一个例子,求下面图中两个矩阵的乘。

那怎么做呢?上图中两个矩阵,左边的这个是2×3的矩阵、右边这个是3×2的矩阵,我们可以把右边这个矩阵的第一列抽出来,就变成了2×3的矩阵和一个3×1的列向量的乘法,这就和上一视频讲到的一样了。如下图,我们就可以得到一个2×1的列向量:

类似的,把右边矩阵的第二列抽出来相乘又得到一个2×1的列向量,然后把这两步得到的列向量拼在一起就得到两个矩阵的乘的结果了。

1.2 一般情况

那上面那个特例中,左边是2×3的矩阵、右边是3×2的矩阵。右边这个矩阵的行数、列数分别和左边矩阵的列数、行数相等,是不是说一般情况也有这种要求呢?我们一起看一下。

对于一般的情况,矩阵和矩阵的乘法的形式如下图:

从上面的图中可知,矩阵A×B,只要求A的列数要等于B的行数,而不一定要求A的行数等于B的列数;得到的结果矩阵C呢,C的行数和A的行数相等、C的列数和B的列数相等。

从前面的示例我们可知,矩阵A和矩阵B的乘,可以简化为矩阵A和矩阵B的列向量的乘,然后再把结果拼成C。就完成了矩阵与矩阵的乘法。

矩阵和矩阵相乘,化简为矩阵和列向量相乘的过程中,右边的矩阵A会被用o次(即矩阵B的列数)、而矩阵B呢是被拆分成o个列向量来用的。想想这个事挺有意思的。

1.3 再来一个例子

两个2×2的矩阵相乘,运算过程如下图:

1.4 继续卖房子

我们来看一下,矩阵和矩阵的乘法这种运算规则的制定怎样让我们实际问题更容易被表述。

还是假设我有四套房子,面积(单位是平方英尺)不同,如下图:

这里呢,面积和售价之间关系的预测函数不再是一个了,假设我们有3个可能的公式用来计算房屋的售价,如果有矩阵乘法,就可以很方便的把这个事情给描述出来。

我们把第一个模型的参数拿出来构成矩阵B的第一列、第二个模型的参数做第二列、第三个模型的参数做第三列,就得到下图这样的一个矩阵乘法的式子。

对上面的这个式子进行运算,就可以得到一个4×3的结果矩阵。而结果矩阵的每一列就对应于相应模型对4套不同房子的售价的预测。如下图:

一次矩阵运算就可以让我们完成三个模型分别对4套房子的售价预测,即12次房屋售价预测的运算用一个矩阵乘法的式子就可以表示了,想想就让人激动。

更好的是,几乎每一种主流的编程语言都有很好的线性代数库实现矩阵与矩阵的乘法;更进一步的,如果我们想比较不同模型的好坏的话,我们只需要比较结果矩阵就行了。

我们小时候学乘法的时候知道有很多的运算法则可以使用,那么,矩阵和矩阵的乘法有没有这样的一些法则供我们使用呢?且听下回。

本文分享自微信公众号 - 讲编程的高老师(codegao),作者:石头

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 吴恩达机器学习笔记18-逆矩阵、矩阵转置

    “Linear Algebra review(optional)——Inverse and transpose”

    讲编程的高老师
  • 吴恩达机器学习笔记14-线性代数加法和标量乘

    “Linear Algebra review(optional)——Addition and scalar multiplication”

    讲编程的高老师
  • 吴恩达机器学习笔记17-矩阵乘法的性质

    “Linear Algebra review(optional)——Matrix multiplication properties”

    讲编程的高老师
  • Python|详解矩阵乘法

    矩阵相信大家都知道,是线性代数中的知识,就是一系列数集。顾名思义,数字组成的矩形,例如:

    算法与编程之美
  • 基于协同过滤的SVD的推荐系统

    参考论文:Using Singular Value Decomposition Approximation For Collaborative Filterin...

    张凝可
  • 数据分析与数据挖掘 - 06线性代数

    导数是高等数学中非常重要的知识点,也是人工智能的算法应用中比较常用的一个知识,这一章我们的重点就是讲解一下导数和其求导法则。首先我们来看一下导数的基本概念:函数...

    马一特
  • 数学实验(预习)

    也可以用初等变换求逆矩阵,构造一个n行2n列的矩阵(A E),并进行初等变换,A编程单位矩阵的时候,E就变成了A的逆矩阵.

    云深无际
  • 吹弹牛皮之Unity 引擎基础 - 矩阵(三)

    上图中展示了p,q两个基向量(单位向量)绕原点旋转后得到的新基向量p'和q'。根据勾股定理有:

    用户7698595
  • 吹弹牛皮之Unity 引擎基础 - 矩阵(一)

    沉迷于硬笔的练习偷懒了很长时间。过去的7月份仅仅更新了一篇文章,实在是深表遗憾。接着之前的向量篇小菜继续向下探索。谢谢大家长久来的鼓励和支持。

    用户7698595
  • 一起来学matlab-matlab学习笔记10 10_1一般运算符

    本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一...

    DrawSky

扫码关注云+社区

领取腾讯云代金券