机器学习中的数学:向量求和符号累乘符号

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 所示,本文向量使用 字母小写粗体 表示。与向量不同的普通的单个数叫作标量。本文中的标量用 小写斜体 表示,如 xy。向量右上角的 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 ab为邻边的平行四边形求对角线。

示例代码:

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] ab=[21][13]=[2113]=[12]
示例代码:

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 ] ,

以上是关于机器学习中的数学:向量求和符号累乘符号的主要内容,如果未能解决你的问题,请参考以下文章

机器学习中的线性代数

机器学习的数学基础

数学那个带有∑这个符号的求和公式是啥含义,∑符号各部分表示的意思是啥?

数学符号西格玛 解释

M打横写那个数学符号叫啥啊?有啥意义??

16位寄存器的SSE无符号/有符号减法