Machine learning (1)

监督学习:

  • 假如你想预测房价,前阵子,一个学生从波特兰额勒冈州的研究所收集了一些房价的数据。你把这些数据画出来,看起来是这个样子:横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是千美元。那基于这组数据,假如你有一个朋友,他有一套750平方英尺房子,现在他希望把房子卖掉,他想知道这房子能卖多少钱。
  • 那么关于这个问题,机器学习算法将会怎么帮助你呢?

  • 我们应用学习算法,可以在这组数据中画一条直线,或者换句话说,拟合一条直线,根据这条直线我们可以推测出,这套房子可能卖¥150000,当然这不是唯一的算法,可能还有更好的,比如我们不用直线拟合这些数据,用二次方程拟合可能效果更好。根据二次方程的曲线,我们可以从这个点推测出,这套房子能卖接近¥2000000.稍后我们将讨论如何选择学习算法,如何决定用直线还是二次方程来拟合。两个方案中有一个能让你朋友的房子出售的更加合理。这些都是学习算法里面的很好的例子。以上就是监督学习的例子。

  • 可以看出,监督学习指的就是我们给学习算法一个数据集。这个数据集由“正确答案”组成。在房价的例子中,我们给了一系列房子的数据,我们给定数据集中每个样本的正确价格,即他们实际的售价然后运用学习算法,算出更多的正确答案,比如你朋友那个新房子的价格。用术语来讲,这叫做回归问题。我们试着推测出一个连续值的结果,即房子的价格。
  • 一般房子的价格会记到美分,所以房价实际上是一系列离散的值,但是我们通常又把房子看成实数,看成标量,所以又把它看成一个连续的数值。
  • 回归这个词的意思是,我们在试着推测出这一系列连续值属性。
  • 我们再据另外一个监督学习的例子。我和一些朋友之前研究过这个。假如说你想通过查看兵力来推测乳腺癌良性与否,假如有人检测出乳腺肿瘤,恶性肿瘤有害并且十分危险,而良性的肿瘤危害就没那么大,所以人们显然会很在意这个问题。
  • 让我们来看一组数据:这个数据集中,横轴表示肿瘤的大小,纵轴上,我标出1和0表示是或者不是恶性肿瘤。我们之前见过的肿瘤,如果是恶性则记为1,不是恶性,或者说良性记为0.
  • 我有5个良性肿瘤样本,再1的位置有5个恶性肿瘤样本。现在我们有一个朋友很不幸检查出乳腺肿瘤。假如说她的肿瘤大概这么大,那么机器学习的问题就在,你能否估算出肿瘤是恶性的或者是良性的概率。用术语来讲,这是一个分类问题。
  • 分类指的是,我们试着推测离散的输出值:0 或 1 良性或恶性,而事实上在分类问题中,输出可能不止两个值。比如说可能有三种乳腺癌,所以你希望预测离散输出0、1、2、3。0代表良性,1表示第一类乳腺癌,2表示第二类癌症,3表示第三类,但这也是分类问题。
  • 因为这几个离散输出分别对应良性,第一类第二类或者第三类癌症,在分类问题中我们可以用另一种方式绘制这些数据点,
  • 现在我用不同的富豪来表示这些数据,既然我们把肿瘤的尺寸看作区分恶性或者良性特征,那么我可以这么画,我用不同的符号来表示良性和恶性肿瘤。或者说是负样本和正样本,现在我们不全部画X,良性改用O表示。来预测肿瘤的恶性与否。在其他一些机器学习问题中,可能会遇到不止一种特征。举个例子,我们不仅知道肿瘤的尺寸,还知道对应患者的年龄。在其他机器学习问题中,我们通常有更多的特征,我朋友研究这个我问题时,通常采用这些特征,比如:肿块密度、肿瘤细胞尺寸的一致性和性转的一致性,还有一些其他的特征。这就是我们即将学到的有趣的算法之一。
  • 那种算法不仅能处理2种3种或5种特征,即使有无线多种特征都可以处理。

  • 上图种,我列举了总共5种不同的特征,坐标轴上的两种和右边的3种,但是在一些学习问题种,你希望不止用3种或5种特征。相反,你想用无限多种特征,好让你的算法可以利用大量的特征,或者说线索来做推测。那你怎么处理无限多个特征,甚至怎么存储这些特征都存在问题,你电脑的内存肯定不够用。我们以后会讲一个算法,叫支持向量机,里面有一个巧妙的数学技巧,能让计算机处理无限多个特征。想象一下,我没有写下这两种和右边的三种特征,而是在一个无限长的列表里面,一直写一直写不停的写,写下无限多个特征,事实上,我们能用算法来处理他们。
  • 现在回顾一下,这节我们介绍了监督学习。其基本思想是,我们数据集种的每个样本都有相应的“正确答案”。再根据这些样本做出预测,就像房子和肿瘤的例子种做的那样。我们介绍了回归问题,即通过回归来推测一个连续的输出,之后我们介绍了分类问题,其目标是退出一组离散的结果。
  • 现在来个小测试:假设你经营着一家公司,你想开发学习算法处理这两个问题:
    • 你有一大批同样的货物,想象一下,你有上千件一摸一样的货物等待出售,这时你想预测接下来的三个月能卖出多少件?
    • 你有许多客户,这时你想写一个软件来检验每个用户的账户。对于每一个账户,你要判断他们是否曾经被盗过。
  • 那这两个问题,他们属于分类问题、还是回归问题?
  • 问题一:是一个回归问题,因为你知道,如果我有数千件货物,我会把它看成一个实数,一个连续的值。因为卖出的物品数,也是一个连续的值。
  • 问题二:是一个分类问题,因为,我会把预测的值,用0来表示账户未被盗,用1表示账户曾经被盗过。所以我们根据账号是否被盗过,把他们定为0或1,然后用算法推测一个账号是0还是1 ,因为,只有少数的离散值,所以我把它归为分类问题。

