BERT与CNN结合实现糖尿病相关医学问题多分类模型

完整源码项目包获取→点击文章末尾名片!

使用HuggingFace开发的Transformers库,使用BERT模型实现中文文本分类(二分类或多分类)

首先直接利用transformer.models.bert.BertForSequenceClassification()实现文本分类

然后手动实现BertModel + FC 实现上边函数。其中可以方便的更改参数和结构

然后实验了论文中将bert最后四层进行concat再maxpooling的方法,

最后实现了bert + CNN实现文本分类

模型使用的是哈工大chinese-bert-wwm,可以完全兼容BERT

下载:

git clone https://huggingface.co/hfl/chinese-bert-wwm

结果

除了第一个实验dropout_bert是0.1,其余是0.2. 剩下参数都一样。

训练3个epoch

模型

train/val acc

val acc

test acc

链接

会用内建BertForSequenceClassification

0.982

0.950

0.950

链接

自己实现Bert+fc 一层全连接层

0.982

0.948

0.954

链接

将Bert最后四层相concat然后maxpooling

0.977

0.946

0.951

链接

BERT+CNN

0.984

0.947

0.955

链接

  1. 官方的transformer.models.bert.BertForSequenceClassification()就是直接使用BertModel 再接一层全连接层实现的。第二个项目是为了方便自己修改网络结构,进行手动实现。效果差不多,可以自己修改接几层线形结构,但是实验了一层就够了。
  2. 根据参考2的论文,将BERT最后四层的CLS向量concat然后取max pooling可以让bert在分类问题上有更好的效果。在THUNews上测试可以提高0.4%相比bert。已经很大了相比其他方法而言。
  3. 我一直觉得bert后面接CNN和RNN等都不好,毕竟transformer就是改善这两类模型的,再接一层也好不到哪去。如果我理解不到位可以告诉我。我还实验了bert使用前四层的输出进行concat,效果acc也能达到0.80+,层数越深效果感觉真的不明显。bert+cnn/rnn等这个模型在参考3 中两年前就有人做过实验,写出来过,他实验的效果也是不如单纯的BERT。调了调cnn的大小,其实都差不多。

标签定义:

  • 0: Diagnosis(诊断)
  • 1: Treatment(治疗)
  • 2: Common Knowledge(常识)
  • 3: Healthy lifestyle(健康生活方式)
  • 4: Epidemiology(流行病学)
  • 5: Other(其他)

模型的实现包括以下几个部分:

  1. 数据处理与加载:如何加载文本数据并进行必要的预处理。
  2. 模型架构:
  • bert_lr:一个基于BERT的线性分类器模型。
  • bert_cnn:一个基于BERT与卷积神经网络(CNN)结合的模型。
  1. 训练过程:如何设置训练循环、优化器和损失函数。
  2. 评估与预测:模型在验证集和测试集上的评估,以及如何进行推理。
相关推荐
天行健,君子而铎14 天前
自适应分类·高准确率·可视化易用——运营商数据分类分级解决方案
大数据·分类
装不满的克莱因瓶14 天前
了解多标签图像分类方法——从Sigmoid输出到真实世界复杂视觉理解
人工智能·pytorch·python·深度学习·机器学习·分类·数据挖掘
装不满的克莱因瓶15 天前
掌握语义分割经典模型 FCN——从像素分类到端到端分割的奠基之作
人工智能·python·深度学习·算法·机器学习·分类·数据挖掘
DXM052115 天前
第14期|高阶分割模型:Transformer/SegFormer遥感应用
人工智能·python·神经网络·算法·计算机视觉·cnn·ageo
雷工笔记15 天前
MES系列51-人防门行业 MES 质检分类体系
人工智能·分类·数据挖掘
装不满的克莱因瓶15 天前
掌握3D CNN模型结构——从时空特征建模到视频理解与医学影像核心架构
人工智能·pytorch·python·深度学习·神经网络·3d·cnn
2401_8856651916 天前
从零搭建CNN到迁移学习:以食物分类为例深入理解PyTorch图像分类实战
人工智能·pytorch·深度学习·分类·cnn·迁移学习
百胜软件@百胜软件16 天前
货品“精”营:ABC-XYZ分类如何驱动鞋服全渠道库存效率革命?
人工智能·分类·数据挖掘·零售数字化·数智中台·珠宝行业
zcg194216 天前
分类中的样本不平衡问题——Asymmetric Loss
人工智能·分类·数据挖掘
daly52016 天前
人工智能专业有哪些?2026高考报考指南(专业分类 + 课程 + 就业全解析)
人工智能·分类·高考