Coursera 笔记

Module 04 · Special Applications: Face recognition & Neural Style Transfer

What are deep ConvNets learning?深度卷积网络在学什么

Coursera ↗

在本视频中,我们将通过一些可视化的方式,帮助你更好地理解 深度卷积神经网络(ConvNet) 的各层到底在做什么。通过这些直观的示例,你将更清晰地理解如何实现 神经风格迁移。🌟


卷积神经网络层级特征学习的可视化

假设你已经训练了一个类似 AlexNet 的卷积神经网络,并且希望可视化不同层的隐藏单元在计算什么。以下是我们可以执行的操作:


第一层隐藏单元的可视化

我们从 第一层 的隐藏单元开始。假设你扫描整个训练集,找出哪些图像或图像补丁能够最大化该单元的激活。也就是说,你将训练集中的图像输入神经网络,然后查找哪些图像能够最大化某个特定隐藏单元的激活。

  • 注意: 第一层的隐藏单元只能看到网络中的相对较小区域,因此我们可视化时,展示的图像补丁很小,因为该单元只关注图像的一小部分。

假如你选择一个隐藏单元并找到九个输入图像,能够最大化该单元的激活,可能会得到如下图像补丁:

  • 在图像的底部区域,这个隐藏单元可能会寻找像“边缘”或“线条”这样的简单特征。

例子

  • 第一个单元: 可能对水平或垂直的边缘特别敏感。
  • 第二个单元: 可能偏好更复杂的线条模式,或者特定方向的边缘。

这些图像补丁显示了 第一层 隐藏单元如何关注较为简单的特征,如边缘、颜色、对比度等。📐


重复过程:第二层的隐藏单元

如果你对第二层的隐藏单元做相同的操作,发现它们在处理什么特征时,会看到什么样的图像补丁?第二层的隐藏单元会看到更大的图像区域(接近整个输入图像)。例如:

  • 在 第二层,你可以看到,隐藏单元开始关注 更复杂的形状和图案,例如:
    • 一个隐藏单元可能偏好于 垂直纹理 或 多个竖直线条。
    • 另一个可能专注于 圆形物体 的形状。
    • 还有的可能对 细长的垂直线条 特别敏感。

这表明,随着层级的加深,网络学到的特征变得越来越复杂。🌀


更深层次的学习:第三层和第四层的特征

接下来,让我们看看 第三层 和 第四层 隐藏单元的情况。

第三层

  • 你会看到隐藏单元开始响应一些 更复杂的模式,例如:
    • 检测 圆形物体,像是 车、狗,甚至 人 的特征。
    • 检测一些 蜂巢形状 或 不规则的纹理。

第四层

  • 到了 第四层,网络已经学会了检测 更高层次的概念,例如:
    • 有些隐藏单元可能专门检测 狗 的特征。
    • 其他隐藏单元可能专注于 水、鸟的腿部 等具体物体的特征。


第五层:更加复杂的特征学习

进入 第五层 时,卷积神经网络会学习到 更为复杂的物体特征,例如:

  • 有些神经元会专注于检测 狗,但它们所检测的狗种类会更加多样。
  • 还有一些神经元开始识别 键盘、带有键盘纹理的物体,甚至 文本。

这些更深层的隐藏单元开始能够处理 更复杂的对象和场景,显示出神经网络已经具备了 对高层次语义 的理解能力。🌐


总结:从简单到复杂的特征学习

从 第一层 到 第五层,我们可以看到,卷积神经网络逐渐从检测 简单的边缘、颜色 等基本特征,到学习 复杂的形状、纹理,再到 识别具体物体。这一过程展示了卷积神经网络如何 逐层提取特征 并逐步形成对 图像内容的深刻理解。


将这些直观认识应用到神经风格迁移

通过上述的可视化示例,我们可以更好地理解 神经风格迁移 的实现方法。在下一步,我们将利用这种对卷积神经网络各层功能的直观理解,开始构建 神经风格迁移 算法。