0 写在前面
又过了一个gap week,总算想清楚了之前遇到的一些问题,现在需要把之前画的大饼们一个一个消化掉。跳出来就会知道,总有一些something is wrong的人喜欢散播点焦虑,你要做的不是惩戒他们,而是赶紧远离,世间事物总是平衡的,得到多少就会失去多少,同样失去多少就会得到多少。
分割线分割住焦虑。
事情的起因是由于中期了,需要搜集点专业资料用来画饼吹牛,然后再就是需要奶一波师弟,我希望我的师弟们也可以成为最好的师弟。因此,就有这篇,半教程半纪实的手册。(前段时间没更新的原因是太焦虑了调整自己用了很久,以及确实没有啥好的idea主题和素材,如果大家想有什么想知道的,可以私信告诉我)
我的一生就是要穷尽无限可能。
1 一个新思路
之前从魔法的角度说明了应该如何写一篇小论文/找创新点,都是一回事。现在用一个新角度和实例来说明该怎么做。
之前看的机器学习八股,有个很重要的知识点——机器学习的步骤。
- 收集数据
- 准备数据
- 选择模型
- 训练
- 评估
- 超参数调整
- 预测
那么我们这次试试使用机器学习完整的流程来解释应该做什么。
1.1 收集数据
收集数据:就是确定你的研究对象/研究目标是什么,通俗来说就是毕业论文题目中的物和数据。深度学习依赖大量的数据,所以需要进行数据集的搜集。
常见的COCO,VOC数据集,特定的在网上找一下或者海鲜市场。(感兴趣我做一个数据集整理)以我个人为例:我是扒的比赛数据集,另外和同学也可以共享。
【特此解释一下,本人目前在手册中展示的ppt或者数据集均为个人资源以及课题组资料,目前无法开源。NEU师弟师妹可以凭学生证私信,无偿分享。不支持白嫖党,格局开了有没完全开。感谢理解。】
传统水下目标检测数据集为:扇贝、海星、海胆、海参。
来源比赛:全国水下机器人大赛湛江赛:比赛链接
每年扩充数据集的内容变化不大,可参照2021年湛江赛为标准版本。
数据集内容:
train:8200
test:1200
样图:
1.2 准备数据
准备数据的意义:数据的处理和准备也是做实验的一个必要前提,处理得当的数据,也会促进实验效果。
处理数据要从以下几点考虑:
- 如果要引用同行的数据实验:首先检验以下数据集是否一致,其次检验处理方法是否一致
- 数据集是否需要重新标注
- 是否数据集需要自己制作
- 数据集的大小对检测结果的影响
- 数据集预处理
- 数据集中是否有影响检测效果的因素:即是否需要进行数据清洗
1.3 选择模型
深度学习模型有很多种,那么如何选择模型呢?
- 首先选择最新的:新就是查看当年最新的论文/会议和项目,开源代码优先,缺点是对工程能力不强的人来说,比较难调试以及优化
- 其次选择经典的:经典永流传,一个经典的框架是经过时代的验证,经典的框架有大厂进行维护,所以结构是比较完整的,也更模块化,比较好优化
- 最后是根据你研究的问题来选择模型:比如做提升精度,尽量选择一些baseline精度较高,精益求精;解决的是工程问题,尽量选择比较轻的模型
1.4 训练
训练模型其实就是找到路径,将数据进行喂进去,再调整超参数。超参数的设置一般先按开源的框架给定描述来,其次是查阅对比文献,按对比文献的参数进行调整,实现控制变量的原则。
1.5 评估
一般来说,选择大厂背书过的模型是有集成的评价指标,如果需要增添其他的评价指标,需要自己进行写入。常见的目标检测指标一般为:
- IOU
- Precision
- Recall
- AP
- mAP
1.6 超参数调整
这步有需要可以进行一定的实验,因为在某些文章中会根据炼丹过程进行判定,但是我还没有使用过这个,可以在后续的学习中了解一下再回来补上。
1.7 预测
在目标检测中,这个步骤叫做推理,就是检验你训练过的模型,是否能够在未打标的数据集上进行推理预测,检验结果。推理的结果可作为可视化展示的图片,上面标清楚了结果预测的数值,作为一个很好的判断。
2 有效复盘
其实构思小论文时,任何一步都会成为突破口,包括从评价指标点的切入,从提升推理时间的角度考虑。 都可以作为改进的创新点,然后检索出一个小的突破口,在进行深入的研究,就可以得到进展。
In a word嘛,就是阅读文章+做实验,一定可以有进展的,大家加油哦!