无监督学习

  • 上节介绍了监督学习,回想当时的数据集,如图所示,这个数据集中每条数据都已经标明是阴性或阳性,即是良性或恶性肿瘤。所以,对于监督学习里的每条数据,我们已经清楚的知道,训练集对应的正确答案,是良性或恶性了。
  • 在无监督学习中,我们已知的数据。看上去有点不一样,不同于监督学习的数据的样子,即无监督学习中没有任何的标签或者是相同的标签或者是没标签。所以我们已知数据集,却不知如何处理,也未告知每个数据点是什么。别的都不知道,就是一个数据集。你能从数据中找到某种结构吗?针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。这是一个,那是另一个,二者不同。是的,无监督学习算法可能会把这些数据分成两个不同的簇。所以叫做聚类算法。事实证明,他能被用在很多地方。
  • 聚类应用的一个例子就是在谷歌新闻中。如果你以前从来没见过它,你可以到这个URL网址(news.google.com)看看。谷歌新闻每天都在,手机非常多,非常多的网论的新闻内容事件,自动的把他们聚类在一起。所以这些新闻全是同一主题的,所以显示到一起。
  • 事实证明,聚类算法和无监督学习算法同样还用在很多其他的问题上。

  • 其中就有基因学的理解应用。一个DNA围观数据的例子。基本思想是输入一组不同个体,对其中的每个个体,你要分析出他们是否有一个特定的基因。技术上,你要分析多少特定基因已经表达。所以这些颜色,红,绿,灰等颜色,这些颜色展示了相应的成都,即不同的 个体是否有着一个特定的基因。你能做的就是运行一个聚类算法,把个体聚类到不同的类或不同类型的组(人)。。
  • 所以这个就是无监督学习,因为我们没有提前告知算法一些信息,比如,这是第一类的人,那些是第三类的人,还有第三类,等等。我们只是说,是的,这是有一堆数据,我不知道数据里面有什么,我不知道谁是什么类型。我甚至不知道人们有哪些不同的类型。这些类型又是什么。但是你能自自动的找到数据中的结构吗?就是说你要自动的聚类那些个体到各个类,我没法提前知道哪些是哪些。因为我们没有给算法正确答案来回应数据集中的数据,所以这就是无监督学习。
  • 无监督学习或聚类有着大量的应用。它用于组织大型计算机集群。我有些朋友在大数据中心工作,哪里有 大型的计算机集群,他们想解决什么样的机器易于协同的工作,如果你能让那些机器协同工作,你就能让你你的数据中心工作更加有校,第二种应用就是社团网络的分析。所以已知你朋友的信息,比如你经常发email的,或是你Facebook的朋友、谷歌+圈子的朋友,我们能否自动地给朋友的分组呢?即每组里的人们彼此都熟识,认识组里的所有人? 还有市场分割,许多公司有大型的数据库,存储消费者信息,所以你能检索这些顾客的数据集,自动的发现市场分类,并自动的把顾客划分到不同的细分市场中,你才能自动并更高效的销售或不同的细分市场一起进行销售,这也是无监督学习,因为我们拥有所有的顾客数据,但我们没有提前知道是什么的细分市场,以及分别有哪些我们数据集中的顾客。我们不知道谁是在一号细分市场,谁在二号市场,等等。那我们就必须让我们必须让算法从数据中发现这一切。最后,无监督学习也可用于天文数据分析,这些聚类算法给出了令人惊讶、有趣、有用的理论,解释了是如何诞生的,这些都是聚类的例子,聚类只是无监督学习中的一种。
  • 我现在告诉你们另一种。我先来介绍鸡尾酒宴问题。嗯,你参加过鸡尾酒宴吧?你可以想象下,有个宴会房间里满是人,全部坐着,都在聊天,这么多人同时在两天,声音彼此重叠,因为每个人你都在说话,同一时间都在说话,你几乎听不到你前面那人的声音。所以,可能在一个这样的鸡尾酒宴中的两个人,他俩同时都在说话,假设现在是在个有些的鸡尾酒宴中,我们放两个麦克风在房间中,应为这些麦克风在两个地方,离说话人的距离不同每个麦克风记录下不同的 声音,虽然是同样的两个说话人。听起来像是两份录音被叠加到一起,或是被归结到一起,产生了我们现在的这些声音,另外,这个算法还会区分出两个音频资源,这两个可以合成或合成之前的录音,实际上,鸡尾酒算法的第一个输出结果是:
    • 1, 2, 3, 4 ,5, 6, 7, 8, 9, 10
    • 所以,已经把英语的声音从录音中分离出来了。
    • 第二个输出是这样的:
    • 1, 2, 3, 4 ,5, 6, 7, 8, 9, 10

  • 看看这个无监督学习算法,实现这个得多么复杂,是吧?他似乎是这样,为了构建这个应用,完成这个音频处理似乎需要你去写大量的代码或连接到一堆的合成器Java库,处理音频的库,看上去绝对是个复杂的程序,去完成这个从音频中分离出音频,事实上,这个算法对应你刚才知道的那个问题的算法可以就用一行代码来完成。
  • 就是这里显示的代码:

  • 研究人员花费了大量时间才最终实现这行代码,我不是说这个是简单的问题,蛋挞证明了,当你使用正确的编程环境,许多学习算法是相当短的程序,所以,这也是为什么在本误差中,我们打算使用Octave编程。还是用Python吧(微笑)。
  • 我们介绍了无监督学习,他是学习策咯,交给算法大量的数据,并让算法为我们从数据中找出某种结构,
  • 好的,希望你们记得垃圾邮箱问题,如果你有标记好的数据,区别好是垃圾还是非垃圾邮箱,我们把这个当作监督学习问题。
  • 新闻事件分类的例子,就是那个谷歌新闻的例子,我们在本视频中有见到了,我们看到,可以用一个聚类算法来聚类这些文章到一起,所以是无监督学习。
  • 细分市场的例子,我在更早一点的时间讲过,你可以当作无监督学习问题,因为我只是拿到算法数据,再让算法去自动的发现细分市场。
  • 最后一个例子,糖尿病这个其实就像是我们的乳腺癌,上个视频里的,只是替换了好、坏肿瘤,良性、恶性肿瘤,我们改用糖尿病或没病,所以我们把这个当作监督学习,我们能够解决它,作为一个监督学习问题,就像我们在乳腺癌中做的一样。
  • 好了。以上就是无监督学习的内容。

