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

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

时间:2017-04-21 21:35来源:118图库 作者:开奖直播现场 点击:
上图这个向量场非常有趣,因为它随起点差异而向不同方向移动。原因是,该向量场背后的向量存储着如2x 或x?2; 这样的元素,而不是 -2 和 5这样的标量值

  上图这个向量场非常有趣,因为它随起点差异而向不同方向移动。原因是,该向量场背后的向量存储着如2x 或x?2; 这样的元素,而不是 -2 和 5这样的标量值。对于图中的每个点,我们将 x 轴的值带入 2x 或 x?2; 中,直播,并绘制一个从开始点指向新位置的箭头。向量场对于机器学习技术的可视化非常有用,如绘制梯度下降(Gradient Descent)的方向。

  矩阵

  一个矩阵是数字或元素的矩形网格(如Excel表格),有着特别加、减、乘的运算规则。

  矩阵维度

  我们用m行n列( rows by columns)来描述矩阵的维度.

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

  a = np.array([
[1,2,3],
[4,5,6]
])
a.shape == (2,3)

  b = np.array([
[1,2,3]
])
b.shape == (1,3)

  矩阵的标量运算 Matrix scalar operations

  矩阵的标量运算与向量相同。只需将标量与矩阵中的每个元素进行加、减、乘、除等操作。

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

  Matrix scalar addition (矩阵的标量相加)

  a = np.array(
[[1,2],
[3,4]])
a + 1
[[2,3],
[4,5]]

  矩阵的元素操作Matrix elementwise operations

  为了实现两个矩阵的加、减、除操作,他们必须有着相同的维度。 * 我们对两个矩阵的对应元素值操作,组合生成新的矩阵。

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

  a = np.array([
[1,2],
[3,4]
])
b = np.array([
[1,2],
[3,4]
])

  a + b
[[2, 4],
[6, 8]]

  a — b
[[0, 0],
[0, 0]]

  Numpy 库的 broadcasting 方法*

  这个方法不能不提,因为它在实践中被广泛使用。在 numpy中,矩阵的元素操作对矩阵维度的要求,通过一种叫做 broadcasting的机制实现。我们称两个矩阵相容(compatible),如果它们相互对应的维度(行对行,列对列)满足以下条件:

  1. 对应的维度均相等, 或

  2. 有一个维度的大小是1

  a = np.array([
[1],
[2]
])
b = np.array([
[3,4],
[5,6]
])
c = np.array([
[1,2]
])

  # Same no. of rows
# Different no. of columns
# but a has one column so this works

  # 相同行数,不同列数,但 a 仅有一列,j2直播,所以可行。
a * b
[[ 3, 4],
[10, 12]]

  # Same no. of columns
# Different no. of rows
# but c has one row so this works

  # 相同列数,不同行数,但 c 仅有一行,所以可行。
b * c
[[ 3, 8],
[5, 12]]

  # Different no. of columns
# Different no. of rows
# but both a and c meet the
# size 1 requirement rule

  # 不同列数、不同行数,但 a 和 c 都满足大小为1的规则。
a + c
[[2, 3],
[3, 4]]

  在更高的维度上(3维,4维),情况会变得有点诡异,但现在我们不必担心。理解2维上的操作是一个好的开始。

  矩阵的 Hadamard 乘积 Matrix Hadamard product

  矩阵的Hadamard 乘积是一个元素运算,就像向量一样。对应位置的值相乘产生新的矩阵。

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

  a = np.array(
[[2,3],
[2,3]])
b = np.array(
[[3,4],
[5,6]])

  # Uses python's multiply operator

  # 使用 python 的乘法运算
a * b
[[ 6, 12],
[10, 18]]

  在 numpy 中,只要矩阵和向量的维度满足 broadcasting的要求,你便可以对他们使用 Hadamard 乘积运算.

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

  矩阵转置 Matrix transpose

  神经网络经常需要处理不同大小的输入矩阵和权值矩阵,它们的维度常常不满足矩阵相乘的规则。矩阵转置提供了一种方法来“旋转”其中的一个矩阵,使其满足乘法操作的要求。转置一个矩阵分两个步骤:

  1. 将矩阵顺时针旋转 90°

  2. 反转每行元素的顺序(例如,[a b c] 变成 [c b a])。

  以将矩阵 M 转置成 T为例:

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

  a = np.array([
[1, 2],
[3, 4]])

  a.T
[[1, 3],
[2, 4]]

  矩阵的乘法 Matrix multiplication

  矩阵的乘法定义了一系列关于矩阵相乘生成新矩阵的规则。

  规则

  不是所有的矩阵都可以进行乘法运算。并且,对于输出的结果矩阵也有维度要求。 参考.

  1. 第一个矩阵的列数 必须等于第二个矩阵的行数

  2.一个 M x N 矩阵和 N x K 矩阵的乘积结果是一个 M x K 矩阵. 新的矩阵取 第一个矩阵的行M 和 第二个矩阵的列K 。

  步骤

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