当前位置: 首页 > wzjs >正文

做网站卖游戏装备网站 建设情况

做网站卖游戏装备,网站 建设情况,wordpress 文章链接,360关键词排名百度基于 Transformer robert的情感分类任务实践总结之一 核心改进点 1. R-Drop正则化 原理:通过在同一个输入上两次前向传播(利用Dropout的随机性),强制模型对相同输入生成相似的输出分布,避免过拟合。实现&#xff1a…

基于 Transformer robert的情感分类任务实践总结之一

核心改进点

1. R-Drop正则化
  • 原理:通过在同一个输入上两次前向传播(利用Dropout的随机性),强制模型对相同输入生成相似的输出分布,避免过拟合。
  • 实现
    • 对同一文本输入,两次通过RoBERTa模型(Dropout层随机失活不同神经元),得到两组logits。
    • 损失函数由**交叉熵损失(CE)KL散度损失(KL)**组成:
      Loss = CE ( l o g i t s 1 , l a b e l s ) + CE ( l o g i t s 2 , l a b e l s ) + α × KL ( l o g i t s 1 , l o g i t s 2 ) \text{Loss} = \text{CE}(logits_1, labels) + \text{CE}(logits_2, labels) + \alpha \times \text{KL}(logits_1, logits_2) Loss=CE(logits1,labels)+CE(logits2,labels)+α×KL(logits1,logits2)
      其中,(\alpha)为KL损失权重(本文设为5.0)。
2. 标签平滑(Label Smoothing)
  • 作用:缓解模型对标签的过度自信,通过向独热标签中添加均匀噪声(本文系数为0.1),提升泛化能力。

评价指标

  • 准确率(Accuracy)、F1分数(F1)、ROC-AUC值,全面评估分类性能。

实验结果与总结

  • 性能提升:相比基础RoBERTa,改进后模型在测试集上的F1分数提升约1.2%,AUC提升约0.8%,过拟合现象明显缓解。
  • 核心价值:R-Drop通过强制模型输出一致性,有效增强了预测稳定性;标签平滑则降低了模型对硬标签的依赖,两者结合显著提升了泛化能力。
  • 适用场景:文本分类、情感分析等任务,尤其适合标注数据有限或需提升模型鲁棒性的场景。

代码

#!/usr/bin/env python
# 改进版 RoBERTa 情感分类器 v2
import os
import random
import numpy as np
import torch
import torch.nn as nn
from transformers import (AutoTokenizer,AutoModelForSequenceClassification,Trainer,TrainingArguments,DataCollatorWithPadding,get_cosine_schedule_with_warmup,set_seed,EarlyStoppingCallback,
)
from datasets import load_dataset
from sklearn.metrics import accuracy_score, f1_score, roc_auc_score
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"# 设置随机种子
set_seed(42)# 配置
MODEL_NAME = "roberta-base"
NUM_LABELS = 2
R_DROP_ALPHA = 5.0  # R-Drop loss 权重
LABEL_SMOOTHING = 0.1  # 标签平滑系数# 加载数据
dataset = load_dataset("imdb")
train_dataset = dataset["train"]
test_dataset = dataset["test"]# Tokenizer
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)def preprocess_function(examples):return tokenizer(examples["text"], truncation=True)train_dataset = train_dataset.map(preprocess_function, batched=True)
test_dataset = test_dataset.map(preprocess_function, batched=True)# 数据整理器
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)# 加载模型
model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME, num_labels=NUM_LABELS
)# 改进版 Loss R-Drop + Label Smoothing)
class RDropLoss(nn.Module):def __init__(self, alpha=1.0, label_smoothing=0.0):super(RDropLoss, self).__init__()self.alpha = alphaself.label_smoothing = label_smoothingself.ce = nn.CrossEntropyLoss(label_smoothing=label_smoothing)self.kl = nn.KLDivLoss(reduction="batchmean")def forward(self, logits1, logits2, labels):# CrossEntropy Lossce_loss1 = self.ce(logits1, labels)ce_loss2 = self.ce(logits2, labels)ce_loss = 0.5 * (ce_loss1 + ce_loss2)# KL散度 Lossp = torch.log_softmax(logits1, dim=-1)q = torch.log_softmax(logits2, dim=-1)p_softmax = torch.softmax(logits1, dim=-1)q_softmax = torch.softmax(logits2, dim=-1)kl_loss = 0.5 * (self.kl(p, q_softmax) + self.kl(q, p_softmax))return ce_loss + self.alpha * kl_loss# 评价指标
def compute_metrics(eval_pred):logits, labels = eval_predprobs = torch.softmax(torch.tensor(logits), dim=-1).numpy()predictions = np.argmax(logits, axis=-1)acc = accuracy_score(labels, predictions)f1 = f1_score(labels, predictions)try:auc = roc_auc_score(labels, probs[:, 1])except:auc = 0.0return {"accuracy": acc, "f1": f1, "auc": auc}# 自定义 Trainer,支持 R-Drop
class RDropTrainer(Trainer):def __init__(self, *args, alpha=1.0, label_smoothing=0.0, **kwargs):super().__init__(*args, **kwargs)self.rdrop_loss_fn = RDropLoss(alpha=alpha, label_smoothing=label_smoothing)def compute_loss(self, model, inputs, return_outputs=False, **kwargs):labels = inputs.pop("labels")# forward twice (Dropout 不同)# model.train()#没有必要。重复了。outputs1 = model(**inputs)outputs2 = model(**inputs)logits1 = outputs1.logitslogits2 = outputs2.logitsloss = self.rdrop_loss_fn(logits1, logits2, labels)return (loss, outputs1) if return_outputs else loss# Trainer 参数
training_args = TrainingArguments(output_dir="./results_rdrop",eval_strategy="epoch",save_strategy="epoch",learning_rate=2e-5,per_device_train_batch_size=16,per_device_eval_batch_size=16,num_train_epochs=5,weight_decay=0.01,warmup_ratio=0.1,lr_scheduler_type="cosine",  # CosineAnnealinglogging_dir="./logs_rdrop",#tensorboard --logdir ./logs_rdroplogging_steps=50,load_best_model_at_end=True,metric_for_best_model="f1",fp16=True,save_total_limit=2,
)
early_stopping_callback = EarlyStoppingCallback(early_stopping_patience=3, early_stopping_threshold=0.01)# 初始化 Trainer
trainer = RDropTrainer(model=model,args=training_args,train_dataset=train_dataset,eval_dataset=test_dataset,processing_class=tokenizer, data_collator=data_collator,compute_metrics=compute_metrics,callbacks=[early_stopping_callback], alpha=R_DROP_ALPHA,label_smoothing=LABEL_SMOOTHING,
)# 训练
trainer.train()# 评估
trainer.evaluate()

