第三阶段回顾
在过去两周里,我们学习了改进深度学习模型的一些策略。让我们来回顾一下。
首先,我们应该设置好任务的目标。选取开发/测试集时,应参考实际应用中使用的数据分布。设置优化指标时,应使用单一目标。可以设置一个最优化目标和多个满足目标。
在搭建模型时,我们可以根据现有的数据量、问题的难易度,选择端到端学习或者是多阶段学习。
训练模型前,如果有和该任务相似的预训练模型,我们可以采取迁移学习,把其他任务的模型权重搬过来;如果我们的模型要完成多个相似的任务,可以同时训练多个任务的模型。
有了目标,搭好了模型之后,就可以开始训练模型了。有了训练好的模型后,我们可以根据模型的训练误差、训练开发误差、开发误差来诊断模型当前存在的问题。当然,在诊断之前,我们可以先估计一下人类在该问题上的最低误差,以此为贝叶斯误差的一个估计。通过比较贝叶斯误差和训练误差,我们能知道模型是否存在偏差问题;通过比较训练误差和训练开发误差,我们能知道模型是否存在方差问题;通过比较训练开发误差和开发误差,我们能知道模型是否存在数据不匹配问题。
另一方面,如果在改进模型时碰到了问题,不妨采取错误分析技术,看看模型究竟错在哪。我们可以拿出开发集的一个子集,统计一下模型的具体错误样例,看看究竟是模型在某些条件下表现得不好,还是标错的数据太多了。
这些内容可能比较偏向于工程经验,没有过多的数学理论。但是,相信大家在搭建自己的深度学习项目时,这些知识一定能派上用场。
第四阶段预览
在这之后,我们要分别学习两大类神经网络:处理图像的网络和处理序列数据的网络。在第四门课《卷积神经网络》中,我们就会学习能够处理图像问题的卷积神经网络。一起来看看接下来要学的内容吧。
《卷积神经网络》的课需花四周学完。第一周,我们会学习卷积神经网络的基本构件,建立对卷积神经网络的基本认识,为后续的学习做准备。具体的内容有:
- 卷积操作
- 从卷积核到卷积
- 卷积的属性——填充、步幅
- 卷积层
- 池化操作
- 卷积神经网络示例
最简单的计算机视觉任务是图像分类。第二周,我们将学习一系列图像分类网络。这些网络不仅能在图像分类上取得优秀的成绩,还是很多其他计算机视觉任务的基石。通过学习它们,我们不仅能见识一些经典网络的架构,更能从中学习到搭建卷积神经网络的一般规律。其内容有:
- 早期神经网络
- LeNet-5
- AlexNet
- VGG
- 残差神经网络
- Inception 网络
- MobileNet
- 搭建卷积网络项目
- 使用开源代码
- 迁移学习
- 数据增强
第三周,我们将学习计算机视觉中一个比较热门的任务——目标检测。目标检测要求算法不仅能辨别出图片中的物体,还要能把物体精确地框出来。我们会一步一步学习如何搭建完成目标检测的卷积神经网络:
- 目标定位与关键点检测
- 使用卷积神经网络的目标检测
- 滑动窗口算法
- 基于卷积的滑动窗口
- YOLO 算法
- 结合目标定位与滑动窗口
- 交并比(IoU)
- NMS(非极大值抑制)
- 锚框(Anchor boxes)
- R-CNN 系列算法简介
此外,这周还会稍微提及另一个计算机视觉任务——语义分割的基本知识:
- 基于U-Net的语义分割
- 反卷积
- U-Net架构
最后一周,第四周,我们又会认识两个新任务:人脸检测与神经网络风格迁移。具体的内容有:
- 人脸检测
- 人脸检测问题与一次性学习
- 孪生神经网络
- 三元组误差
- 转化成二分类问题
- 神经网络风格迁移
- 风格迁移简介
- 利用神经网络学到的东西
- 风格迁移中的误差
- 推广到1维和3维
相比之前的课,学习第四门课时需要花更多的精力,主要因为以下几点:
- 课程难度变高。
- 课程的编程练习很多。
- 课堂上介绍了很多论文作为拓展学习的方向。
如果你未来要以计算机视觉为研究方向的话,这四周的内容一定要认真掌握。同时,编程练习和论文阅读也不能落下。据我估计,如果要打好计算机视觉方向上的坚实的基础,至少还要多花费两周时间去认真阅读经典论文,做好相关的技术调研。
在未来的几周里,我仅会上传课堂笔记,并尽最大可能复现一下课后的习题。在所有的五门课上完后(大约2个月后),我会回过头来补充计算机视觉相关的论文阅读笔记、项目实现笔记,对视频课中没来得及讲完的内容查缺补漏,以呈现一套翔实的深度学习学习笔记,辅助大家更好地入门深度学习。