Skip to content

kaisadadi/clinical-attacker

Repository files navigation

Clinical Attacker

程序入口为attack_demo.py,其核心为attack_gate类,详细的介绍在下方展开,具体的使用示例可参看"__main__"中的内容。

​ (1) init

​ 需要指定params参数,其中包含以下部分:

​ config: config文件的路径

​ model_id: 攻击的模型的id,也可以理解为选择第x个epoch的模型

​ mode: while或black,白盒或黑盒

​ gpu: 指定使用的gpu,多个话用,隔开

​ (2) attack

​ 需要给定notes,即攻击的病历数据。notes为list,其中每个元素为单个病历,如{"text": "", "label": [0, 1, 8]}。

​ 返回数据也是一个list,其中每个元素为一个字典,包含如下部分:

​ id: 对应输入数据的第几条数据(攻击失败的会自动跳过)

​ raw_seq: 原始病历文本

​ adv_seq: 对抗病历文本(为了方便观察替换处,替换的地方的左右侧均由##进行包裹)

​ raw_label: 原始标签

​ adv_label: 对抗攻击后的预测结果

​ L2_loss: 对抗攻击导致的L2损失

​ Perturbation_num: 对抗攻击产生的干扰数


config文件是程序所需的参数配置器,也是非常关键的部分。

​ (1) 栏目

​ config文件包含train、data、model、output、attack等栏目,分别对应模型训练、数据源及预处理、模型结构、输出设置、对抗攻击设置等参数的设置。

​ 举个例子,当前对抗攻击采用的是3-attack,而这个参数3位于config/default.config的attack栏目下的task中。与对抗攻击相关的参数均在config/default.config的attack栏目下。

​ (2) 参数寻找逻辑

​ 对于所有参数,均首先在指定的config路径下寻找,如示例中的"config/nlp/LSTM.config",如果找不到会先后在"config/default_local.config"和"config/default.config"中寻找。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published