想学 AI,先搞懂这件小事!( 四 )

那向量检索又是什么意思?我们先来复习一下初中的几何数学 , 在二维平面XY上有若干个点 , A(1.0 2.0) , B(1.0 0.0) , C(0.0 2.0) , 试问A离谁比较近一些?

这里ABC就是三个二维向量 , 根据欧几里德数学知识 , 它们之间的距离可以通过如下公式计算(欧氏距离 , Euclidean Distance):

可以得出AB距离为2 AC距离为1因此我们知道A离C更近一些 。 这就是一个最简单的向量检索 , 我们通过计算获知向量A离C更近 , 而AC距离更近意味着向量A和向量C更相似 。 另外 , 判断向量相似度的还有个余弦距离 , 两者的区别是余弦距离要求向量做过归一化处理 , 这里就不再描述 , 有兴趣的可以自己去复习一下 。

相应的 , 对于高维向量 , 假设用A和B分别代表两个n维向量 , 它们之间的欧式距离计算公式就是:

回到人脸识别问题 , 假设我们已有一千万张人脸的向量数据 , 现在给定一张人脸 , 怎么在这一千万张人脸中找到与目标人脸最相似的人脸?根据上面的知识 , 我们只需要把这张人脸的向量和一千万张人脸向量分别计算欧氏距离 , 距离最小的就是最相似的 。

推荐阅读