联邦学习论文——关于我从0到第一篇论文初稿交稿的记录

书接上回,很久没记录了,因为事情很多很忙,来不及去记录,有时间时候却有其他事情占用我的时间,就很久没有记录了,但是还是在每日记录里在写,这个记录看完,应该能给和我一样当时迷茫的你提供一个创新思路。

今天是20240909,我第一篇论文初稿交给老师过目了,还在等候老师意见,这几天有点迷茫,好像失去了主心骨一样,不知道该做些什么,想按照计划继续把没学完的树模型等机器学习模型学学,再学学强化学习,再复习一下我的深度学习那本书,但是担心后面还要修改我的论文,时间不连贯了,我有很强的强迫症,也能看出来,做事情不做完整就会觉得很难受。

所以今天得空,记录一下自己的第一篇论文的完整流程,供自己往后回忆,也希望对刷到的各位像我一样的科研小白有所帮助

1.背景

我个人是在某西北211计算机学院读研,我的方向是联邦学习(FL),可能很多人没听过吧,我也是,我报的大导师,把我分给了小导师带,可选方向有CV和FL,最后因为老师在做FL,我也就跟老师的方向了,我没有师兄师姐,导师在我开始进组后产假四个月,相当于我的一切都是老师给我的方向和根据我反馈的情况给我建议,其他全部靠自己了。所以如果各位和我一样导师忙碌只能自己占大头的话,我的建议还是有点帮助的。

2.准备阶段

2.1 论文准备之前

这个阶段我只知道联邦学习是类似于机器学习里的分布式学习,其他啥都不知道,什么横向联邦学习,纵向联邦学习什么我都不知道,这段时间我就是很迷茫,而且我只会个python,甚至进阶的《流畅的python》我都没看,而身边的人机器学习方法,深度学习模型都会了很多了,无可否认,我在本科确实没有人家学的多,于是我索性直接也开始学这些,我一开始是买了《动手学深度学习》这本书,可想而知,没有机器学习的底子,我学的多吃力,我就一行代码一行代码的注释,一个模型一个模型的去记录,思维导图什么的全部搞,一本书我看了好几个月,终于看完了cnn,rnn最后到了Transformer,我印象很深刻 ,注意力机制的qkv当时把我折磨坏了,直接看不下去了。也是一次偶然的机会,去泉哥宿舍串门,看到他有一本《动手学机器学习》,鉴于之前学深度学习时候的感觉还有面试时候老师问我的SVM,我觉得我应该先学这个,于是我就买了这本书,狠狠的学,也就是这本书,让我清晰地知道了机器学习中的大概流程,数据准备,数据处理,模型构建,生成模型实例,训练,得到训练记录,可视化。我还自己准备了一些数据集也做了做自己的一些想法的实验,也第一次让我感受到了这个东西的魅力和吸引力。当我学到11章SVM结束后,我得知,我们班一位同学已经发了一篇二区会议了。这时候我有点着急了。

2.2 论文准备阶段

这时候我就联系老师,看看如何去动手写一篇论文,因为我自己想,我确实可以打基础,机器学习深度学习好好去学,理解每一个方法每一个模型的原理,但是在现在的研究生培养评价体系下,这样是效率最低风险最大的,当然你可以打好基础,真的做出来为学术有用的改进,但是万一做不出来呢?现在的评价体系下你就是没成果的三流研究生,纵使你熟悉所有深度学习机器学习模型。我本科好哥们的话:学这些对你找工作有用,但对你毕业没太大作用。

老师建议我先去了解联邦学习大概,从综述看起,给我了好多英文综述,我确实那几天再看,也了解了什么是横向联邦学习,什么是纵向联邦学习,什么是加密,有哪些方法什么的,但是所知还是甚少。而且这个东西2016年首次提出,网上资源少之又少,一切只能自己摸索。于是我买了《联邦学习》和《联邦学习实战》这两本书,杨强教授的。于是我又开始了废寝忘食的啃这两本书,一周我啃完了所有,联邦学习算法,结构,常用加密算法,安全隐患,攻击类型什么的我也都有个大概的了解了,但是我论文方向还是不是很清楚,我是做算法吗?我就在想,我也把我的想法和老师沟通了,因为这些里面,只有算法看起来能看懂,加密这些我搭眼看上去就头大,我数学不是很好,所以在了解了很多FedAvg,FedProxmFedMa,FedNova等算法后,依然不知道怎么去改算法。尝试无果后,老师就建议我,联邦学习是个框架,不管你是CV,语音,NLP,你都可以和它结合。是的,这句话醍醐灌顶了,说句简单的:你舍友做了个ABCNet,发了视觉,好,你直接拿过来加入联邦学习的东西,这就可以算你的创新,但是前些年这么干可以,现在不行了,就是举例子。所以我做了初步的规划:先去学习市面上的联邦学习的实验框架,再去学习cv,再去改进cv,再结合联邦学习,成功就发论文!我当时为这个计划定时两周必须完成。

