二、人脸识别的基础概念-算法、向量、相似度

时间:2024-04-12 12:14:37

从产品经理角度如何看待人脸识别算法

大家都知道人脸识别算法是从深度学习发展起来后达到可以商用的水平,大家肯定也都听过卷积神经网络(CNN)的大名,那卷积神经网络究竟是啥玩意儿呢?

咱们去百度一下,看到了一些这样的网络模型
二、人脸识别的基础概念-算法、向量、相似度
二、人脸识别的基础概念-算法、向量、相似度
what?这是啥?

二、人脸识别的基础概念-算法、向量、相似度

还好,作为产品经理,我们可以不用知道算法的具体实现,我们只需要知道,算法的目的是提取出每张人脸图中的特征,让同一个人的照片提取到的特征有更高的相似度,让不同人的照片提取到的特征有更低的相似度。从而通过特征的相似度来区分是不是同一个人。

那从算法提取出来的人脸特征是啥?是眼耳鼻喉吗?可能是,也可能不是,我们不得而知,这就是大家说的深度神经网络是个黑盒子,我们无法知道里面归纳提取了什么特征。但我们经过统计验证后发现,这些提取出来的特征能达到我们区分是否同一个人的目的,所以我们不需要知道这些特征是什么,只需要这些特征有效就行。

那这些特征是如何表示的呢?
{0,0.123322,0.348484,0,…,0.2323,0,0.12134}
没错,就是一串有顺序的数字,我们称之为“特征向量”

所以2张人脸图的相似度,就是2个特征向量的相似度,那2个特征向量,也就是2串数字之间是如何算出相似度的呢?

其实向量在几何学上的表示就是一条有方向的线,当你有一组2个数字{1,2},则可以表示在二维空间中的一条线,也就是二维向量,如果有一组3个数字{1,2,1},就可以表示三维空间中的一条线,如果有一组N个数字,就可以表示N维空间的一条线。

而一般人脸识别算法使用的相似度度量都是余弦相似度,为了容易理解,下面就以二维向量来解释什么是余弦相似度。

下图中的a和b就是2个二维向量,那a和b的余弦相似度,就是夹角θ的余弦值cosθ,因为人脸特征向量的在所有维度的特征值都是大于0,所有向量都是在第一象限,所以夹角θ小于等于90度,cosθ的值在0到1之间。
如果说2张人脸图的相似度是70%,表达的就是这2张人脸图的特征向量的夹角余弦值cosθ为0.7。

补充:为什么2个向量的夹角余弦值可以表达2个向量的相似度呢?从几何意义上来看,a和b的夹角余弦值,可以理解为a在b方向上的投影a’与a的比值,如果2个向量的方向越相近,那a’与a的比值就越大。

当然,除了余弦相似度,还有其他类似欧式距离、推土机距离等等可以表示2个向量的相似度,只是一般人脸识别领域更多使用余弦相似度来表示。

二、人脸识别的基础概念-算法、向量、相似度

从上面的内容我们知道了,
1.人脸识别算法的目的是区分2张人脸图是不是同一个人
2.人脸识别算法的产物是可以得出每张人脸图的特征向量
3.人脸图的特征向量一般是使用余弦相似度来评价2个向量的相似度