Module 01 · Foundations of Convolutional Neural Networks
Computer Vision计算机视觉
计算机视觉是深度学习快速发展的一个重要领域。深度学习在计算机视觉中的应用,已经帮助自动驾驶汽车识别周围的车辆和行人,以避免碰撞。它还大大提升了人脸识别技术的准确性,或许你们中的一些人,已经可以通过面部解锁手机,甚至是门锁。
此外,你的手机上可能有许多应用程序,展示了食物、酒店的图片,或者美丽的风景图片。而一些构建这些应用的公司,正是通过深度学习来帮助展示最吸引人、最美丽或最相关的图片。我认为,深度学习甚至促使了新型艺术创作的出现。
为什么我对深度学习在计算机视觉中的应用如此兴奋?
有两个原因:
- 计算机视觉的快速进展:使得一些曾经不可能的全新应用成为现实。通过学习这些工具,或许你们也能发明出一些新的产品和应用。
- 跨领域的创新启发:即便你最终不从事计算机视觉系统的构建,计算机视觉研究领域的创意和新型神经网络架构,实际上能启发你在其他领域的算法和架构设计。例如,我曾在语音识别的研究中,从计算机视觉中汲取灵感,借鉴其方法来改进语音领域的技术。
因此,即便你不从事计算机视觉工作,希望你能够从本课程中学到的思想,对你的算法设计和架构创新有所帮助。
计算机视觉问题示例
在本课程中,我们将学习以下几种计算机视觉问题:
1.图像分类(Image Classification)
图像分类,也称为图像识别,是计算机视觉中的基本任务之一。你可能会输入一张 64x64 的图片,任务是判断它是否是一只猫。
2.目标检测(Object Detection)
目标检测要求不仅识别图片中的物体,还需要确定它们的位置。例如,自动驾驶汽车需要识别图中的其他车辆,并标出它们的位置,以便避开这些障碍物。通常,目标检测不仅要识别物体(如汽车),还需要框出物体所在的区域。并且,图像中可能会有多个目标,例如多个汽车或行人,或者至少是距离你的车辆较近的目标。
3.神经风格迁移(Neural Style Transfer)
神经风格迁移是一个有趣且创意十足的任务。假设你有一张内容图片,并希望将其以不同的风格进行重新绘制。例如,内容图片是你拍的风景照,而风格图片则是毕加索的画作。神经风格迁移算法会将这两张图片融合,重绘出内容图片,但风格却是毕加索的画风。这样的算法使得计算机能够创造出新的艺术作品。
计算机视觉的挑战
计算机视觉问题的一个主要挑战在于,输入数据的尺寸通常非常大。举个例子:
- 64x64 图像:对于这类图像,通常有三个颜色通道(RGB),因此它的维度是:
64 x 64 x 3 = 12,288
这还算不算太大。 - 1000x1000 图像:这种图像属于一百万像素(1 MP)。它的维度将是:
1000 x 1000 x 3 = 3,000,000
这意味着输入特征的维度将是 300 万。假设你在第一层隐藏层有 1000 个神经元,那么权重矩阵W1将是一个 1000 x 300 万的矩阵。
这将导致矩阵W1的参数量为 30 亿个参数,这是一个非常庞大的数字。
计算需求和内存挑战
如此庞大的参数量意味着,训练神经网络时需要极为丰富的数据,否则很容易发生过拟合。同时,训练这样一个网络的计算和内存需求也非常高,几乎不现实。
卷积操作:解决大图像的关键
对于计算机视觉应用来说,我们并不希望仅限于使用小图像,而是希望能够处理更大尺寸的图像。为了解决这个问题,我们需要高效地实现 卷积操作,它是 卷积神经网络(CNN) 的基本构建块。
接下来,我们将通过**边缘检测(Edge Detection)**的例子来说明卷积操作的工作原理和实现方式。
让我们在下一视频中进一步探讨卷积操作的细节!