吴恩达计算机视觉课程12大要点,如何赢得计算机视觉竞赛

简介: 本文作者最近在Coursera上完成了吴恩达的深度学习系列课程的第四门课“卷积神经网络”,这门课细致解释了优化计算机视觉任务所需的许多复杂方法。本文介绍了这门课的主要内容。

103230f6c29db6cde744db7ad56996651f17136d
上图是在课程的第4周创建的,将吴恩达的脸与 Leonid Afremov 的 Rain Princess 风格结合起来。

我最近在Coursera上完成了吴恩达(Andrew Ng)的计算机视觉课程。吴恩达在解释优化计算机视觉任务所需的许多复杂方法方面做得很出色。这门课中我最喜欢的部分是神经风格迁移(第11课),利用神经风格迁移,你可以将Claud Monet的风格与任何图像的内容结合起来。下面是一个例子:

e66c6216c7b846a4655c6fd2afec0a67c9ee534c

在这篇文章中,我将讨论这门课的11节主要课程。需要注意的是,这是Deep Learning系列课程的第4门,由deeplearning.ai制作,可以到官网了解前三门课程。

第1课:为什么计算机视觉发展迅速?

大数据和算法的发展将会导致智能系统的测试误差收敛至贝叶斯最优误差。这将使得AI能够在所有领域超越人类水平,包括自然感知任务。TensorFlow 的开源软件允许你使用迁移学习来实现目标检测系统,可以快速检测任意目标。有了转移学习,你只需要大约100-500个样本就能使系统运行良好。手工标注100个例子的工作量并不是很大,所以你可以快速做出可行的小成果。

第2课:卷积是如何工作的?

吴恩达解释了如何实现卷积算子(convolution operator),并展示了它如何在图像中检测边缘。他还介绍了其他滤波器,例如Sobel 滤波器,它赋予边缘中心像素更大权重。根据吴恩达的解释,滤波器的权重不应该人工设计,而应该使用爬山算法(hill climbing algorithm)来学习,例如梯度下降法。

第3课:为什么使用卷积?

吴恩达提出了几个哲学原因,解释为什么卷积在图像识别任务中如此有效。他给出了两个具体的原因。第一个是参数共享(parameter sharing)。参数共享的想法是,一个特征检测器对图像的某个部分有效,那么它可能对图像的另一部分也有效。例如,一个边缘检测器可能对图像的很多部分都有用。参数的共享允许参数的数量很少,也允许强大的平移不变性。

第二个原因是“连接的稀疏性”。这是说,每个输出层只是少量输入(尤其是滤波器的大小)的函数,这大幅减少了网络的参数数量,加快了训练速度。

第4课:为什么使用Padding?

Padding通常用于保留输入大小(即输入和输出的维数相同)。Padding也被用来使靠近图像边缘的帧相对靠近图像中心的帧对输出的贡献同样大。

第5课:为什么使用最大化池?

通过实证研究,最大化池(Max Pooling)在CNN中被证明是非常有效的。通过对图像进行下采样,可以减少使特征在缩放或方向变化时保持不变的参数数量。第6课:经典网络架构

吴恩达解释了3种经典的网络架构,包括LeNet-5,AlexNet和VGG-16。他提出的主要想法是,高效网络中层的通道大小增大,高度和宽度降低。

第7课:为什么ResNets有效?

对于普通的网络来说,由于梯度消失和梯度爆炸,随着层数增加,训练的误差不会单调递减。 ResNet具有前馈的skip connection,这样,就可以训练非常庞大的网络而不会降低性能。

af8fc2eda0d717b285320101ce1ec84b76567221

第8课:使用迁移学习

使用一个GPU从头开始训练大型网络(例如inception)可能需要好几周的时间。你应该从预训练的网络下载权重,只需重新训练最后一个softmax层(或最后几层)。这样能够大大缩短训练时间。这一方法有效的原因在于,靠前的层倾向于与所有图像共有的一些概念相关,例如边缘和曲线。

第9课:如何赢得计算机视觉竞赛?

根据吴恩达的解释,你应该独立地训练几个网络,平均它们的输出,以获得更好的性能。数据增强技术,例如随机裁剪图像,沿水平轴和垂直轴翻转图像等,也可能对性能有帮助。最后,你应该从开源的实现和预训练的模型开始,然后针对目标应用微调参数。