事实证明,我太心急了。我这个期间听到最多的话就是:论文不是着急的。是的,我学习了百度的PaddleFL,微众的FATE,轻量化的Pysft,还有FLWR,还有fedvision这些框架,讲真的,这个期间我也改掉了windows依赖症,我的Linux水平也突飞猛进了,爱上了指令化的操作了。但是这些当时学完后,我还是只能在人家的官方文档给的程序上去改,无法做到把人家的简单例子改成复杂的实验例子。尽管我两周废寝忘食去学,但是两周我也只是学完了一个FATE。所以这些学完我大概用了小一个月,只有FATE和FLWR真的复现出了正常工作量的实验,其他的全部以失败告终。其中百度那个我感觉就是torch套壳,直接import torch as paddle一样。

由于后期经常用服务器跑代码,而FATE想看图就要有浏览器权限,我没有,所以我最后选择FLWR作为我的实验框架。

接下来就是我的cv任务了,我这里没看很多论文,我觉得没必要看那么多论文,论文是给我们找创新点的,并不是看一百篇就百分百能发,现在我的身边还有导师要求同学看中文核心,每周汇报。不是我说,看就算了还看中文核心,这不坑人家同学么。

说实话,我的这部分的创新思路很大一部分来自B站水导。具体大家可以搜,很多。他们的思路一样,纵使你有鸿鹄之志,但是毕业是你所有鸿鹄之志的先决条件。如果你毕业条件达不到,你会再多,也没用。所以,我才用了他们最高效的论文思路。

在这里我想说,我们应该给自己定位准确了,比如我,我没有发顶会顶刊的本事和条件,那就别做这个梦,水一篇二区保毕业,把自己能力提升,找工作能找个好点的工作就行。如果要读博,那我这些方法就不适用了,好好打基础,发个好的才是正路。我是很爱学习新东西,但是读博我还没准备好,我这一路知识大厦千疮百孔,我不太确定我能有这个本事,但是也说不准,我毅力强,也是我的优点,在此不展开继续,还是回归主题。

所以我选择了很多网络,从一篇二区会议里发现了三个网络在联邦学习里的比较。ConVNext,MLPMixer还有个什么,三个网络的比较。我想复现,但是数据集120G,我实验室服务器都跑不下来,我就没复现,采取了他的思路,我也就另选几个网络也比较一下也能发他这个。鬼精鬼精的,于是我学习了Transformer原理,ViT等当下火热的transformer分支们,也就是这个时候,视觉方面的模型基础我打的还算可以,也知道各个GitHub项目里各个文件夹模块都是干啥的,项目结构我也知道什么是什么了。为我后续找模块做实验也打了基础。

根据水导的意见,backbone+A+B的思想,我找了很多模块,CBAM,EMA,等老的新的都有,逐个缝合,但似乎效果不好,究其原因:一味瞎缝合大概率事倍功半,本来人家就是改进这个缺陷的,你倒好,缝回来了。所以,应该深究backbone的固有缺陷,你才能去针对缺陷选择模块并改进。

我最后选择MobileNetV3-small作为我的backbone,深究其缺陷,选择EMA模块作为替换。在纯视觉中,我这个替换可能不够看,但是在联邦学习结合中,这可以了,关键在于你的背景故事怎么写。所以我的故事与小算力嵌入式设备结合了。同时还是和泉哥的聊天,我也发现如何改进MobileNetV3-small在小分辨率图像上效果不佳的问题,但是论文里没写,如果老师修改意见要我写上,我还是写上吧。

接下来就是结合联邦学习,这个就不赘述了,研究官方文档,研究官方代码,这给我啃得,这个FLWR真的太狗了,我把它1.9.0版本学了一个月,好么,他更新1.10.0后,直接大改,我又从头学习了一遍,它的方法啥的函数封装全变了,折磨。好在后面结合进去了我的实验,也有预期的成果。

至此我的论文也就可以开始写了。

3.结尾

论文怎么写我们也不赘述,论文主要就是故事+公式+图+表,英文要流畅,到这里其实比做实验还难我觉得。同一个论文,写的好了发一区,写的不好就是三区。不过这不是我们讨论的重点

写这个其实就是想记录一下自己这一路碰的壁,走的弯路,给我后面的师弟师妹看,也给各位刷到的有缘人,如果你也是正在迷茫或者面对导师放养或者方向不是很熟悉这些问题,你可以看看我的思路和方法,但是你要有高于我的执行力和毅力和决心,缺一不可,如果我没有这些,可能深度学习那一步我就摆烂了。

谨以此文记录我的第一篇论文初稿完成,预祝修改顺利,预祝发表顺利。祝刷到的各位和我一起研途顺利,顺利毕业,找到心仪工作。

  • 31
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值