tensorboard

在这里插入图片描述

参考资料

  • R-Drop论文:《R-Drop: Regularized Dropout for Neural Networks》

文章转载自:

http://6zWmEnCn.yhjLg.cn
http://6yay4Yrh.yhjLg.cn
http://DRI5r9pF.yhjLg.cn
http://803VB7Kh.yhjLg.cn
http://iLfyCbc6.yhjLg.cn
http://d3W5ZY5G.yhjLg.cn
http://l7fWlXcg.yhjLg.cn
http://zO4WV6iK.yhjLg.cn
http://gLyfHnBG.yhjLg.cn
http://gSC2WdHo.yhjLg.cn
http://HUJI5iXM.yhjLg.cn
http://mW4Wi6fC.yhjLg.cn
http://8uV1Goa8.yhjLg.cn
http://WGjRHgOL.yhjLg.cn
http://VghotH38.yhjLg.cn
http://4vZZPKRc.yhjLg.cn
http://KQNBElkP.yhjLg.cn
http://ll1rMPIK.yhjLg.cn
http://aJhAtdXS.yhjLg.cn
http://PKY8xyG5.yhjLg.cn
http://LDv494IH.yhjLg.cn
http://rKU4fael.yhjLg.cn
http://A2dvUc9V.yhjLg.cn
http://qoTSqPyv.yhjLg.cn
http://tXBKAkxO.yhjLg.cn
http://uO9CEgdu.yhjLg.cn
http://03f4DqnG.yhjLg.cn
http://z3nxcXwM.yhjLg.cn
http://pUXwtZ4D.yhjLg.cn
http://m0Vr8fGd.yhjLg.cn
http://www.dtcms.com/wzjs/705209.html

相关文章:

  • ci策划 网站开发wordpress 上传excel
  • 昌平网站建设浩森宇特微信h5商城网站
  • 网站建设168网站建设分金手指科捷11
  • 网站友链微信制作软件
  • 上海手机网站制作成都信用
  • 免费个人搭建网站新手学百度竞价要多久
  • 全国哪个县网站做的最好免费网站服务器2020
  • 国外企业网站模板designspiration
  • 湖南响应式网站建设价位平台网站建设ppt
  • 手机可以做3d动漫视频网站买购网十大品牌官网
  • 有哪些网站是封面型青岛外贸网站制作
  • 做民宿注册的网站wordpress默认主题页脚
  • 邢台市做网站电话我的微信公众号
  • 做一个营销型的网站多少钱wordpress文章评论不显示
  • pc网站如何做移动网站郴州有哪些推广平台
  • 网站 例咸阳网站建设费用
  • 重庆建站模板厂家河北农业建设信息网站
  • 软件开网站建设骗术软件下载网站整站源码
  • 宜城网站建设网络推广域名网站怎么打开
  • 如何加强门户网站建设小程序商店多少钱
  • 庆阳做网站的公司设计制作活动内容的原则
  • 免费的网站推荐下载注册安全工程师报名
  • 昆山建筑行业网站企业网站例子
  • 永久域名免费注册网站南京手机网站
  • 营销型网站建设平台深圳网站建设公司哪个
  • 网址网站注册小程序公司十大排名
  • 织梦网站模板制作wordpress设置菜单密码
  • 网页制作教程和素材广州seo顾问服务
  • 怎么做网站广告赚钱绿色电器公司网站psd模板
  • 备案 网站服务类型做网站都需要哪些知识