当前位置:网站首页>疫情数据分析平台工作报告【42】CodeNet
疫情数据分析平台工作报告【42】CodeNet
2022-06-12 04:09:00 【m0_55675803】
还是看看远处的CodeNet吧。
线性回归
连续趋势预测
逻辑回归
离散数据分类
决策树
连续的else-if操作
随机森林
堆叠决策树
朴素贝叶斯
贝叶斯公式
假设所有特征独立
K邻近
利用最近的若干邻居数据点预测
残差结构
普通网络,随着深度的上升,性能将会退化
解决梯度消失和梯度爆炸问题
十倍交叉验证
将所有数据分为十份,循环使用每一份作为验证集,其他九份作为训练集
过程中保持超参数一致
衡量平均loss
准确率Accuracy
预测正确的样本/总样本
在数据极端不均衡的情况下效果不佳
精确率Precision
阳性精确率=真阳性/(真阳性+假阳性)
召回率Recall
阳性召回率=真阳性/(真阳性+假阴性)
阳性召回率即真阳性率
F1值
精确率P和召回率R的加权平均
F1=2PR/(P+R)
Shape的变化
第一个数据 -1/None batchSize 没有指定之前是不知道的
第二个数据 长
第三个数据 宽
经过卷积后的尺寸,由原尺寸、卷积核大小、步长决定
经过池化后,尺寸减半,向下取整
第四个数据 通道数 输入时取决于图像的通道数 彩色图像为3 灰度图为1
经过卷积后,通道数变成卷积核的个数
经过Flatten层后,除batchSize外的维度转为一维,结果等于转化的维度之积
Flatten层
将数据一维化
用于连接卷积层和全连接层
不影响batchSize
大于五年为阳性P
小于五年为阴性N
单独分别使用6个预训练网络
分别使用6个预训练网络加上SVM
5次10倍交叉验证 p值小于0.00001
具体怎么划分的也没说
阴性样本45
阳性样本75
NasNet-Large + SVM获得了最佳结果
准确率 ACC 85%
真阳性率SEN 90%
真阴性率 SPE 75%
精确率 PRE 88%
F1 0.9
独立NasNet-Large
准确率 ACC 72%
真阳性率SEN 77%
真阴性率 SPE 63%
精确率 PRE 87%
F1 0.8
Xception + SVM 第二高结果
准确率 ACC 75%
真阳性率SEN 74%
真阴性率 SPE 75%
精确率 PRE 87%
F1 0.78
Xception+SVM 和 ResNet-18 + SVM 的SEN和SPE相近
其他分类器的SPE都远低于SEN
这是由于阴性样本(45)少于阳性样本(75)
数据增强
尝试了平移、旋转、镜面翻转
效果没有提升
也有文献报道了增强医学图像数据的无效性
在NasNet - Large 的 global average pooling2d 2(编号1240)上
捕获了更精细的图像特征
2d 2 后接的是relu函数,因此只使用了正激活
使用SVM将提取的特征数据点二分,比直接使用预训练网络性能更好
NasNet-Large
现在的神经网络大多采用堆叠block的形式,而堆叠的参数正是一个序列
使用RNN随机采样一个网络A,训练这个网络得到它的精度R,用精度R更新RNN控制器的参数
但是难以训练
因此在小数据集上训练一个单元,再堆叠单元形成nas-net
SVM支持向量机
分类器间隔最大化
分离超平面
把样本分开的最优超平面了
支撑超平面
分离超平面平移到极限位置之后的两条直线
分离间隔
支撑超平面之间的距离
支持向量
两个极限位置的样本
分类
线性可分
硬间隔
近似线性
数据并非线性可分
软间隔,允许少量数据不满足约束
惩罚参数C
非线性
将原始数据映射到更高维空间,再进行线性切分
核函数
多项式核函数
高斯核函数
样本数远小于特征数时,使用线性核
理论上高斯核不会比线性核差,但花费更多时间调参
只有支持向量对决定最佳超平面起作用
凸优化,全局最优
只适用于二分类
CoroNet
Coronet: a deep neural network for detection and diagnosis of COVID-19 from chest X-ray ages.
数据集包含四类:新冠320,正常normal 445,细菌性肺炎449,病毒性肺炎424
其中有些质量不佳
最终选出了
不定尺寸,1000-2000 resize为224*224
其实就是在Xception后面直接加分类器
Luz et al(EfficientNet-C19)
Towards an efficient deep learning model for covid-19 patterns detection in x-ray images
EfficientNetB3+层级分类
层级分类,先分是否患病,再分肺炎类型
但是数据比较均衡时,还是扁平分类更好
实际上最好结果就是用的扁平分类,他创新了个寂寞
nCOVnet
Application of deep learning for fast detection of covid-19 in x-rays using ncovnet
第一层输入层
接下来18层是VGG16的一部分
再加分类器
代码未开源
Attention-VGG16
代码未开源
Attention-based VGG-16 model for COVID-19 chest X-ray image classification
设为A
Coronet: a deep neuralnetwork for detection and diagnosis of COVID-19 from chest X-ray ages.
设为B
Automated detection of COVID-19 cases using deep neural networks with X -ray images.
设为C
A
数据集1 包含三类:No finding无发现,新冠,普通肺炎 每个类别至少125张图片
数据集2 包含四类:新冠320,正常normal 445,细菌性肺炎449,病毒性肺炎424
不定尺寸,1000-2000
数据集3 将数据集1的无发现类别与数据集2组合在一起(5
数据集2来自于B
数据集1来自于C
C 第一个kaggle数据集包括
219新冠
1345病毒性肺炎
1341正常Normal
此数据集已经更新为
3616新冠
1345病毒性肺炎
10192正常
6012肺部浑浊(非新冠感染)
299*299
第二个COVIDGR数据集包括852张图片
426新冠
426非新冠
数据集A
包含四类:新冠320,正常normal 445,细菌性肺炎449,病毒性肺炎424
不定尺寸,1000-2000
手动筛一下 删了20张 把非正面的和CT图去掉
数据集B
3616新冠
1345病毒性肺炎
10192正常
6012肺部浑浊(非新冠感染)
299*299
又有一篇论文使用到了数据集B
Transfer Learning for the Detection and Diagnosis of Types of Pneumonia including Pneumonia Induced by COVID-19 from Chest X-ray Images
相当于直接用的ResNet50 94% acc
工作
独立的数据增强
主干用一个现成的模型改一下(vgg16 resnet50)
*对比学习
注意力
SimCLRv2
对ResNet进行无监督预训练
三个步骤
使用无标签数据的预训练
使用有监督的微调(1-10)
使用无标签的蒸馏
在半监督学习中,更大的模型可以从更少的标签中得到性能提升
非线性变换(投影头)的重要性
SimCLR对一个随机给定的小批量图像,随机裁剪、调色、高斯模糊增强两次,送入resnet产生两个y,再用投影头变换,产生两个z,计算损失
SimCLRv2的改进
使用更深的模型,从resnet50扩展到resnet152
使用更深的投影头(3层而非2层)
记忆网络(使性能提升了1%)
微调
一代仅在预训练时使用投影头,而在微调时丢弃投影头,仅使用resnet
将投影头的一部分保留
从投影头的中间微调,而非投影头的输入层
蒸馏(没源码)
损失函数
从投影头的第一层开始微调最好
全套代码都是tensorflow写的,tf1写的弄下来报错,tf2写的弄下来了,但是tf2模型.h5没找到办法转成pytorch格式
直接用在Imagenet上预训练的最大的模型,弄下来,然后用标签损失+无标签损失蒸馏给小模型
选择性内核SK 说人话就是自适应的卷积核大小、步长
感觉不如……带标签监督学习
用手写Alexnet(非预训练)在动物数据集上跑了一下,一开始的train/test acc都很低(10%),跑了几代稳步上涨;
又换成预训练的resnet50,第一代acc 70%,跑了几代达到90%,和kaggle上提供的参考数据一致。
说明我们的平台代码肯定没问题,这个covid数据就是难度非常低。
r50_1x_sk1
经过无标签数据预训练的小模型
r152_3x_sk1
经过无标签数据预训练的大模型
先让上述两个模型new新实例,跑五折,明确student和teacher的基线;
然后将数据集划分为10%测试集,90%训练集;
用训练集的100%微调大模型,保存最好结果为老师;
用其他来源的大量无标注数据蒸馏小模型;
小模型在训练集上训练,在测试集上测试;
r50跑了4折 一眼就超不过90% 感觉我的lr设置不太对 把lr改一下 重新跑个一折看看
总感觉我这个退火函数写错了
寄了 平均能有91%就不错了 之后再加个L2正则化再试试 感觉过拟合了
先搞老师吧 看下老师能不能跑得动 跑不动也没办法了 换更小的模型吧
老师跑不动 先换成152 1倍的吧
加了正则化
似乎有戏 但是最后一截刚上去就跑完了
先准备换老师上吧
老师拉长到300代
然后回头再看看学生 这最后5代看样子有戏啊 算了一下平均91%
下次跑学生的时候 在150代的时候把lr从3e-4退到1e-5
老师拉了大胯了 带着正则化也基本上不了90了
加个dropout再试一次吧
加了dropout也上不了90 为啥啊 按理说自己从头训练 只是更花时间 效果应该不比纯预训练差啊
很怪 我直接试试resnet50纯预训练 怒了
总不可能sk1是负优化吧
resnet50纯预训练 90% 寄了
别惦记着无监督预训练了 整点100%微调r1521x
好 100%微调r1521x也基本上寄了
那三个目标网络是没做数据扩增的 难道数据扩增是负优化?
下面试试把数据扩增减轻 不做色彩变动和旋转 只做随机缩放和水平翻转
ResNet152纯预训练 加入cutout、mix up 感觉没啥用
先换512*512
似乎好了一点
效果只能说不是特别明显 平均91%
换用了512*512 + 稍微复杂一点的分类头 略微提升 平均92%
再记一下手动筛过的小数据集 十折 91开
新冠 282
正常 445
病毒性 424
细菌性 449
再用effnet v2 (寄了)
Stacked Hourglass Networks和那个应用Transform的cnn
在未分割的图像上 gamma+chexNet 最高 DenseNet201次之
在分割图像上 gamma+DenseNet201最高
先裸跑一下Densenet201
跑的时候把gamma校正写了 都先把分割扔一边去 用原始数据跑
Gamma校正搞定了
baseLine
Coronet 0.8976(无数据扩增)
论文里没提数据扩增 代码里面有
EfficientNet_C19 0.9187
旋转15度、20%缩放、水平翻转
nCOVnet 0.9044
旋转20度 水平、竖直翻转
chexNet
Densenet201 + gamma 0.9236 0.9273
Densenet201 + gamma +注意力
CBAM_1x 0.9313
CBAM_2x 0.9243
SE_1x 0.9200 0.9270
SE_2x 0.9303
Densenet201 + gamma +对比学习 0.9254
Densenet201 + gamma +对比学习+注意力
0.9364
使用chexnet迁移到covid上的文章
COVID Detection from Chest X-rays with DeepLearning: CheXNet
横向对比
Roc图
PR图
混淆矩阵
热力图
框架图
和传统的特征对比Umap图
边栏推荐
- 【FPGA混沌】基于FPGA的混沌系统verilog实现
- The memory four area model of C language program
- 根据变换矩阵进行图像拼接
- Enterprise Architect v16
- WiFi module scheme of the wireless Internet of things, esp32-s3 chip technology, helps the equipment to be intelligent
- 基于SSH实现健身俱乐部管理系统
- sed命令
- Detailed explanation of software testing process
- How to modify the result name of MySQL query result 1 and result 2
- R language plot visualization: plot visualization grouped violin plot in R with plot
猜你喜欢

Smart Panel wifi Linkage Technology, esp32 wireless chip module, Internet of Things WiFi Communication Application
![[FPGA chaos] implementation of FPGA based chaotic system Verilog](/img/c0/cda4644168264b7531b67ef16e801a.png)
[FPGA chaos] implementation of FPGA based chaotic system Verilog

Notes on relevant knowledge points such as original code / inverse code / complement code, size end, etc

Eight fallacies of distributed computing

Street lighting IOT technology scheme, esp32-s3 chip communication application, intelligent WiFi remote control

SQL safe backup display and zoom font support

Solution to missing in unity script

Brief introduction to 44 official cases of vrtk3.3 (combined with steamvr)

2.28 (defect filling) data type conversion exception handling part multi threading

Absolute positioning three ways to center the box
随机推荐
R language plot visualization: use plot to visualize simple regression model linear regression plots
Sqel easy to use
[Yugong series] March 2022 asp Net core Middleware - cross domain
Emperor Wu of Wei knew that he could not correct it, so he stopped offering his words
sed命令
Detailed explanation of data platform SQL development and function use
La mise en évidence de la recherche par blocs est - elle prise en charge dans les versions ultérieures?
成功解决:WARNING: There was an error checking the latest version of pip.
【C语言】封装接口(加减乘除)
Kotlin starts the process, the difference between launch and async, and starts the process in sequence
Create a new table in the database. There was no problem before. Today
webpack---优化_缓存
电商中台系统架构
根據變換矩陣進行圖像拼接
vim命令大全
Notes on relevant knowledge points such as original code / inverse code / complement code, size end, etc
Construction case of Expressway Precast Beam Yard (with scheme text)
Database selected 60 interview questions
Will subsequent versions support code block search highlighting
Batch automated e-mail: Vika Vige table x Tencent Qianfan scene connector has made new moves, and business communication and event marketing only need 3 steps