课程链接: 清华大学驭风计划
代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com)
驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算机语言(刘知远教授) 以及数据结构与算法(邓俊辉教授)。本人是综合成绩第一名,除了数据结构与算法其他单科均为第一名。`代码和报告均为本人自己实现,由于篇幅限制,只展示任务布置以及关键代码,如果需要报告或者代码可以私聊博主
机器学习部分授课老师为胡晓林教授,主要主要通过介绍回归模型,多层感知机,CNN,优化器,图像分割,RNN & LSTM 以及生成式模型入门深度学习
有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~
任务介绍
1.简介
本次案例将使用深度学习技术来完成脑部MRI(磁共振)图像分割任务,即对于处理好的一张MRI图像,通过神经网络分割出其中病变的区域。本次案例使用的数据集来自Kaggle [ 1] ,共包含110位病人的MRI数据,每位病人对应多张通道数为3的.tif格式图像,其对应的分割结果为单通道黑白图像(白色为病变区域),示例如下。
第一行: MRI图像;第二行: 对应的分割标签
更详细的背景介绍请参考文献[2].
2.参考程序
本次案例提供了完整、可供运行的参考程序,来源于Kaggle ^[3]^ 和GitHub ^[4]^ ,建议在参考程序的基础上进行修改来完成本案例。各个程序简介如下:
ltrain.ipynb用来完成模型训练
linference.ipynb用来对训练后的模型进行推理
lunet.py定义了U-Net网络结构,参考资料[5]
lloss.py定义了损失函数(Dice Loss),参考资料[6]
ldataset.py用来定义和读取数据集
ltransform.py用来预处理数据
lutils.py定义了若干辅助函数
llogger.py用来记录训练过程(使用TensorBoard [7] 功能),包括损失函数曲线等
参考程序对运行环境的要求如下,请自行调整环境至适配,否则无法运行:
lnumpy==1.23.5
ltensorflow== 2.2.0
lscikit-learn==0.20.3
lscikit-image==0.14.2
limageio==2.5.0
lmedpy==0.4.0 (需自行安装)
lPillow==6.0.0
lscipy== 1.4.1 (注意版本)
lpandas==0.24.2
ltqdm
其它细节以及示例运行结果可直接参考Kaggle ^[3]^ 和GitHub ^[4]^ 。
3.要求和建议
在参考程序的基础上,使用深度学习技术,尝试提升该模型在脑部MRI图像上的分割效果,以程序最终输出的validation mean DSC值作为评价标准(参考程序约为90%)。可从网络结构(替换U-Net)、损失函数(替换Dice Loss)、训练过程(如优化器)等角度尝试改进,还可参考通用图像分割的一些技巧 ^[^ ^8]^ 。
4.注意事项
l提交所有代码和一份案例报告;
l案例报告应详细介绍所有改进尝试及对应的结果(包括DSC值和若干分割结果示例),无论是否成功提升模型效果,并对结果作出分析;
l禁止任何形式的抄袭,借鉴开源程序务必加以说明。
报告
核心代码
修改ResNet 50
结果