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

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. 评估与预测:模型在验证集和测试集上的评估,以及如何进行推理。
http://www.lryc.cn/news/521474.html

相关文章:

  • rabbitmqp安装延迟队列
  • 深入探讨DICOM医学影像中的MPPS服务及其具体实现
  • 集合帖:区间问题
  • C#,入门教程(27)——应用程序(Application)的基础知识
  • 迅翼SwiftWing | ROS 固定翼开源仿真平台正式发布!
  • CSS 样式 box-sizing: border-box; 详细解读
  • FLASK创建下载
  • 漫话架构师|什么是系统架构设计师(开篇)
  • Web Socket
  • JavaSE学习心得(反射篇)
  • 使用FRP进行内网穿透
  • 长安“战疫”网络安全公益赛的一些随想
  • flutter 安卓端打包
  • Cesium中的CustomDataSource 详解
  • [Qt]常用控件介绍-按钮类控件-QPushButton、QRedioButton、QCheckBox、QToolButton控件
  • Windows 蓝牙驱动开发-安装蓝牙设备
  • element表格有横向滚动条时产生错位或者偏移(火狐浏览器)
  • C# 下 SQLite 并发操作与锁库问题的 5 种解决方案
  • 2025封禁指定国家ip-安装xtables-addons记录
  • 卷积神经02-CUDA+Pytorch环境安装
  • 高斯数据库与MySQL数据库的区别
  • 【 PID 算法 】PID 算法基础
  • 【AI】【RAG】如何通过WebUI部署与优化RAG问答系统
  • SpringBoot之OriginTrackedPropertiesLoader类源码学习
  • 51单片机 AT24C02(I2C总线)
  • Shell正则表达式与文本处理三剑客(grep、sed、awk)
  • Docker Desktop 中安装 MySQL 并开启远程访问的详细教程
  • 计算机网络 (39)TCP的运输连接管理
  • 麦田物语学习笔记:构建游戏的时间系统
  • Tauri教程-进阶篇-第二节 命令机制