一、论文概述
SenseGen这篇论文是17年发表在PerCom Workshops上的一篇论文,来自加州大学洛杉矶分校(University of California at Los Aneles,UCLA)网络与嵌入式系统实验室(Netoworked & Embedded Systems Laboratory,NESL),最早作者是放在arXiv上。SenseGen借鉴生成对抗网络的思想训练生成器,进而生成逼真的传感器数据,但是由于生成器最顶层采用了通过高斯混合模型(Gaussian Mixture Model,GMM)构建的混合密度网络(Mixture Density Network,MDN),不能把判别网络的误差反向传播给生成网络,所以只能单独训练生成网络和判别网络。因此,SenseGen本质上只是单一的训练一个生成模型来合成逼真的传感器数据,并不是传统意义上的生成对抗网络模型。
整体而言,细究本文存在很多的细节性描述漏洞和不足,但在生成对抗网络广泛应用于图像、视频、文本的研究背景下,SenseGen在一定程度上可以说是初步开启了探索生成对抗网络思想在传感器数据合成方面的研究。
二、研究背景
考虑到大数据分析的背景下的用户隐私问题,通过SenseGen生成模型来合成逼真的传感器数据用来替代用户的真实数据,合成的传感器数据能够在保护用户隐私的同时维持与真实数据相同的统计特性,进而保证数据分析的可用性质量。
众所周知,评价合成传感器数据的生成模型的性能是比较困难的,主要原因有:(1)很难找到一种评价传感器数据生成效果、逼真度好坏的标准;(2)同时,还必须要避免生成模型对原始传感器数据的过拟合,避免其输出对原始传感器数据的简单记忆
三、方法
SenseGen的目的就是训练一个能够生成逼真且保持真实分布特性的生成网络
(一)生成网络
3层LSTM + 2层全连接神经网络 + 1层MDN构建的,
核心在于最后一层混合密度网络(Mixture Density Network,MDN),是高斯混合分布于神经网络的结合。
最后一个全连接神经网络的72维输出被平均分为三个部分,每个部分的维度为24,
1~24:每个高斯分布在混合分布中的权重,即24个高斯模型组成的混合分布
25~48:每个高斯分布的参数
49~72:每个高斯分布的参数
输出结果的概率分布表示为:
预测值:
生成网络的训练优化策略为:RMSProp
成本函数(cost function):
(二)判别网络
为了能够评估生成的传感器数据与真实传感器数据之间的相似度,构建了一个判别网络来区分生成数据和真实数据
1层LSTM + 1层全连接网络构建,如上图所示
分别含有64个和16个单元
激活函数:sigmoid
输出值代表输入数据来自真实数据的概率:,即真实输入数据的输出结果目标为1,合成输入数据的输出结果目标为0。
每个mini-batch有m个样本,每个样本包含400个采样点
判别网络的训练目标为交叉熵损失:
四、实验及效果
训练阶段生成网络负对数似然损失的(Negative Log likelihood cost,NLL )
判别网络鉴别真假数据的精度效果图:
真实加速数据与SenseGen生成的加速度数据效果对比图:
五、总结
SenseGen借鉴生成对抗网络的思想来训练生成网络合成逼真的传感器数据,但是并不是真正利用生成对抗网络的思想,(1)生成网络和判别网络单独训练,生成网络的训练并不依赖于判别网络的误差反向传播;(2)生成网络直接学习原始传感器数据,而不是学习随机噪声分布到真实数据分布之间的映射关系。而且SenseGen文中很多描述与公开的源代码之间对应不起来,细究论文一些内容也存在很多漏洞,但整体的思想还是可以借鉴用于传感器数据生成研究中。