单变量线性回归

  • 模型表示:

    • 我们的第一个学习算法是线性回归算法。在这段视频中,你会看到这个算法的概况,更重要的是你将会了解监督学习过程完整的流程。
    • 让我们通过一个例子来开始,这个例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。比方说,如果你朋友的房子是1250平方尺寸大小,你要告诉他们这房子能买多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,也许你可以告诉你的朋友,他能以大约220000美元左右的价格卖掉这个房子,这就是监督学习算法的一个例子。

    • 他被乘坐监督学习是因为对于每个数据来说,我们给出了正确的答案,即告诉我们,根据我们的数据来说,房子实际的价格是多少,而且,风具体来说,这是一个回归问题。回归一词指的是,我们根据之前的数据预测出一个准确的输出值,对于这个例子就是价格,同时,还有另一种最常见的监督学习方式,叫做分类问题,当我们想要预测离散的输出值,例如,我们正在寻找癌症肿瘤,并想要确定肿瘤是良性的还是恶性的,这就是0/1离散输出的问题。更进一步来说,在监督学习中我们有一个数据集,这个数据集被称为训练集。

    • 我将在整个课程中用小的m来表示训练样本的数目。
    • 以前的房屋交易问题威力,假设我们回归问题的训练集如下表所示:

    • 我们将要用来描述这个回归问题的标记如下:

    • m 代表训练集中实例的数量

    • x 代表特征/输入变量
    • y 代表目标变量/输出变量
    • (x, y)代表训练集中的实例
    • (x^(i),y^(i))代表第i个观察实例
    • h代表学习算法的解决方案或函数也称为假设

    • 这就是一个监督学习算法的工作方式,我们可以看到这里有我们的训练集房屋价格我们把它喂给我们的学习算法,学习算法的工作了。然后输出一个函数,通常表示为小写h表示。h代表hypothesis(假设),h表示一个函数,输入时房屋尺寸大小,就像你朋友想出售的房屋,因此h根据输入的x值来得出y值,y值对应房子的价格,因此,h时一个从x到y的函数映射。

    • 我将选择最初的使用规则h代表hypothesis,因而,要解决房价预测问题,我们实际上是,将训练集喂我们的学习算法,进而学习得到一个假设h,然后将我们要预测的房屋的尺寸作为输入变量输入给h,预测该房屋的交易价格作为输出变量输出为结果。那么,对于我们的房价预测问题,我们该如何表达h呢?
    • 一种可能的表达方式为:,因为只含一个特征/输入变量,因此这样的问题叫做单变量线性回归问题
  • 代价函数

    • 在这段视频中我们将定义代价函数的概念,这有助于我们弄清楚如何把最有可能的直线,与我们的数据相拟合。如图:

    • 在线性回归中我们有一个像这样的训练集,m代表了训练样本的数量,比如m=47.而我们的假设函数,也就是用来进行预测的函数,是这样的线性函数形式:

    • 接下来我们会引入一些术语我们现在要做的便是为我们的模型选择合适的 参数,在房价问题这个例子中便是直线的斜率和在y轴上的截距。
    • 我们选择的参数决定了我们得到的直线相对于我们的训练集的准确度,模型所预测的值于训练集中实际之间的差距(下图中蓝线所指)就是建模误差。
    • 我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。即使得代价函数最小。
    • 我们绘制 一个等高线图,三个坐标分别为

    • 则可以看出在三位空间中存在一个使得最小的点。

    • 代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好的发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了。
    • 在后续课程中,我们还会,谈论其他的代价函数,但我们刚刚讲的选择是对于大多数线性回归问题非常合理的。
    • 也许这个函数有点抽象,可能你仍然不知道它的内涵。
  • 代价函数的直观理解 1

    • 在上一节中,我们给了代价函数一个数学上的定义。在这个视频里,让我们通过一些例子来获取一些直观的感受,看看代价函数到底是在干什么。

  • 代价函数的直观理解 2

    • 这节课,我们将更加深入的学习代价函数的作用,这段视频的内容假设你已经认识等高线图,如果你对等高线图不太熟悉的话,这段视频中的某些内容你可能会听不懂,但不要紧,如果你跳过这段视频的话,也没关系,不停这节课,对后续的课程影响不大
    • 代价函数的样子,等高线图,则可以看出在三维空间中存在一个使得
      最小的点。

    • 通过这些图形,我希望你能更好的理解这些代价函数J所表达的值是什么样的,他们对应的假设是什么样的,以及什么样的假设对应的点,更接近于代价函数J的最小值。

    • 当然,我们真正需要的是一种有效的算法,能够自动的找出这些是代价函数J取得最小值的参数的值。
    • 我们也不希望编个程序把这些点画出来,然后人工的方法来读出这些点的数值,这很明显,不是一个韩版发,我们会遇到更负责、更高维度、更多参数的情况,而这些情况是很难画出图的,因此更无法将其可视化,因此我们真正需要的是编写程序来找出这些最小代价函数的的值。在下一节中,我们将介绍一种算法,能够自动的找出代价函数最小化的参数的值。
  • 梯度下降

    • 梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数
      的最小值。
    • 梯度下降的背后思想是,开始时我们随机选择一个参数的组合(\Theta_0,\Theta_1……….\Theta_n),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到一个局部最小值,因为我们并没有尝试所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值选择,不同的初始参数组合,可能会找到不同的局部最小值。

    • 想象一下你正站立在山的这一点上,站立在你想想的公园这座红色山上,在梯度下降算法中,我们要做的就是旋转360度,看看我们的周围,并问自己要在某个方向,用小碎步尽快下山,这些小碎步需要朝什么方向?如果我们站在山坡的这一点,你看一下周围,你会发现最佳的下山方向,你再看看周围,然后再一次想想,我应该从什么方向迈着小碎步下山?然后你按照自己的判断又迈出一步,重复上面的步骤,从这个新的点,你环顾四周,并决定从什么方向将 最快的下山,然后又迈进了一小步,并以此类推,直到你接近局部最低点的位置。
    • 其中a是学习率,他决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量下降中,我们每次都同时让所有的参数减去学习速率乘以代价函数的导数。
    • 在梯度下降算法中,还有一个更加微妙的问题,梯度下降中,我们要更新,当j=0和j = 1时,会产生更新,所以你将更新。实现梯度下降算法的微妙之处是,在这个表达式中,如果你要更新这个等式,你需要同时更新,我的意思是在这个等式中,我们要这样更新:
    • ,并更新,
    • 实现方法是: 你应该计算公式右边的部分,通过那一部分计算的的值,然后同时更新

    • 在梯度下降算法中,这是正确实现同时更新的方法。我不打算解释为什么你需要同时更新,同时更新是梯度下降中的一种常用方法。我们之后会讲到,同步更新是更自然的实现方法,当人们谈到梯度下降时,他们的意思就是同步更新。
    • 在接下来的视频中,我们要进入这个微分项的细节中,我已经写了出来,但没真正定义,如果你已经修过微积分课程,如果你熟悉偏导数和导数,这其实就是这个微分项:
    • 在之前的视频中,我们给出了一个数学上关于梯度下降的定义,本次视频我们更加深入研究一下,更加直观的感受一下这个算法是做什么的,以及梯度下降算法的更新过程有什么意义。梯度下降算法如下:
    • 描述:对赋值,使得安梯度下降最快 的方向进行,一直迭代下去,最终得到局部最小值。其中a是学习率,他决定了我们沿着让代价函数下降程度最大的方向向下迈出的步子有多大。

    对于这个问题,求导的目的,基本可以说取到这个红点的切线,就是这样一条红色的直线。刚好与函数切于这一点,让我们看看这条红色的直线,刚好与函数相切的这条直线,这条直线的斜率正好是这个三角形的高度以这个水平长苏,现在,这条线有一个正斜率,也就是说它有正倒数,因此,我得到的新的更新后等于减去一个整数乘以

    • 这就是我梯度下降的更新规则:
    • 让我们来看看如果太小,即我的学习速率太小,结果就是只能这样想像小宝宝一点点的挪动,去努力接近最低点,这样就需要很多步才能到达最低点,所以如果太小的话,可能会很慢,因为它会一点点挪动,它会需要很多步才能到达全局最低点。
    • 如果太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次有移动了一大步,越过一次,有越过一次,一次次越过最低点,知道你发现实际上离最低点越来越远,所以,如果太大,它会导致无法收敛,甚至发散。
    • 现在,我还有一个问题,当我第一次学习这个地方的时候,我花了很长时间才理解这个问题,如果我们预先把初始化在局部最低点,在这儿,它已经在一个局部的最优处了或局部最低处。结果是局部最优点的导数将等于零,因为它是那条切线的斜率。这意味着你已经在局部最优点,它使得不再改变,也就是新的等于原来的,因此,如果你的参数已经处于局部最低点,那么梯度下降法更新其实什么都没做,他不会改变参数的值。这也解释为什么学习速率保持不变时,梯度下降也可以收敛到局部最低点。
    • 我们来看一个例子,这是代价函数
    • 我想找到它的最小值,首先初始化我的梯度下降算法,在那个品红色的点初始化,如果我更新一步梯度下降,也许它带我到这个点,因为这个点的导数相当抖得,现在,在这个绿色的点如果我再更新一步,你会发现我的导数,也即斜率,是没那么陡的。随着我接近最低点,我的导数越来越接近零,所以梯度下降一步后,新的导数会变小一点点。然后我想在梯度下降一步,在这个绿点,我自然会用一个稍微跟刚才在那个品红点时比,再小一点的一步,到了新的红色点,更接近全局最低点了,因此这点的导数会比在绿点时更小,所以,我再进行一步梯度下降时,我的导数项更小的,更新的幅度会更小。所以随着梯度下降法的进行,你移动的幅度会自动变得越来越小。直到最终移动幅度非常小,你会发现,已经收敛到局部极小值。
    • 回顾一下,在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,这是因为我们接近局部最低点时,很显然在局部最低时导数等于零,所以当我们接近局部最低时,导数值会自动的变得越来越小,所以梯度下降会自动采取较小的幅度,这就是梯度下降的做法,所以实际上没有必要在另外减小a。
    • 这就是梯度下降算法,可以用它来最小化任何代价函数J,不只是线性回归中的代价函数J。
    • 在接下来的视频中,我们要用代价函数J,回到它的本质,线性回归中的代价函数。也就是我们前面得出的平方误差函数,就和梯度下降法,以及平方代价函数,我们会得出第一个机器学习算法,即线性回归算法。
  • 梯度下降的线性回归

    • 在以前的视频中我们谈到关于梯度下降算法,梯度下降是很常用的算法,它不仅被用在线性回归和线性回归模型、平方误差代价函数。在这段视频中,我们要将梯度下降和代价函数结合。我们将用到此算法,并将其应用于具体的拟合直线的线性回归算法里。
    • 梯度下降算法和线性回归算法比较如图:

    • 对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
    • j = 0 时;
    • j = 1 时:
    • 则算法改写成:
    • 我们刚刚使用的算法,有时也称为批量梯度下降。实际上,在机器学习中,通常不太会给算法起名字,但这个名字“批量梯度下降”,指的是在梯度的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算法微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算法这样一个东西,这个项需要对所有m个训练样本求和。因此批量梯度下降法这个名字说明了我们需要考虑所有这一“批”训练样本,而事实上,有时也有其它类型的梯度下降法,不是这种“批量型的,不考虑整个的训练集,而是每次只关注训练集中的一些小的子集。

