机器学习中的数学:向量求和符号累乘符号
Posted Amo Xiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习中的数学:向量求和符号累乘符号相关的知识,希望对你有一定的参考价值。
目录
一、向量
1.1 什么是向量?
向量 是由几个数横向或纵向排列而成的。数纵向排列的向量叫作 列向量 ,如下式所示的变量就是列向量:
x
=
[
6
8
]
\\mathbfx=\\left[\\beginmatrix 6 \\\\ 8\\endmatrix\\right]
x=[68]
数横向排列的向量叫作 行向量,如下式所示的变量就是行向量:
y
=
[
1
2
3
4
5
6
]
\\mathbfy = \\left[\\beginmatrix1 & 2 & 3 & 4 & 5 & 6\\endmatrix\\right]
y=[123456]
构成向量的一个一个数叫作元素。向量中的元素个数叫作向量的维度。如上例所示, 为二维列向量, 为四维行向量。如
x
\\mathbfx
x 和
y
\\mathbfy
y 所示,本文向量使用 字母小写粗体 表示。与向量不同的普通的单个数叫作标量。本文中的标量用 小写斜体 表示,如 x、y。向量右上角的 T 是转置符号,表示将列向量转换为行向量,或者将行向量转换为列向量,如下式所示:
y
T
=
[
1
2
3
4
5
6
]
T
=
[
1
2
3
4
5
6
]
\\mathbfy^T =\\left[\\beginmatrix1 & 2 & 3 & 4 & 5 & 6\\endmatrix\\right]^T= \\left[\\beginmatrix1 \\\\ 2 \\\\ 3 \\\\ 4 \\\\ 5 \\\\ 6\\endmatrix\\right]
yT=[123456]T=⎣⎢⎢⎢⎢⎢⎢⎡123456⎦⎥⎥⎥⎥⎥⎥⎤
x
T
=
[
6
8
]
T
=
[
6
8
]
\\mathbfx^T =\\left[\\beginmatrix 6 \\\\ 8\\endmatrix\\right]^T= \\left[\\beginmatrix6 & 8\\endmatrix\\right]
xT=[68]T=[68]
1.2 向量的简单定义及使用
import numpy as np # 导入numpy包
x = np.array([6, 8])
print(x)
# 一维的 ndarray 类型没有纵横之分,往往表示为行向量。
# 表示 2 × 2 的二维数组(矩阵)
y = np.array([[1, 2], [3, 4]]) # 列向量
print(y)
z = np.array([[1], [2]]) # 列向量
print(z)
# 向量通常定义为一维 ndarray 类型,必要时可以用二维 ndarray 类型
# 转置用 变量名.T
print(z.T)
print(z.T.T) # 转置操作对于二维 ndarray 类型有效,但对于一维 ndarray 类型是无效的。
1.3 向量的加法和减法
有如下两个向量:
a
=
[
2
1
]
,
b
=
[
1
3
]
\\beginaligned \\mathbfa=\\left[\\beginmatrix 2 \\\\ 1\\endmatrix\\right], \\mathbfb=\\left[\\beginmatrix 1 \\\\ 3\\endmatrix\\right]\\endaligned
a=[21],b=[13]
首先进行加法运算。向量的加法运算 是将各个元素相加:
a
+
b
=
[
2
1
]
+
[
1
3
]
=
[
2
+
1
1
+
3
]
=
[
3
4
]
\\beginaligned \\mathbfa+b=\\left[\\beginmatrix 2 \\\\ 1\\endmatrix\\right] +\\left[\\beginmatrix 1 \\\\ 3\\endmatrix\\right]\\endaligned=\\left[\\beginmatrix 2 +1 \\\\ 1 +3\\endmatrix\\right]=\\left[\\beginmatrix 3 \\\\ 4\\endmatrix\\right]
a+b=[21]+[13]=[2+11+3]=[34]
向量的加法运算可以通过图形解释。首先,将向量的元素看作坐标点,将向量看作一个从坐标原点开始,延伸到元素坐标点的箭头。这样一来,单纯地将各个元素相加的向量加法运算就可以看作,对以
a
和
b
\\beginaligned \\mathbfa和\\mathbfb\\endaligned
a和b为邻边的平行四边形求对角线。
示例代码:
import numpy as np
a = np.array([2, 1])
b = np.array([1, 3])
print(a + b)
向量的减法运算与加法运算相同,是对各个元素进行减法运算:
a
−
b
=
[
2
1
]
−
[
1
3
]
=
[
2
−
1
1
−
3
]
=
[
1
−
2
]
\\beginaligned \\mathbfa-b=\\left[\\beginmatrix 2 \\\\ 1\\endmatrix\\right] -\\left[\\beginmatrix 1 \\\\ 3\\endmatrix\\right]\\endaligned=\\left[\\beginmatrix 2 -1 \\\\ 1 -3\\endmatrix\\right]=\\left[\\beginmatrix 1 \\\\ -2\\endmatrix\\right]
a−b=[21]−[13]=[2−11−3]=[1−2]
示例代码:
import numpy as np
a = np.array([2, 1])
b = np.array([1, 3])
print(a - b)
a - b 就是 a + (-b) ,可以看作 a 和 -b 的加法运算。从图形上来说, -b 的箭头方向与 b 相反。所以,a + (-b) 是以 a 和 -b 为邻边的平行四边形的对角线。
1.4 标量积
在标量与向量的乘法运算中,标量的值会与向量的各个元素分别相乘,比如 2a:
2
a
=
2
×
[
2
1
]
=
[
2
×
2
2
×
1
]
=
[
4
2
]
\\beginaligned \\mathbf2a=2×\\left[\\beginmatrix 2 \\\\ 1\\endmatrix\\right]\\endaligned=\\left[\\beginmatrix 2×2 \\\\ 2 ×1\\endmatrix\\right]=\\left[\\beginmatrix 4 \\\\ 2\\endmatrix\\right]
2a=2×[21]=[2×22×1]=[42]
示例代码:
import numpy as np
a = np.array([2, 1])
print(2 * a)
从图形上来说,向量的长度变成了标量倍,如下图所示:
1.5 内积
向量与向量之间的乘法运算叫作内积。内积是由相同维度的两个向量进行的运算,通常用 以上是关于机器学习中的数学:向量求和符号累乘符号的主要内容,如果未能解决你的问题,请参考以下文章·
表示,这在机器学习涉及的数学中很常见。内积运算是把对应的元素相乘,然后求和,比如:
b
=
[
1
3
]
,