第10课:如何实现目标检测?

吴恩达首先解释了图像的特征点检测(landmark detection)的概念。基本上,这些特征点是你训练输出的示例的一部分。通过一些巧妙的卷积运算,你能得到一个输出量,它告诉你目标在某一区域的概率以及目标的位置。吴恩达还解释了如何利用 intersection over union(IOU)公式评估目标检测算法的有效性。最后,吴恩达将所有这些内容整合在一起,解释了著名的YOLO算法。

第11课:如何实现人脸识别

人脸识别是一个one-shot学习问题,因为能拿来识别某个人的可能只有一个样本。解决的方法是学习一个相似性函数,它给出两个图像之间的差异程度。所以,如果图像是同一个人,你希望这个函数输出小的值,反之亦然。

吴恩达介绍的第一个解决方法是siamese network。它的想法是将两个人的图像分别输入同一个网络,然后比较它们的输出。如果输出相似,那么可能是同一个人。网络的训练目标是:如果两个输入图像是同一个人,那么它们的编码距离就相对较小。

解决方法之二是使用三元组损失(triplet loss)方法。它的想法是,图像的三个维度(Anchor(A)、Positive(P)和 Negative(N))在训练过后,A 和 P 的输出距离大大小于 A 和 N 的输出距离。

dd0dfc9ce879ae52265ca713ea99236d3888ed88

第12课:如何用神经网络风格转换算法创造艺术品

吴恩达解释了如何结合内容和风格创造出一幅画,见下面的例子:

a7f5e9b801370a890baeea07d2fe9462ff909865

神经风格转换的关键是要理解卷积网络中每一层学习的视觉表示。事实证明,早期的图层学习例如边缘等简单特征,后来的功能学习复杂的对象,如面孔,脚和汽车。

要构建一个神经风格的风格转换图像,您只需定义一个成本函数,这是一个内容和风格相似的凸组合。具体来说,成本函数可能是是:

J(G) = alpha * J_content(C,G) + beta * J_style(S,G)

G就是生成的图像,C是图像内容,S是图像的风格。学习算法仅仅使用梯度下降来根据生成的图像G来将成本函数最小化。

其步骤分解如下:

  1.  随机生成G
  2. 使用梯度下降来最下好J(G),例如,写G:= G-dG(J(G))
  3. 重复步骤二
结论

通过完成本课程,你将获得对大量计算机视觉文献的直观理解。其布置的家庭作业也让你自己实践这些想法。完成本课程后,你可能不会成为计算机视觉方面的专家,但是本课程可能会启发您在计算机视觉方面的潜在创意/职业。


原文发布时间为:2017-11-23

本文作者:马文

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:吴恩达计算机视觉课程12大要点,如何赢得计算机视觉竞赛

相关文章
|
机器学习/深度学习 算法 机器人
从点云到NeRF,多伦多大学CSC 2547课程全面讲解3D计算机视觉
从点云到NeRF,多伦多大学CSC 2547课程全面讲解3D计算机视觉
140 0
|
传感器 机器学习/深度学习 人工智能
课程概述(计算机视觉快速入门) | 学习笔记
快速学习课程概述(计算机视觉快速入门)
|
机器学习/深度学习 并行计算 算法
李飞飞计算机视觉课程CS231n总结
李飞飞计算机视觉课程CS231n总结
李飞飞计算机视觉课程CS231n总结
|
7月前
|
机器学习/深度学习 计算机视觉
AIGC核心技术——计算机视觉(CV)预训练大模型
【1月更文挑战第13天】AIGC核心技术——计算机视觉(CV)预训练大模型
613 3
AIGC核心技术——计算机视觉(CV)预训练大模型
|
机器学习/深度学习 PyTorch 算法框架/工具
Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测
Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测
124 0
|
3月前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。
|
3月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
5月前
|
自然语言处理 监控 自动驾驶
大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
【7月更文挑战第26天】大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
221 11
|
6月前
|
编解码 机器人 测试技术
2024年6月计算机视觉论文推荐:扩散模型、视觉语言模型、视频生成等
6月还有一周就要结束了,我们今天来总结2024年6月上半月发表的最重要的论文,重点介绍了计算机视觉领域的最新研究和进展。
147 8

热门文章

最新文章