DeepAuth:通过深度学习行为生物识别技术对智能手表进行原位认证
阅读时间:2021年10月13日星期三——2021年10月15日星期五
博客书写时间:2021年10月16日星期六——2021年10月17日星期日
这是一篇介绍用来实现在智能手表上的用户识别方式的算法:DeepAuth的论文。
针对用户在输入密码时的不同动作特征来辅助手表识别用户是否为合法用户,但是针对于智能手表这一特殊的设备(体积小、内存有限、运算能力受限),算法也需要根据它的特点进行调整。
首先,作者向我们介绍了背景:智能手表的发展势头迅猛,使得它摆脱了手机依附品的地位,已然成为了与智能手机并列的、智能穿戴设备中的重要组成元素之一。
然而,随着这一趋势的到来,智能手机的安全问题也成为了一个绕不开话题。市面上的大多数智能手表都采用了传统PIN锁或APL锁,但是这些设备的安全性自然难以和手机上的指纹识别和面部识别相提并论。因此,有必要采用动作特征加以辅助识别来确保安全性。但是:
第一、受限于手表的硬件(不能安装其他的传感器、手表小屏幕和低精度?noisier传感器的特征),我们难以获取可用的数据。
第二、考虑实际使用时冒充主人的情况,我们难以用有限的训练数据来完成对这一行为的识别。
因此,作者提出了这个DeepAuth架构来应对这些困难。(下图)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NnwL2K1G-1634524214249)(C:\Users\Fan luke\AppData\Roaming\Typora\typora-user-images\image-20211017193334012.png)]
作者指出,这个新型的架构可以解决我们所遇到的问题:
作者提到,这个模型一共有三个主要部分,在上图中可以很好地体现出来。
分别是:
下面展开介绍。
这里的重点是要确保我们获取的动作是合法用户的动作,作者指出可以采用“允许状态”(authenticated states)这一概念来保证,比如必须要在手表和手机配对成功的情况下发送数据。
总之,作者获取了合法数据之后上传到云端即可。
需要注意的是,我们所上传的只是与用户匹配动作数据,而不必知晓真正的密码。密码和用户名匹配即可,这是手表本地的处理工作。
数据为(x,y)的形式
Each data point is a pair (x, y), where x is the motion data and y is its corresponding identity label.
DeepAuth的目的是降维,对x得到函数f(x),使得其可以对应Yi(用户标签)。
但是,考虑到上文不接触密码和应对伪装者的情况——也就是新用户的身份问题,我们需要使得f(x)做出正确的答案。
考虑到这个任务的难度,作者使用了循环神经网络(RNN)和复合损失函数来处理这一个问题。
RNN
多对一的神经网络结构
The output of the RNN layer is forwarded to a fully-connected bottleneck layer, and then to the output supervised via loss functions.
从瓶颈层中提取到的信息用来作为材料
作者将在下文详细介绍如何实现这一目标
复合损失函数
首先,作者还是以密码不可知为前提来入手,讲解了如何获取用户标签对应的动作信息——直接传入动作信息+标签的数据。
作者指出,他们使用的是 softmax loss 和center loss 相结合的方式来训练神经网络模型。
给出了一个极为复杂的公式:
但是经过查阅相关资料之后,就会发现这个公式不过是本来的softmax公式和center loss公式求和而已,只是在center loss公式前加了一个参数λ。
经过下文作者的介绍我们可以得知,两种损失函数可以分别很好地使用上边提出的一种情况:
softmax loss只能适用于对于已有的标签的分类,而center loss则能辅助完成对于区分不可知用户的识别。
因此两者的结合可以完成我们的目标。
超参数λ的含义是强调了两者的折衷,由交叉验证获得。?
作者举例来向我们说明这一过程:
新用户y使用该功能时,DeepAuth首先在本地创建他的动作模型,在他在“授权状态”下输入密码时提取动作特征。然后将提取到的特征放入ultivariate normal (MVN) model:fy ∼ N (µ,Σ)当中。
于是,当用户再次输入密码时,我们获取到他的新的特征 fnew ,并评估其与我们之前的模型的差距,并根据距离的一个确定值来评估用户的操作是否合法。
上文所介绍的原位识别的关键是对于新的特征的实时识别。
考虑到智能手表的性能有限,这一问题显得非常棘手。并且,作者指出,考虑到标准的RNN推断要重复处理输入序列,它也并不适合于本功能。
不过,作者提到, 他们发现我们的网络并不需要处理整个的输入序列,因为输入序列的顺序关联并不是很重要。因此,我们可以把长的输入序列打断之后平行地、同时进行推断。
所以DeepAuth将标准的RNN模型分成了两部分来处理。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bUdAEfLA-1634524214253)(C:\Users\Fan luke\AppData\Roaming\Typora\typora-user-images\image-20211017204726472.png)]
这样做的好处显而易见,第一,RNN模型的体积减少,内存消耗减少。更重要的是,我们的速度也得到了提高。
作者说这是一个大范围的全球性的测试,测试了三个地区的志愿者的数据:牛津、上海和哈尔滨。
实验过程:介绍了实验的过程
在线密码调查
数据收集
竞争方法:和其他的算法的比较:只使用softmax的DeepAuth;ICNP14和Mobicom13
指标和评价协议:accuracy, precision, recall and F1 score???
应用:不太理解什么意思
作者介绍了两种情况下的系统表现。
分别是总体认证和原位认证。
?第二个是在具体的智能手表上,但是第一个是什么意思不太清楚。
作者得出结论,DeepAuth这一系统可以利用一个新型的小的深度神经网络和符合损失函数很好地解决数据有限、提取稳定的用户动作特征的要求。
进一步的实际实验也整理这一系统的可行性。
1、daemon,守护进程
2、损失函数,常见的损失函数
3、bottleneck的理解
4、交叉验证
5、为什么论文代指用her不用his?
6、accuracy, precision, recall and F1 score这几个指标是什么意思?应该是机器学习里的测试指标,还没学习到。
7、
阅读过程中,我的主要阅读重心放在了论文的前半部分,对于后半部分具体的实验没有详细看。但是后半部分实验当中的某些评估指标也的确是我的知识的盲区,应该想办法补齐。
【深度学习】一文读懂机器学习常用损失函数(Loss Function) - 郭耀华 - 博客园 (cnblogs.com)
(2条消息) bottleneck理解_guoyueyang的博客-CSDN博客_bottleneck
(2条消息) 【损失函数系列】softmax loss损失函数详解_gbz3300255的博客-CSDN博客_softmax损失函数
人脸识别论文再回顾之一:Center Loss - 知乎 (zhihu.com)
交叉验证_百度百科 (baidu.com)