上海大学 吴昊
计算机专业博士研究生,华为云计算专家,CSDN博客专家,CSDN人工智能领域优质创作者,现主要研究Python数据分析、机器学习、NLP相关领域内容。
展开
-
数据增强在文本分类任务中的应用
我主要采用两种对比方法,一种是Roberta+数据增强(随机替换、删除、插入、交换);另一种是Roberta+数据增强(随机替换、删除、插入),然后经过对比使用,查看具体效果。数据增强(Data augmentation)这是自然语言处理(NLP)中的一个重要技术,用于增强数据集的多样性和数量,以改善模型的泛化性能和鲁棒性。可以看到效果不是很好,还没有数据增强之前好,原因分析可能是数据增强的方法过多,产生过多干扰样本,影响分类结果。一、 Roberta+数据增强(随机替换、删除、插入、交换)原创 2023-06-14 23:31:54 · 859 阅读 · 0 评论 -
浅谈数据增强
数据增强是一种有效的方式,可以通过扩充训练集,来提高模型的泛化能力和鲁棒性。原创 2023-06-13 23:36:13 · 402 阅读 · 0 评论 -
对比学习+Prompt+FGSM实现文本分类
这段代码定义了一个文本分类模型TextClassificationModel。该模型接受三个参数:model_name表示预训练模型的名称,num_labels表示分类任务的类别数,use_contrastive_learning表示是否使用对比学习进行数据增强,use_prompt表示是否使用提示进行分类。在__init__方法中,首先根据model_name加载预训练模型的配置文件,并设置num_labels为分类任务的类别数。原创 2023-06-10 11:02:06 · 1126 阅读 · 0 评论 -
对偶对比学习方法在文本分类任务中的应用
对偶对比学习(Dual Contrastive Learning,DCL)是一种新兴的自监督学习方法,它可以用于学习文本的表示。与传统的对比学习方法不同,DCL使用对偶性原理,将正样本和负样本的对比学习转化为两个对称的任务,从而提高了模型的性能。在文本分类任务中,DCL可以用于学习文本的表示,从而提高分类的准确性。具体来说,DCL使用两个对称的任务来学习文本的表示:正样本任务和负样本任务。在正样本任务中,DCL将同一篇文本的不同片段作为正样本,将其他文本的任意片段作为负样本,从而学习文本的表示。原创 2023-06-10 10:09:37 · 830 阅读 · 0 评论 -
Bert+对抗训练+对抗性样本防御的文本分类实战
我们用Bert实现对THUCNews文本分类,在embdedding使用FGSM添加干扰实现对抗训练,并且考虑对抗性样本的防御,代码实现并进行逐行注释,使用pytorch实现。原创 2023-05-27 14:28:19 · 1147 阅读 · 1 评论 -
基于Bert+对抗训练的文本分类实现
由于Bert的强大,它文本分类取得了非常好的效果,而通过对抗训练提升模型的鲁棒性是一个非常有研究意义的方向,下面将通过代码实战与大家一起探讨交流对抗训练在Bert文本分类领域的应用。原创 2023-05-26 16:14:02 · 1239 阅读 · 3 评论 -
Bert+FGSM/PGD实现中文文本分类(Loss=0.5L1+0.5L2)
这段代码的主要作用是创建一个用于文本分类的 BERT 模型,并初始化优化器和损失函数。其中: BertForSequenceClassification.from_pretrained('bert-base-chinese', num_labels=10) 加载了预训练的 BERT 模型,并创建了一个用于文本分类的 BERT 模型。其中,'bert-base-chinese' 表示使用中文 BERT 模型,num_labels=10 表示模型的输出类别数为 10。原创 2023-06-05 14:14:53 · 562 阅读 · 1 评论 -
Bert+FGSM中文文本分类
接下来,它使用torch.max()和torch.min()函数将张量X中的元素限制在下限和上限之间,并返回截断后的张量。需要注意的是,该函数中使用了clone().detach()方法来复制构造一个新的张量,这是为了避免在函数中修改原始张量X。同时,该函数中使用了X.device来将下限和上限张量分配给与X相同的设备,这是为了保证在不同设备上运行时代码的兼容性。这段代码实现了一个张量的截断操作,即将张量X中的元素限制在一个上下限范围内,返回截断后的张量。中的实现思路,下面开始记录下来具体实验代码。原创 2023-06-05 15:34:29 · 804 阅读 · 1 评论 -
Robert+SimCLR+PGD实现文本分类
定义模型# 定义模型和对抗训练# 对抗训练adv_input_ids = input_ids.detach() # 分离输入以保持梯度不变# 创建PGD攻击器eps=0.3,# 对输入进行攻击# 计算对抗损失# 原始训练# 总损失为原始损失和对抗损失之和return accreturn acc。原创 2023-06-09 16:38:53 · 1176 阅读 · 0 评论 -
Robert+SimCLR+FGSM实现文本分类
我们选择使用RoBERTa作为文本分类模型,RoBERTa是BERT的改进版,它在BERT的基础上做了一些改进,例如使用更大的训练数据、使用更长的训练时间、去掉了NSP任务等。在训练函数中,我们首先定义了两个数据增强函数,分别为随机掩码和随机替换。随机掩码是将输入文本中的一些单词随机替换成掩码,随机替换是将输入文本中的一些单词随机替换成其他单词。这两个数据增强函数将用于生成SimCLR中的两个样本。然后我们定义了对抗训练中使用的FGM攻击函数和训练函数。原创 2023-06-09 14:40:47 · 1070 阅读 · 0 评论