从零入门深度学习(准备深入研究的)

Author:baiyucraft

BLog: baiyucraft’s Home


!!如果只是想用传统基于CNN的目标检测模型、语义分割模型删减几个模块来发论文的没必要入坑,因为目前来说这种论文已经趋于饱和,不太好发论文毕业。

!!建议打算深入学习模型原理的入坑,然后结合实验室已有的数据或资源来思考相关应用,简而言之理解计算机那边的前沿研究,然后应用在实验室已有资源上

!!学习方式主要基于 《动手学深度学习》 加上 读论文 以及 相关代码阅读复现,要想理解透彻,只能去读代码意思,解决复现bug

一、前置学习

  • 懂得编程的逻辑(不论语言)
  • python的数据类型,运算符,基本语法,pip包管理,类的基础概念(面向对象编程)
  • 下述专业论文指的是发表在一些计算机类刊物会议上的,代表这个领域研究前沿的论文,这些论文可以学习最新的知识
  • 下述应用论文指的是将视觉模型应用到具体领域的论文,有具体的对象以及实验方案,这些论文可以提供灵感以及一些实验方案

二、基础

1.一些概念(补充ing)

  • 深度学习属于机器学习一种,机器学习是实现人工智能的一种方法
  • 深度学习分CV(计算机视觉)和NLP(自然语言处理)
  • 机器学习处理数据的模式是:收集数据,数据预处理,模型训练,验证模型

2.一些网站(更新ing)

  • KaggleGitHub 等这种就不提了
  • arxiv:是世界上最大的预印本网站,计算机专业论文基本在这上面都有
  • Papers With Code:最好用的机器学习论文收录网站,能查到最新计算机专业领域的相关论文,以及一些视觉领域比较出名的排行榜,同时在排行榜上的一些SOTA模型。具体可以自己发掘
  • Stork:SCI依据关键词论文推送,但是也有一些局限,基本也就是了解一些应用论文,frontiers in plant science 这个期刊的论文还是能收到的

3.学习部分

  • 有微积分、线性代数基础知识,知道简单的公式运算(有助于理解张量),概率论普通了解即可
  • 独立安装并使用pytorch环境,conda环境管理
  • 《动手学深度学习》 序言-4.10,结合B站中的对应视频00-18,建议可以对着敲代码自己复现一遍相关代码。
  • 通过上述学习明白感知机、多层感知机、多层感知机中的前向传播和反向传播,反向传播可以试着用numpy写写线性(全连接)反向传播的实现模式(结合算法设计与分析课)

三、入门

1. 图像分类的学习

2.目标检测的学习

  • 《动手学深度学习》 13.1-13.8,B站视频的41-45
  • 理解目标检测任务的实际目标,理解目标检测模型中的输入、主干、颈部、检测头的构成,基本如下图所示:

Object detector

  • 深入学习一下目标检测框架的原理:SSD、RCNN系列(Faster R-CNN)、YOLO系列( v3)等论文
  • 可以结合网上的文章并精读相关代码:Faster R-CNNSSDYOLOv5等,这三种最经典的模型代码必须精读,一步步调试,理解每个模块干了什么,基本上读懂了这三份代码后,之后的代码阅读以及写起来会非常流畅
  • 进一步的,经典的目标检测论文阅读,如RetinaNet(Focal Loss)CornerNet等,论文是需要自己根据一些文章或者渠道去发掘的,特别是一些经典的论文,具体的可以自己从一些了解其创新点,与其他论文中不同的地方
  • 具体的可以看(梳理中)YOLO 总结:从 YOLO 看目标检测 Object Detection(闲职了半年没写完的)

3.语义分割的学习

  • 《动手学深度学习》 13.9-13.11,B站视频的46-48
  • 理解语义分割、实例分割的实际目标,结合目标检测理解分割模型中的分割头,通过对目标检测以及语义分割、实例分割的学习明白视觉任务的下游任务的概念,实际上视觉任务本质上是通过一个分类模型作为图像的特征提取器,然后根据不同的下游任务目标(如检测、分割、深度估计等)来设计模型的输出
  • 阅读经典分割模型的论文,如FCNU-NetPSPNet、DeepLab系列(v1v2v3v3+)等,具体的其他经典论文自己发掘寻找,可能看着这篇论文的一些博客讲解中间就会提到其他论文,可以顺便看看创新点
  • 精读两三份经典的分割模型代码:FCN(Pytorch自带库里有)、U-NetDeepLabv3+

4.注意力机制的学习

  • 注意力机制其实算是一个通用视觉研究领域的子领域,目前注意力机制可以说是各家纷说。可能一种注意力机制效果好,另一种不好,但是两种结合效果比一种好。或者是同一种注意力机制在这个模型上效果好,在另一个模型上没效果甚至负面提升。所以以这种拼接形式发论文已经不太好发了!
  • 阅读经典的一些注意力机制的论文并查看代码,如BAMCBAM
  • 涉及Transformer的自注意力self-attention可以之后阅读

四、进阶

  • 上述属于整个计算机视觉深度学习方面的初步学习,有了这些基础,看模型代码以及对视觉任务的理解能力会有个质的提升,后面就是该从阅读的论文中思考改应用在什么上面,有什么改进

1.主干模型进阶

  • 目前在计算机视觉领域最火的模型结构是Transformer模型,但是在应用层面的出现还不算多,所以发论文的时候跟这个结合是很有利的创新点。
  • Transformer的结构学习比较难,因为是从自然语言处理那边照搬过来的模型,模型中没有CNN这么形象的卷积滑动,都是一些向量的计算。

2.简单任务进阶

  • 目标检测可以考虑小目标检测的研究(在图像输入前加GAN、在检测头上生成不拘泥与矩形框的输出等)
  • 在多光谱图像应用中,实际上就是输入由3通道变成6通道,抑或是通过其他如植被指数的减少通道或增加通过
  • 上述思路都可以多阅读视觉专业论文中寻找灵感,当然这些论文可能没经典的论文出名,所以可以略读

3.下游任务进阶

  • 下游任务不止检测分割,还有目标跟踪、深度估计、视频理解、文字识别、关键点识别等,根据不同的输入和期望的输出都可以是一个视觉的任务
  • 输入也可以是不止是图像,还可以是和文本结合,和雷达探测图结合,或者输出文本,这个就倾向于多模态领域的研究,当然涉及到文本就需要一些NLP的知识,这也是为什么Transformer为什么兴起的原因之一,可以很好的将CV与NLP的输入输出统一

从零入门深度学习(准备深入研究的)
http://baiyucraft.top/DeepLearning/DeepLearning-0.html
作者
baiyucraft
发布于
2022年9月15日
许可协议