网络搭建

正如我们前面所说的,原文中所使用的网络并没有什么特别新奇之处,与经典的ResNet-34架构很类似。不过这里的网络使用了更大的,长度为16的一维卷积核,而原ResNet用于二维图像分类,则倾向于使用尺寸为3×3的小卷积核。个人认为这种尺寸上的不同主要还是源于ECG信号和图像数据的本质不同。一般直接输入网络的图像分辨率较低,哪怕在感受野最小时,3×3的区域也很有可能包含了具有意义的变化;而对于ECG这样的低频,低采样率信号来说,任何位置3个采样点的区域很难构成一个有特定意义的波形变化,且极易受噪声干扰,这对特征学习带来了很大的消极影响,严重时甚至可能导致学习无效。使用大的卷积核可以有效缓解这一问题。当然使用小的卷积核,但构建更深的网络也有利于感受野扩大,但在我的平时实践中发现这么做的效果并不好,可能是因为这种方式对于ECG信号来说不够直接,小卷积核过于关注高频噪声带来的扰动,而忽略整体上的变化。在代码上我对原版本进行了一些修改,使得其更适合于当下的应用,网络配置参数存放于Config.py,网络本身结构的搭建存放于net.py(基于keras)。详细请参照github。

来自Hannun A Y, Rajpurkar P, Haghpanahi M, et al. Cardiologist-level arrhythmia detection and classification in ambulatory electrocardiograms using a deep neural network[J]. Nature medicine, 2019, 25(1): 65.

还有一个问题就是关于网络的参数量。按照原文的配置,整个网络有1000多万的参数,若有足够的数据喂给网络,而且有足够的算力,这当然没什么问题。只是,由于我们手里并没有这么多数据,强行上大网络容易过拟合,当然还有就是我等贫穷之人没那么强的GPU加速(随便买GPU搭服务器玩的土豪请自动忽略)……这里我将其裁剪为了类似ResNet-18的架构,卷积核尺寸扩大一倍达到32,特征图数目由12起跳,将参数量缩减到了100多万;另外加入了更强的正则化,dropout丢弃概率由0.2改为0.5,每一层权重都加上l2正则。优化器也做了改动,由原来的Adam改变为SGD + Momentum,学习率初始值0.1,并在后续采用staircase式变化。更详细的参数可见Config.py和net.py。

另外一点需要注意的是,原文中的任务其实并非我们所想象的那种传统的分类,而是对片段每256个点就会输出一个结果,不过这个就需要数据有更为详细的,各类信号持续时间的具体标注。很可惜这个我们也没有,这里只能将其改变为传统的分类形式。

网络搭建好,数据准备好后,运行train.py就可以大炼丹了,运行test.py测试性能。

Github:https://github.com/Aiwiscal/MIT_Scheme

喜欢请点赞和github给star哦~~~~