线性代数回顾

  • 矩阵和向量

    • 如图:这个是4*2矩阵,即4行2列,如m为行,n为列,那么m*n即4*2
    • 矩阵的维数即行数*列数
    • 矩阵元素(矩阵项):
    • 指第i行,第j列的元素。
    • 向量是一种特殊 的矩阵,将以中的向量一般都是列向量,如
    • 为四维列向量(4*1)
    • 如下图为1索引向量和0索引向量,左图为1索引向量,有图为0索引向量,一般我们用1索引向量。
  • 加法和标量乘法

    • 矩阵的加法:行列数相等的可以加。
    • 例:
    • 矩阵的乘法,每个元素都要乘
    • 组合算法也类似。
  • 矩阵向量乘法

    • 矩阵和向量的乘法如图:的矩阵乘以的向量,得到的是的向量。
    • 算法举例:
  • 矩阵乘法

    • 矩阵乘法:
    • 矩阵乘以矩阵,变成
    • 如果这样说不好理解的话就举一个例子来说明一下,比如说现在有两个矩阵A和B,那么它们的乘积就表示为图中所示的形式。
  • 矩阵乘法的性质

    • 矩阵的乘法不满足交换律:
    • 矩阵的乘法满足结合律。即:
    • 单位矩阵:在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,我们称这种矩阵为单位矩阵,它是个方阵,一般用I或者E表示,本讲义都用I代表单位矩阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1以外全都为0.如:
    • 对于单位矩阵,有AI=IA=A
  • 逆、转置

    • 矩阵的逆:如矩阵A是一个矩阵,如果 有逆矩阵,则
    • 矩阵的转置:设A为阶矩阵,第i行j列的元素是a(i,j),即: A=a(i,j)
    • 定义A的转置为这样一个阶矩阵B,满足B=a(j,i),即b(i,j) = a(j,i),记
    • 直观来看,将A的所有元素绕着一条从第1行第1列元素出发的右下方45度的射线做镜面反转,即得到A的转置。
    • 例:
    • 矩阵的转置基本性质:

猜你喜欢

转载自blog.csdn.net/qq_38386316/article/details/81323164