线性代数中的为什么问题

作者介绍:Brendan Fortuner 是一名在西雅图的亚马遜的软件工程师目前自己在人工智能方面进行研究。

上过Jeremy Howard的深度学习课程后我意识到我在线性代数中的为什么方面的不足,而这大大影响我对类似反向传播这样的概念的理解因此我决定在这个方面花点时间,以补全这方面的知识 本文是对线性代数中的为什么的基本介绍,用于深度学习中会使用到的一些常见的线性代数中的为什么操作

在深度学习的背景下,线性代数中的为什么是一个数学工具它提供了有助于同时操作数组的技术。它提供了像向量和矩阵(电子表格)这样的数据结构用来保存数字和规则以便进行加,减乘,除嘚运算

线性代数中的为什么可以将复杂的问题简单化,让我们能够对问题进行高效的数学运算 以下是线性代数中的为什么如何达到这些目标的一个例子。

初始化这两个数组后用线性代数中的为什么的方法会快3倍。

如何在深度学习中使用线性代数中的为什么

神经网络將权重存储在矩阵中。 线性代数中的为什么使矩阵运算变得更加快捷简便尤其是在GPU上进行训练的时候。 实际上GPU是以向量和矩阵运算为基础的。 比如图像可以表示为像素数组。视频游戏使用庞大且不断发展的矩阵来产生令人炫目的游戏体验 GPU并不是处理单个像素,而是並行地处理整个像素矩阵

向量是1维数组。 在几何中向量将大小和方向的潜在变化存储到一个点。 例如向量[3,-2]表示向右移3个单位距离囷向下移2个单位距离而具有多个维度的向量称为矩阵。

我们可以以不同的方式来表示向量 这里有几个常见的表示方式。

向量通常表示從一个点出发的运动 它们将大小方向的潜在变化存储到一个点。 向量[-2,5]表示左移2个单位向上5个单位。

向量可以应用于任何空间点 向量的方向就是向上5个单位和向左2个单位的斜线,它的大小等于斜线的长度

标量运算涉及向量和某个数字。 我们可以通过对向量中的所有項进行加减,乘除操作来对其进行修改。

在诸如加法减法和除法的元素操作中,相应位置的值被重新组合以产生新的向量 向量A中嘚第一个值与向量B中的第一个值配对。第二个值与第二个值配对依此类推。也就是说这两个向量必须有着相同的尺寸,才能完成元素操作*

向量乘法有两种类型:点积和Hadamard乘积。

两个向量的点积是一个标量 向量和矩阵的点积(矩阵乘法)是深度学习中最重要的操作之一。

Hadamard乘积是元乘法它的输出是一个向量。

如果我们对一个点(xy)应用一个加法或乘法的向量函数,向量场则表示了该点可能会移动多远 给定空间中某一个点,向量场显示了图中各个不同点可能的变化力度方向

矩阵的标量运算与向量一样。 简单地将标量应用于矩阵中嘚每个元素进行加减,乘除等操作。

为了对两个矩阵进行加减或除法,它们必须具有相等的维度*我们以元素组合的方式产生对应嘚值,得到新的矩阵

这是个不得不提的话题,因为它在实践中非常重要 在numpy中,元素操作的维度要求通过称为broadcasting的机制来扩展 如果每个矩阵(行与行,列与列)中的相应维度满足以下要求则这两个矩阵是兼容的:

但在更高的维度上(3维或4维),事情会变得有点奇怪但昰现在我们不用担心。 了解二维上的操作是个很好的开始

矩阵的Hadamard乘积是一个元素运算,就像向量一样 相应位置的值通过乘法运算来产苼一个新的矩阵。

只要矩阵维度符合broadcasting要求就可以用Numpy对矩阵和向量进行Hadamard乘积运算。

神经网络经常处理维度不符合要求的矩阵 而矩阵转置提供了一种方法来“旋转”其中一个矩阵,以使其操作符合乘法要求 转置矩阵有两个步骤:

例如,将矩阵M转置为T:

矩阵乘法规定了一组對矩阵进行乘法运算以产生新矩阵的规则。

并不是所有的矩阵都能进行乘法运算的 并且,对输出矩阵的维度也存在要求

2.? ? M×N矩阵囷N×K矩阵的乘积是M×K矩阵。 新矩阵取第一个矩阵的行和第二个矩阵的列

矩阵乘法依赖于点积与行列元素的各种组合。 以下图为例(取自Khan学院的线性代数中的为什么课程)矩阵 C中的每个元素都是矩阵A中行与矩阵B中列的点积。

操作a1·b1表示我们取矩阵A中第一行(1,7)和矩阵B中第1列(3,5)的点积

为什么矩阵乘法以这种方式工作?

矩阵的乘法运算非常有用但背后并没有太深奥的数学规律。 之所以数学家发明了这种运算完全是因为它简化了以前乏味的计算。 这是一个人为的产物但却非常有效。

用一下几个例子自我测试一下

Numpy使用函数np.dot(AB)进行向量和矩阵乘法运算。 它有一些其他有趣的功能和问题所以我希望大家能在使用前阅读一下相关文档。

本文由阿里云云栖社区组织翻译

文章為简译,更为详细的内容请查看原文

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

线性代数中的为什么中的行向量,列向量的问题.
1.请问高中学的向量和线性代数中嘚为什么中的向量一样吗?为什么线性代数中的为什么中的只是一个数组,没有方向啊?
2.我的意思是比如A=(1,2,3)可以理解成3维空间的xyz坐标,那如果写荿列向量,竖着写应该怎么理解?有什么空间或者几何意义吗?

拍照搜题秒出答案,一键查看所有搜题记录

(1)是一样的.只不过高中学向量的,朂多是三维的,即在欧几里得空间里的,坐标的“方向”感很强,或者说这里的向量具有具体的几何意义;线性代数中的为什么中的向量,涉及都昰n维的,即坐标有n个,方向感就没有了,是因为没有具体的几何意义.例如向量a=(0,0,1),他的几何意义就很明确:长度为1的,起点是坐标原点,指向坐标(0.0.1)的有向线段,如向量b=(0,0,0,0,0,1)这是六维的向量,也有坐标,但是无法在欧几里得几何体系中想象罢了.
(2)列向量和行向量没有什么意思啊.只不过列姠量竖着写坐标.A=(1,2,3),写成列向量的形式就可以从上到下依次写123,用括号括起来,加一个转置符号就可以了.几何意义就是A=(123)的几何意义.

内容提示:第五讲线性代数中的為什么中的数值计算问题(精品)

文档格式:PPT| 浏览次数:0| 上传日期: 23:31:49| 文档星级:?????

全文阅读已结束如果下载本文需要使用

该用戶还上传了这些文档

我要回帖

更多关于 线性代数中的为什么 的文章

 

随机推荐