我可以对机器学习模型的训练数据(部分)进行逆向工程吗?

数据挖掘 机器学习 深度学习
2022-03-10 12:12:18

有人用一些数据 A 成功地训练了机器学习模型。

是否有可能以某种方式对机器学习模型进行逆向工程,使我能够深入了解数据 A 或至少部分数据?

我的意思是:了解我的数据中的单行,例如:该行中的某些属性具有哪些值或值范围。

额外的问题:它可能取决于机器学习模型的类型(是神经网络模型还是其他模型)?

1个回答

是的,这在不同程度上是可能的。

最引人注目的例子是预测文本模型,如 xkcd 漫画:

在此处输入图像描述

请参阅有关该主题的 两篇伯克利 AI 研究博客文章以及相关 论文如那里所述,该领域的一个重要思想是差分隐私这是一个非常强的条件;如本文第 2.1 节所述

攻击者可以知道任何数量的个人信息,甚至可以知道数据集中的每个其他数据点,但仍然无法检测到目标个人的存在

即使是简单的线性模型也无法实现这种隐私级别;快速搜索可以找到多篇关于逻辑回归的差分私有版本的论文,上面的链接调查了决策树的此类问题。

对于不那么严格的隐私感,您需要有某种方法来识别各个行,否则就不可能提取有关任何给定行的见解。知道行值的某些子集可能足以唯一地识别它,然后有关模型的一些知识可以提供有关行中其他值的信息,如上所述。从必须存储实际训练数据的 k 最近邻到可以从系数中收集到一些信息的线性模型,访问实际模型信息会大有帮助;但在大多数研究领域,我们仅限于将模型视为黑盒,充其量只能自由查询模型。

准备这个答案时想到了一件事,但我不知道是否有任何正式的东西:训练数据通常比随机数“更好”;也许你知道在所有的训​​练数据中,一个特征被四舍五入到百分之一。然后,即使使用简单的多项式回归,您也可能会得到一些有趣的技巧。假设模型只有一个特征x有目标y,并且两者都在训练集中四舍五入到百分之一,并假设模型对训练数据进行插值(通常是一个坏主意,但有时可以说神经网络)。攻击者可以查询f^(x)每百分之一舍入x(在某些实际范围内),并保留一个列表,列出那些其输出恰好在百分之一后也没有非零小数;这些是唯一可能的训练点,因为模型对训练集进行了插值。