09-特殊的向量

  • 0 向量 就是分量全为 0 的向量
    (0 0 … 0)
  • 单位向量 就是 L2 范数/模/长度为 1 的向量

如果一个向量大部分的位置为0, 少部分为非0的数, 那这样的向量我们就称之为稀疏向量, 反之为稠密向量, 它们是数学里面的一种叫法。稀疏向量和稠密向量在计算机程序里面在存储的时候是有差异的。对于系数项来说, 它只需要存这个向量的长度以及哪些位置, 它对应的就是要去存索引, 就是那些位置是非零的以及非零的位置, 它的值是多少,实际上就够了, 只需要存长度。 然后哪些位置有值, 然后知道那些值是多少就OK了, 剩下那些0的位置可以不用去存。 对于稠密线来说, 它就相当于是老老实实的把一个线段里面的每一个索引号所定的数值位置全部都要存下来,全部都要存下来, 对于计算机来说就是占内存多少的差异, 它们也属于特殊的向量

另外还有一种稀疏向量, 比如说咱们有些位置大部分通常都是0, 比如说有一个位置是1,其他的位置都是0, 那这种向量我们称之为one-hot编码, 中文叫独热编码, 就是单独一个位置是1的, 其他位置为0的向量, 也是比较特殊的一个向量。这个东西在机器学习里面经常会用到, 比如说晴天, 雨天, 多云这三种天气,如果这一天是这个雨天,那我们可以把雨天这块儿写1其他位置写0,如果是晴天,那我们在晴天位置写1其他的位置写0,它只会出现一个1, 也就是同一天, 只会有一种天气这种其实就是做了one-hot编码,那这个东西在机器学习里面,我们叫做离散数据的离散化,那对离散型的。就这一列是离散型的数据去做离散化,那实际上我可以去使用这种特殊的向量one-hot编码去做。

单位向量

单位向量是指长度为1的特殊向量,也称为L2范数或模为1的向量。在二维空间中,它指向原点(0, 0)的欧式距离为1的向量;在三维空间中,它指向原点(0, 0, 0)的欧式距离为1的向量。

单位向量可以通过将向量x除以它的模来获得。简单来说,单位向量就是把一个向量除以它的模,从而得到一个长度为1的向量。单位向量在欧式空间中有无数个,因为它可以指向无数个方向。

单位向量的重要作用之一是代表方向。通过单位向量,我们可以表示一个向量的方向。换句话说,任何向量都可以表示为它对应的单位向量乘上一个特定的值。

单位向量的计算很简单,对于一个非零向量x,要得到与其方向相同且长度为1的单位向量,只需将向量x除以其模长(长度)。数学表达式为:

单位向量 u = x / ||x||

其中,u为单位向量,x为非零向量,||x||表示向量x的模长(长度)。

单位向量的用途广泛,其中一个重要的应用是在机器学习和向量表示中。在向量空间模型中,可以使用单位向量来表示词向量、文本向量等,从而更好地捕捉词语或文本之间的语义关系和相似性。

下面是一个例子:

In [1]: import numpy as np

In [4]: W = np.array([3, 5, 6, 7, 8])

In [5]: np.sqrt(np.sum(np.square(W)))
Out[5]: 13.527749258468683

In [6]: L2 = np.sqrt(np.sum(np.square(W)))

In [7]: e = W/L2

In [8]: e
Out[8]: array([0.22176638, 0.36961064, 0.44353276, 0.51745489, 0.59137702])

In [9]: L = np.sqrt(np.sum(np.square(e)))

In [10]: L
Out[10]: 1.0

参数说明:w指的是一个向量,L2指的是L2范数, L是模长, e在数学和物理中常被用来代表单位向量;
在这里当e乘以一个数值后,我们得到一个新的向量 w,相当于在w向量的方向上取模长为1(也就是1/(w的模长))的向量,这个向量的方向与原来的单位向量是一致的。因此,单位向量更多地代表了一个方向。通过将一个向量与单位向量进行比较,我们可以得知它们是否指向相同的方向,或者它们之间的夹角是多少。这种方法不一定非要使用原始向量进行计算,我们也可以通过单位向量来进行推导。

你可能感兴趣的:(人工智能高等数学知识强化,向量,数学)