来自奥胡斯大学密码学PhD、Datadog机器学习工程师Morten Dahl介绍了如何实现基于加密数据进行训练和预测的卷积神经网络。本文进行概括和总结
工作
使用一个经典CNN模型,使其能够用于基于加密数据进行训练和预测。
动机
CNN目前可以用于很多分析图像的领域。如果能够让实际使用的用户在应用场景下提供更多的数据,那么模型的性能肯定可以提高。但是这涉及很多用户的隐私问题,如果用户可以明确自己提交的数据是确保隐私安全的,那么将可以吸引更多用户使用这些工具,提交更多数据。
基于MPC我们可以潜在地降低暴露信息的风险,从而增强参与的动机。更具体地说,通过转而在加密数据上训练,我们不仅可以防止任何人查看个人数据,还可以防止泄露学习到的模型参数。
使用简单的CNN模型
用例是经典的MNIST手写数字识别,模型是Keras示例中的CNN模型
#keras
feature_layers = [
Conv2D(32, (3, 3), padding='same', input_shape=(28, 28, 1)),
Activation('relu'),
Conv2D(32, (3, 3), padding='same'),
Activation('relu'),
MaxPooling2D(pool_size=(2,2)),
Dropout(.25),
Flatten()
]
classification_layers = [
Dense(128),
Activation('relu'),
Dropout(.50),
Dense(NUM_CLASSES),
Activation('softmax')
]
model = Sequential(feature_layers + classification_layers