Andrew Y. Ng式ResNet在MIT-BIH上的Inter-Patient分类实现(3)相关推荐

  1. P. Hamilton / Quantitative Investigation of QRS Detection Rules Using the MIT/BIH Arrhythmia Databa

    Quantitative Investigation of QRS Detection Rules Using the MIT/BIH Arrhythmia Database Hamilton, Pa ...

  2. 如何用Python 求函数 y = sinx 在区间[0, pi/2]上的弧长

    今天在高数课上老师讲到求光滑曲线弧长问题,老师自己想了一个例子: 求函数 y = sinx 在区间[0, pi/2]上的弧长 但是经过微分和积分发现没法求出确定值,百度后发现不可积,是椭圆积分,只能求 ...

  3. matlab读取mit bih,将MIT-BIH心律失常ECG数据库加载到MATLAB上

    您可以使用physionet ATM获取更容易使用的.mat文件. 在输入部分选择所需的引线,长度,数据库和样本. 在工具箱中选择导出为.mat: 然后下载'.mat'文件, 为了在MATLAB中打开 ...

  4. Power Query (Power BI)傻瓜式合并资产负债表,史上最好用

    做财务会计以及数据分析师的伙伴有福了,本篇是针对小白一步到位式合并资产负债表,没有几十步拖拽,省掉中间过程,直接一句话粘贴就能出结果,省时省力省心,快快收藏吧! 完成以上工作,你需要安装Office ...

  5. 6步傻瓜式点击在树莓派上安好Win11

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 给树莓派安装Windows 11系统时麻烦吗? 先要去官网下载arm版系统,然后进行镜像烧录:烧好后,还要在树莓派上进行一些配置? 现在,有 ...

  6. android分辨率 x y,Android - 确定不同分辨率的位图上的特定位置(X,Y坐标)?

    我正在尝试创建的应用程序是棋盘游戏.它将有一个位图作为棋盘和棋子,移动到棋盘上的不同位置.该板的一般设计是方形的,具有一定数量的行和列,并具有用于外观的边框.想象一下国际象棋棋盘或拼字游戏板.Andr ...

  7. 与WebXR共同创建者Diego Marcos一起探讨沉浸式Web的未来(上)

    点击上方"LiveVideoStack"关注我们 翻译 | Alex 技术审校 | 刘连响 本文来自UploadVR,作者为David Heaney WebXR 影音探索 #005 ...

  8. 【Spring 5】响应式Web框架实战(上)

    前情概要:  - [Spring 5]响应式Web框架前瞻  - 响应式编程总览 1 回顾 通过前两篇的介绍,相信你对响应式编程和Spring 5已经有了一个初步的了解.下面我将以一个简单的Sprin ...

  9. django models索引_sql – 为什么Django显式地在唯一字段上创建索引

    更新:进一步简化实验psql的Q: 对于以下Django模型: class Book(models.Model): name = models.TextField(unique=True) pg_du ...

最新文章

  1. 条款22: 尽量用“传引用”而不用“传值”
  2. python 100例(10)
  3. Netty+SpringBoot+FastDFS+Html5实现聊天App
  4. 三次握手,四次挥手?
  5. cuda学习笔记1 - hello world实战
  6. 获取windows帐户的SID值
  7. 双11肯德基星巴克在饿了么各卖出2亿元
  8. [CF452E]Three strings
  9. 问题三十一:ray tracing中Convex Quadrilateral Inverse Mapping
  10. 初识Memcache之安装与测试
  11. 华三comware跳槽_走进网络操作系统——Comware软件架构浅谈
  12. verilog语法记录(一)
  13. 启蒙||那些人,那些剧||爱情+文学+英语
  14. 正在移除icloud数据久_深度梳理一下iOS照片(相册)的逻辑,和减少iCloud的空间占用的方法...
  15. 信息与计算机科学学校排名,2021中国信息与计算科学专业大学排名 最好的高校排行榜...
  16. 软件工程(2019)结对编程第一次作业
  17. SQL 基础知识扫盲
  18. LM334芯片到底是恒流源还是温度传感器?
  19. 2021年中国轿车行业现状分析,产销量回升,行业逐渐回暖「图」
  20. 手把手教学51单片机第三课 | 复位电路、数码管静态显示

热门文章

  1. Python正则表达式实例详解
  2. java毕业设计城市智能公交系统Mybatis+系统+数据库+调试部署
  3. 设计模式(八)Composite(组合模式)
  4. 【Java基础】属性编辑器PropertyEditor
  5. CAD常见问题解答!恭喜你,又学会了几个重要的CAD操作!
  6. caesar解密_C和C ++中的Caesar密码[加密和解密]
  7. Discuz论坛中切换极验验证码插件语言
  8. 携职教育:注会和中级哪个在体制内有用?
  9. python数据分析项目有趣 新零售-无人智能售货机商务数据分析
  10. Shiro集成kisso,搭建单点登录系统