我正在尝试了解序列化 scikit-learn/keras 拟合模型(使用 pickle/joblib 等)的安全隐患。
具体来说,如果我处理一些不想泄露的数据,是否有可能有人能够逆向工程出模型是基于哪些数据拟合的?还是说数据仅仅是算法更新相关系数/权重的方式?(如果我用“这部电影很好”训练模型并将其存储为 foo.pkl 文件,如果我只有 pkl 文件而没有数据,我是否也能加载 foo.pkl 并说它是基于“这部电影很好”训练的)
回答:
不,你不能(至少原则上不能)基于模型逆向工程出数据。当然,你可以推导出训练模型的权重等,并开始很好地理解它可能被训练过的内容,但直接推导数据,我不知道有任何可能的方法可以做到这一点,前提是你序列化的是训练后的模型。