作者 | Ryan Shrott
编译 | Sambodhi
编辑 | Vincent
AI前线出品| ID:ai-front
AI 前线导语:最近,加拿大国家银行首席分析师 Ryan Shrott 在分享吴恩达在 Coursera 上发布的深度学习课程的前三门课的学习心得后,日前再次分享了他完成的第四门课的学习心得。
吴恩达的机器学习课程在 Coursera 平台上已上线 5 年左右,该门课程是国内,乃至全球许多机器学习爱好者、专家学者的入门课程。整门课程深入浅出、简洁易懂。
8 月 9 日,吴恩达又宣布 deeplearning.ai 在 Coursera 平台上开设系列全新深度学习课程,包括神经网络和深度学习概述、神经网络参数调整及优化、如何搭建机器学习项目、卷积神经网络、神经网络序列模型。从课程设置上来看,涵盖了深度学习的基础理论和简单实操。这也是 deeplearning.ai 三大项目的第一个项目。
截止目前(2017 年 11 月 22 日),Coursera 上可用的课程是:
第四门课的内容是教授如何构建卷积神经网络并用它来处理图像数据。
Ryan Shrott 目前完成了第四门课,他表示,吴恩达在解释很多优化计算机视觉任务所需了解的复杂概念上有抽丝剥茧讲得通俗易懂的能力。他很喜欢这门课程中的如何用风格转换器创造艺术图像这一部分内容,比如将 Claud Monet(19 世纪法国印象派画家)的绘画风格和任何图像结合起来进行艺术创作,如下图所示:
下面是 Ryan Shrott 学习之后,用 Leonid Afremov(1955-,白俄罗斯现代印象派画家)的作品《雨中的女人》(Rain Princess )的风格创作的艺术作品,你完全可以尝试:
在本文中,Ryan Shott 为我们解读了第四门课的 12 堂重要的课程。AI 前线在本文的基础上亦做了一些批注,方便读者理解并掌握一些概念,在深度学习少走弯路。
第 1 课:为什么计算机视觉迅速崛起?
大数据和算法的发展促使智能系统的测试误差收敛到贝叶斯最优误差,这就使得人工智能在所有领域中表现,超越了人类的水平,包括自然感知任务。开源软件 TensorFlow 使你能够使用迁移学习(teansfer learning)实现能够快速检测任何物体的目标检测系统。通过迁移学习,你只需 100~500 个样本就可以让系统运行良好。手动标记 100 个样本也并非很大的工作量,因此你可以快速得到最简可行产品。
第 2 课:卷积如何工作?
吴恩达解释了如何实现卷积操作,并展示如何对图像进行边缘检测。还介绍了其他滤波器,如索贝尔(Sobel)滤波器,它将更多的权重赋予边缘的中心像素。吴恩达还提到:滤波器的权重不应手工设计,而应该用爬山算法来习得,如梯度下降(gradient descent)。
第 3 课:为什么要使用卷积网络?
卷积网络在图像识别任务中为何如此有效,吴恩达给出了几个哲学原因。他介绍了两个具体原因。第一个原因是参数共享(parameter sharing)。这是基于图像某一部分有效的特征探测器在图像中另一部分可能也有用的想法。例如,边缘检测器对图像中多个部分可能有用。参数共享所需的参数数量很少,以及稳健的平移不变性( translation invariance)。平移不变性是照片中的猫进行移位、旋转后仍然识别为猫的关键因素。
第二个原因是连接的稀疏性。这个概念是指每个输出层只是少量输入的函数(特别是滤波器尺寸的平方)。这就大大减少了网络中的参数数量,从而加快训练速度。
第 4 课:为什么使用填充?
填充(padding)通常用于卷积过程中,保持输出数据的尺寸与输入数据一致。它也用来使图像边缘附近的帧对输出的贡献同图像中心附近的帧一样多。
第 5 课:为什么使用最大池化?
实证研究表明,最大池化(max pooling)在 CNN 中非常有效。通过对图像进行下采样,我们减少了参数的数量,缩放或者方向变化(如平移、旋转)时,能够保持特征不变。
第 6 课:经典网络结构
吴恩达展示了三种经典网络架构,包括 LeNet-5、AlexNet 和 VGG-16。他的大意是,高效的网络通常具有这样的层:不断扩大的通道规模和不断下降的宽度、高度。
第 7 课:残差网络为什么有效?
对普通网络而言,由于梯度下降和爆炸,训练误差并不会随着层数增加而单调递减。这些网络具有前馈跳过连接,使你训练极其庞大的网络而不会出现性能下降的情况。
第 8 课:使用迁移学习
在 GPU 上开始训练像 inception 的大型网络可能需要花上几个礼拜,我们应该需要下载与训练网络的权重,并重新训练最后的 softmax 层(或最后几层),这将大幅缩短训练时间。原因是靠前的层倾向于所有图像中的概念相关,例如边缘和曲线。
第 9 课:如何在计算机视觉竞赛获胜
吴恩达说,你应该独立的训练几个网络,平均它们的输出结果来获得更好的性能。数据增强技术(data augmentation),如随机裁剪图像、水平翻转、垂直翻转,也有助于提升性能。最后,你应该使用开源的实现和与训练的模型来启动项目,然后针对你的应用的参数进行微调。
第 10 课:如何实现目标检测
吴恩达解释了图像中特征点检测(landmark detection)的概念。总的说来,这些特征点是你训练输出样本的一部分。通过一些巧妙的卷积操作,你可以得到一个输出值,告诉你这个目标在某些区域的概率及目标的位置。他还解释了如何使用交除并(intersection over union,IoU)公式评估目标检测算法的有效性。最后,吴恩达将所有这些内容整合在一起,讲解了著名的 YOLO 算法。
第 11 课:如何实现人脸识别
人脸识别(face recognition)是一次性的学习问题,因为您可能只有一个样本图像来识别该人。解决的办法是学习一个相似性函数,给出两个图像之间的差异程度。所以如果图像是同一个人的话,函数将输出一个较小的数值,如果是不同的人则输出较大的数值。
人脸识别包括图像摄取、人脸定位、图像预处理、以及人脸识别(身份确认或者身份查找)。系统输入一般是一张或者一系列含有未确定身份的人脸图像,以及人脸数据库中的若干已知身份的人脸图象或者相应的编码,而其输出则是一系列相似度得分,表明待识别的人脸的身份。
目前人脸识别的算法可以分类为:
吴恩达给出的第一个解决方案,叫暹罗网络(siamese network),该方案是在同一个网络中,分别输入两个人的图像,然后比较它们的输出。如果输出相似,则表明这两个人的图像可能来自同一个人。基于这种想法来训练网络:如果输入图像是同一个人的,那么编码距离相对较小。
吴恩达给出的第二个解决方案是三重损失法(triplet loss method)。这个想法是,你的图像有三个维度:Anchor(A)、Positive(P) 和 Negative(N),训练网络之后,A 和 P 的输出距离远小于 A 和 N 的输出距离。
第 12 课:如何使用神经风格迁移创作艺术作品
吴恩达讲解了如何将内容和风格相结合生成一个图像。示例如下图所示:
神经风格迁移的关键是要理解卷积网络中每一层学习的视觉表征。原来就是靠前的层学习简单的特征,如边缘;靠后的层则学习复杂的目标,如面孔、足部和汽车等。
要构建一个神经风格迁移图像,你只需定义一个成本函数(cost function),这是一个内容和风格相似点的凸组合(convex combination)。详细地说,这个成本函数这样表示:
凸组合是一类特殊的线性组合,是若干个点的某种特定意义下的非负线性组合。
其中,G 是生成的图像,C 是内容图像,S 是风格图像。这个学习算法简单地使用梯度下降,使与生成图像 G 相关的成本函数最小化。
步骤如下:
结论
学完这门课程之后,你将会对大量计算机视觉文献有直觉理解。课后作业让你动手将这些方法付诸实践。尽管学完这门课你并不能成为计算机视觉领域的专家,但这门课却有可能会让你在计算机视觉领域中开启潜在的思路或者事业。
参考资料
[1] Deep Learning Specialization
www.coursera.org/specializat…
[2] Deep Learning Specialization by Andrew Ng — 21 Lessons Learned
towardsdatascience.com/deep-learni…
[3] Computer Vision by Andrew Ng — 11 Lessons Learned
towardsdatascience.com/computer-vi…
引导语:更多的干货内容请关注微信AI前线:ID:ai-front
-全文完-
人工智能已不再停留在大家的想象之中,各路大牛也都纷纷抓住这波风口,投入AI创业大潮。那么,2017年,到底都有哪些AI落地案例呢?机器学习、深度学习、NLP、图像识别等技术又该如何用来解决业务问题?
2018年1月11-14日,AICon全球人工智能技术大会上,一些大牛将首次分享AI在金融、电商、教育、外卖、搜索推荐、人脸识别、自动驾驶、语音交互等领域的最新落地案例,应该能学到不少东西。目前大会8折报名倒计时,更多精彩可点击阅读原文详细了解。
来源: https://juejin.im/post/5a215eaff265da432840aa08