本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

时间:2017-04-21 21:35来源:118图库 作者:开奖直播现场 点击:
编译 | 沈爱群,徐凌霄,Aileen 在学习深度学习的课程时,数学知识十分重要,而如果要挑选其中最相关的部分,“线性代数”首当其冲。 如果你也跟本文作者一样,正在探索深度学习

  编译 | 沈爱群,徐凌霄,Aileen

  在学习深度学习的课程时,数学知识十分重要,而如果要挑选其中最相关的部分,“线性代数”首当其冲。

  如果你也跟本文作者一样,正在探索深度学习又困于相关数学概念,那么一定要读下去,这是一篇介绍深度学习中最常用线性代数操作新手指南

  什么是线性代数?

  在深度学习中,线性代数是一个非常有用的数学工具,提供同时操作多组数值的方法。它提供多种可以放置数据的结构,如向量(vectors)和矩阵(matrices, 即spreadsheets)两种结构,并定义了一系列的加减乘除规则来操作这些结构。

  为什么有用?

  线性代数可以将各种复杂问题转化为简单、直观、高效的计算问题。下面这个Python例子展现了线性代数的高速与简洁。

  # Multiply two arrays 将两个数组直接相乘
x = [1,2,3]
y = [2,3,4]
product = []
for i in range(len(x)):
product.append(x[i]*y[i])

  # Linear algebra version 线性代数版操作
x = numpy.array([1,2,3])
y = numpy.array([2,3,4])
x * y

  通过将数组初始化「numpy.array()」, 线性代数方法较数组相乘快了三倍。

  它是怎样用于深度学习的?

  神经网络(Neural networks)将权值(weights)存放于矩阵(matrices)中。线性代数使得矩阵操作快速而简单,特别是通过 GPU 进行运算。事实上,GPU 的设计便是受启发自向量和矩阵的运算。类似于用像素的多维数组(arrays of pixels)来表示图形图像,视频游戏通过大规模且持续的矩阵计算,带来了极具吸引力的游戏体验。GPU 是并行操作整个矩阵中的各个像素,而不是一个接一个地去处理单个像素。

  向量

  向量是关于数字或数据项的一维数组的表示。从几何学上看,向量将潜在变化的大小和方向存储到一个点。向量 [3, -2] 表示的是左移3个单位下移2个单位。我们将 具有多个维度的向量称为矩阵。

  向量记法

  应用中有多种表达向量的方式,下式是阅读中常见的几种表示。

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

  几何学中的向量

  向量通常用于代表从一个点出发的移动。它们用一个点存储了大小(magnitude)和方向(direction)的潜在变化。如向量 [-2,5] 表示左移2个单位并上移5个单位。 参考:

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

  v = [-2, 5]

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

  标量操作

  标量操作涉及到一个向量和一个数。你可以通过对向量中的所有项进行加、减、乘操作,实现对一个向量的原地修改(in-place modification) 。

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

  Scalar addition (标量相加)

  元素操作Elementwise operations

  在向量的元素操作中,如加减除,相应位置的值被组合生成了新的向量。向量 A中的第一个值与向量 B 中的第一个值相加,然后第二个值与第二个值配对,如此循环。这意味着,两个向量必须要有相同的维度才能进行元素操作。 *

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

  Vector addition (向量相加)

  y = np.array([1,2,3])
x = np.array([2,3,4])
y + x = [3, 5, 7]
y - x = [-1, -1, -1]
y / x = [.5, .67, .75]

  *细节请参考下面关于numpy 中的 broadcasting 方法。

  向量乘法

  向量乘法有两种:点积(Dot product) 和 Hadamard乘积(Hadamard product)。

  点积

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

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

  y = np.array([1,2,3])
x = np.array([2,3,4])
np.dot(y,x) = 20

  Hadamard乘积

  Hadamard 乘积是元素相乘,它的输出是一个向量。

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

  y = np.array([1,2,3])
x = np.array([2,3,4])
y * x = [2, 6, 12]

  向量场

  如果我们对某点 (x,y) 应用了一个加法或乘法的向量函数,向量场表示了该点理论上可以移动多远。在空间中给定一个点,向量场显示了图中各个点的可能的变化力度(power)和方向(direction)。

码报:【j2开奖】机器学习中的线性代数:关于常用操作的新手指南

  向量场参考

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容