机器学习和神经网络 - 页 33

 

CS 198-126:第 3 讲 - 深度学习简介,第 2 部分



CS 198-126:第 3 讲 - 深度学习简介,第 2 部分

在讲座的这一部分中,解释了反向传播的概念,这是一种在不执行冗余操作的情况下更快地获得梯度下降算法所需的所有偏导数的方法。讲师还讨论了如何改进普通梯度下降以进行深度学习优化,并介绍了动量、RMSprop 和 Adam 作为优化方法。还讨论了跟踪模型训练历史记录的重要性、批量归一化的使用和集成作为提高模型性能的技术,以及深度学习中常用于帮助减少过拟合(如丢失和跳过连接)的技术。最后,讲师简要介绍了 PyTorch 的易用性并开始提问。

  • 00:00:00 在讲座的这一部分,演讲者快速宣布了即将到来的编码作业和第一次测验的截止日期。第一项作业是让学生有机会学习课程其余部分所需的工具,而测验旨在作为理解检查。演讲者然后概述了讲座中将涵盖的主题,包括反向传播和现代深度学习工具,并向学生保证,如果他们不了解反向传播的数学细节,只要他们理解高级概念就可以了.讲座的后半部分很重要,涵盖了使现代深度学习发挥作用的工具。

  • 00:05:00 在这节课中,讨论了为函数创建计算图和使用链式法则计算偏导数的概念。计算图允许有效计算关于各个节点的导数。然后将该概念应用于玩具神经网络示例中的反向传播,其中使用链式法则计算损失相对于每个权重和偏差参数的偏导数。通过乘以从每个参数到损失节点的路径上的所有偏导数,可以避免冗余计算。

  • 00:10:00 本节解释了反向传播的概念,这是一种无需执行冗余操作即可更快地获得梯度下降算法所需的所有偏导数的方法。随着网络深度的增加,许多计算变得重复和冗余,使得它们不适合训练深度网络。反向传播的工作原理是在前向传递期间缓存值,并在计算偏导数时在反向传递期间重用它们。但是,由于偏导数现在涉及矩阵和矩阵,因此缓存变得更加关键,因为它可以节省通常更昂贵的乘法运算。视频中解释了我们可以使用像 pyTorch 这样的工具来为我们自动缓存所需的值。

  • 00:15:00 在本节中,讲师讨论了如何改进普通梯度下降以进行深度学习优化。香草梯度下降的一个问题是它在梯度为零的局部最小值或平坦点处挣扎,从而阻止算法找到更好的解决方案。为了解决这个问题,讲师引入了动量的概念,灵感来自从山上滚下的球。通过取过去梯度的加权平均值并将其添加到当前梯度,动量可以帮助突破小的局部最小值和平点。虽然从技术上讲不是真正的梯度下降,但动量可以使算法能够克服这些障碍并有望找到更好的解决方案。讲师还讨论了如何缩放过去梯度的加权平均值,而不是将当前梯度缩小太多。

  • 00:20:00 在本节中,讨论了梯度下降中的动量概念。讲座解释说,使用 beta 是为了控制步长,这样步长就不会变得太大和不一致。该讲座将动量解释为在下坡时步长保持不变的一种方式,但也可用于继续沿梯度历史指向的方向移动。然后讲座介绍了 RMS prop 优化方法,它存储了先前梯度的平方分量的加权平均值。

  • 00:25:00 在本节中,讲师解释了 RMSprop 的概念(梯度下降的一种形式),以及它与传统方法相比的工作原理。他解释说,RMSprop 将梯度除以梯度的平方移动平均值的平方根,他使用小梯度和大梯度的示例进行了演示。通过这样做,该算法能够自适应地调整学习率,这被称为自适应学习率。他最终得出结论,Adam 是梯度下降的最佳形式,因为它兼具 RMSprop 和传统方法的优点。

  • 00:30:00 在本节中,讲师介绍了 Adam,它结合了 RMSProp 和动量,作为深度学习模型中梯度下降的首选优化方法。 Adam 考虑到能够通过动量避免局部最小值的好处,同时解决需要通过它们提升的平坦点问题。它不会改变渐变的方向,只会改变它的缩放比例。该讲座建议将模型检查点作为一种方法来对抗 Adam 或 RMSProp 达到局部最小值后可能出现的任何不稳定行为。也可以使用二阶优化方法,但它们需要更多的计算能力并且不太常见。

  • 00:35:00 在本节中,讲师解释了跟踪模型训练历史的重要性,以及它在以前从未见过的新数据上的表现如何,以有效地确定哪个检查点是最好的。还讨论了一种称为批量归一化的归一化技术,它涉及神经网络上的每个单独激活减去平均值并除以标准差,然后允许网络通过将每个权重乘以值伽马来重新调整这些值,因为它认为合适并添加偏差。这种技术有助于规范化数据并创建看起来很规则的丢失表面,这些表面更容易通过梯度下降发送,让生活变得更轻松。

  • 00:40:00 在本节中,我们将学习批量归一化,这是一种通过计算某一层输出的均值和标准差来归一化神经网络神经元激活的方法。这种规范化使神经网络的默认行为具有规范化的激活,从而使它们表现良好。虽然此方法不会为模型增加表现力,但它允许更好的梯度和更规范化的值范围作为网络所有层的输入。此外,我们还学习了集成作为一种用于通过训练多个模型并对它们的预测进行平均来提高模型性能的技术。

  • 00:45:00 在本节中,讲座讨论了深度学习中常用的两种有助于减少过度拟合的技术:dropout 和 skip connections。 Dropout 涉及在训练前随机移除一定数量的神经元,以迫使每个神经元学习如何使用它之前的所有特征,迫使它学习与其他神经元相同的输出。相比之下,跳过连接允许学习有助于传播信息而不会增加噪音或混淆的身份函数;它涉及为所有权重学习零值,这很容易将好的信息传递到最后一层以正确分类。这两种技术以及本讲座中讨论的其他技术都有助于通过减少过度拟合和允许任意深度网络来提高性能。

  • 00:50:00 在本节中,讲师解释了跳跃连接如何成为构建神经网络时的有用工具。可以添加这些连接以提高性能,使您的网络更好。讲师没有时间完整地讨论 PyTorch,但在作业中有解释。他们解释说,如果您已经知道如何使用 numpy,那么 PyTorch 会非常容易使用。他们可以创建接受一个值并将其返回的函数,从而使计算特定输入的梯度值成为可能。最后,讲师开放提问环节。
CS 198-126: Lecture 3 - Intro to Deep Learning, Part 2
CS 198-126: Lecture 3 - Intro to Deep Learning, Part 2
  • 2022.12.03
  • www.youtube.com
Lecture 3 - Intro to Deep Learning, Part 2CS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berke...
 

CS 198-126:第 4 讲 - 预训练和增强介绍



CS 198-126:第 4 讲 - 预训练和增强介绍

在本次讲座中,演讲者解释了机器学习中特征提取的演变、深度学习的优势,以及如何使用迁移学习来提高模型的准确性和速度。他们还讨论了神经网络中冻结和微调层的概念,以及嵌入在降低分类变量维数方面的重要性。本讲座介绍了自监督学习及其不同任务,包括拼图、旋转和掩码词预测任务,这些任务可用于预训练模型并将学习到的表征迁移到下游任务。最后,讨论了对计算机视觉中自我监督学习的新兴趣,讲座鼓励学生在高 Crush 笔记本上完成作业。

  • 00:05:00 在讲座的这一部分中,作者讨论了表示学习和浅层学习。在浅层学习中,机器学习管道从输入 X 开始,使用特征提取器从中提取特征,然后将提取的特征传递到机器学习算法中以获得输出 Y。主持人解释说特征提取依赖于在数据上,可以
    对于表格数据来说很简单,但对于文本、音频或图像等数据来说却很复杂。然而,对于图像,经典计算机视觉中有专门的特征提取器可用。

  • 00:10:00 在本节中,讲师解释了特征提取的概念及其在机器学习中的发展历程。在经典机器学习中,使用手动编程的特征提取器(例如 Hog)来捕获图像中的边缘信息来创建模型。然而,这个过程具有挑战性,因为特征提取器因不同的任务而异。深度学习通过学习特征提取和输出预测来提供端到端的过程。讲师解释说,这个过程允许学习输入数据的抽象表示,这些表示通过神经网络中的学习特征提取器层传递,从而产生分层表示。该讲座提供了一个示例,说明深度神经网络如何学习汽车图像的表示。

  • 00:15:00 在本节中,演讲者解释了神经网络的深度如何帮助改进表征。网络的早期层检测边缘等低级细节,而后期层则专注于更具体的特征,如图像中的门或窗。最后一层试图确定输入图像是否真的是模型已经学会识别的,从而创建一个抽象的心智模型。然后,演讲者讨论了将迁移学习作为一种利用预训练模型并避免必须从头开始训练模型的方法,这在时间、计算和数据方面可能代价高昂。

  • 00:20:00 在本节中,演讲者讨论了神经网络中分层的概念,以及如何使用预训练和迁移学习来提高模型的准确性和速度。演讲者解释了较早的层如何捕获形状和图案等一般特征,而较晚的层如何捕获更抽象的特征,例如物体和人类。冻结的概念,其中某些层被保留并在后续模型中使用,也作为为特定任务定制模型的一种方式进行了讨论。冻结技术可以加快模型训练并提高准确性,但应注意确保层冻结在适当的水平。

  • 00:25:00 在本节中,讲师讨论了神经网络中的迁移学习,特别是微调技术,其中预训练模型在输出层和非冻结层上进一步训练。他们强调在决定是否冻结或微调预训练模型时考虑新数据集的大小和与原始数据集的相似性的重要性。此外,他们解释了嵌入在神经网络中的重要性,以及它们如何降低分类变量的维度,使它们更容易在变换空间中表示。通过一个涉及将书籍类型映射到低维向量空间的示例来说明嵌入的使用。

  • 00:30:00 在讲座的这一部分,教授谈到了高维数据以及试图表示它时出现的困难。教授介绍了低维潜在空间的概念,它涉及将表示高维数据的所有重要信息编码到低维空间中。目标是通过称为特征潜在空间的东西捕获此信息,并且在许多情况下,它可以通过嵌入来实现。教授举例说明了如何在 3D 空间中仅使用一个变量而不是三个变量来表示一维结构,从而使数据不会稀疏地分布在高维空间中。最后,教授解释了如何通过训练模型来学习嵌入,使用 softmax 损失函数对 MNIST 数据集中的图像进行分类,并将模型中某些层的输出作为图像的表示。

  • 00:35:00 在本节中,演讲者讨论了预训练网络和迁移学习的优势,可以节省时间和计算能力,同时获得更好的结果。预训练网络可以在更大的数据集上进行训练,从而获得更好的表征。迁移学习允许将从一个预训练网络中学到的知识应用到另一项任务中,使其在自然语言处理中特别有用。然后引入了自监督预训练,它允许通过从原始数据中学习来在没有标签监督的情况下进行学习。

  • 00:40:00 在本节中,讲师讨论了无监督学习,这是一种不提供标签但模型仍然学习数据集中的模式和关系的学习类型。无监督学习的示例包括主成分分析 (PCA) 和聚类。讲师随后谈到了自我监督学习,它涉及从数据本身而不是外部标签提供监督。该技术涉及从观察到的部分预测数据的隐藏部分或属性。在标记数据稀缺或收集成本高昂的情况下,自我监督学习是有益的。

  • 00:45:00 在讲座的这一部分,演讲者讨论了自监督学习和所涉及的不同任务,例如借口任务和下游任务。这些任务可用于计算机视觉、NLP 和 RL 等各个领域。演讲者随后给出了自我监督学习任务的示例,例如拼图任务,其中图像被分成九个补丁,打乱顺序,然后要求模型预测原始顺序。另一个任务是旋转任务,其中将图像旋转某个角度,然后要求模型预测旋转角度。这些任务可用于预训练模型并将学习到的表示转移到图像分类和对象检测等下游任务。

  • 00:50:00 在讲座的这一部分中,介绍了使用自监督学习 (SSL) 的预训练模型的概念。计算机视觉中 SSL 的一个例子是训练一个模型来预测图像的旋转角度并关注对象方向、位置、姿势和类型而不是低级细节。这个想法不仅限于 CV,因为 SSL 也可以应用于 NLP 和音频,例如从句子中预测单个或多个单词。 NLP 中一个著名的模型 BERT 使用 Transformer 模型同时预测两个句子中的掩码词,并学习词级和句子级的嵌入。 BERT 在 NLP 领域取得了巨大的成功。

  • 00:55:00 在讲座的这一部分中,演讲者讨论了继 BERT 在自然语言处理 (NLP) 领域取得成功后,人们对计算机视觉 (CV) 中的自我监督学习 (SSL) 重新燃起的兴趣。目前 CV 中最先进的技术据说与 BERT 类似。本讲座概述了表示学习、迁移学习和 SSL,并介绍了不同的概念和方法。虽然这个讲座没有作业,但在下周二到期的高 Crush 笔记本上有一个关于整个集群的作业,而未来关于 CV 高级 SSL 的讲座将有一个作业。可以在网站上访问幻灯片以供审查。
CS 198-126: Lecture 4 - Intro to Pretraining and Augmentations
CS 198-126: Lecture 4 - Intro to Pretraining and Augmentations
  • 2022.12.03
  • www.youtube.com
Lecture 4 - Intro to Pretraining and AugmentationsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://...
 

CS 198-126:第 5 讲 - 计算机视觉简介



CS 198-126:第 5 讲 - 计算机视觉简介

这个关于计算机视觉的讲座涵盖了各种主题,包括计算机视觉的历史及其多年来的发展。讲师还解释了深度学习及其如何改进经典计算机视觉方法。本讲座深入探讨了卷积的概念以及它们如何用作计算机视觉中的特征提取器,从而创建了卷积神经网络 (CNN)。此外,讲座还讨论了感受野的作用,并介绍了池化层作为增加 CNN 感受野的方法。总体而言,该讲座概述了计算机视觉作为一个领域以及用于从图像中提取信息的技术。在讲座的第二部分,讨论了在卷积过程中保持图像大小的各种技术,包括填充和相同的填充。还涵盖了卷积层中步幅的概念,演示了它如何模拟池化层的效果。解释了 CNN 的结构及其超参数,包括内核大小、步幅、填充和池化层,重点是卷积层如何充当特征提取器,将低维特征块传递到完全连接的网络进行分类。讲座还涵盖了用于对手写数字进行分类的 LeNet 网络架构,以及在通过神经网络传递图像数据之前对其进行归一化的重要性。最后,数据增强作为一种创建额外训练数据的技术进行了讨论,并强调了训练时模型检查点的重要性。

  • 00:00:00 在本节中,讲师将计算机视觉作为 AI 中的一个领域进行介绍,该领域涉及在语义层面从图像中提取信息。他们将分类、检测和分割概括为机器学习模型可以执行的任务。为了使机器能够理解图像并执行这些任务,它必须对图像的内容有更高层次的理解,因此模型被设计为提取边缘等特征来对图像进行分类。讲师解释说,计算机视觉领域的根源在于认知科学和心理学,特征提取器(例如 hog)的发展源于 1959 年对猫进行的实验。

  • 00:05:00 在讲座的这一部分,讲师讨论了深度学习如何取代传统的计算机视觉方法,在这些方法中,特征提取器是手工编程的。深度学习让模型不仅可以学习从特征到输出的映射,还可以学习特征提取器本身,这一突破出现在 2012 年,Alex Krajevski 的神经网络。讲师讲述了 ImageNet 视觉识别挑战,以及 AlexNet 如何大幅降低错误率,成为深度学习的转折点。然后讲座继续讨论图像如何以数字方式表示为矩阵以及使用亮度值表示灰度图像。

  • 00:10:00 在讲座的这一部分中,讲师讨论了图像中颜色维度和通道的概念。每个彩色像素都可以分解为三个不同的值,这意味着 RGB 图像的每个分量可以由三个矩阵表示。然后可以将这些矩阵堆叠在一起,形成一个称为张量的 3D 矩阵。讲师指出,这是理解卷积神经网络 (CNN) 的重要概念,因为常规神经网络或多层感知器由于需要将 3D 张量转换为向量而无法帮助处理大图像,从而导致大量元素的数量。

  • 00:15:00 在本节中,演讲者讨论了计算机视觉中全连接层的参数数量。该层采用 120,000 维输入并输出 10 维向量,这意味着权重矩阵需要具有 10 x 120,000 的维度,从而从偏置向量中产生 120 万个权重和 10 个参数。如此多的参数会使网络太大且难以训练,尤其是在需要更高维输出的情况下。此外,将每个像素视为一个单独的特征在图像分类中是非正统的,因为人类倾向于将图像分解成不同的部分并使用这些信息来构建心智模型。演讲者建议查看图像的局部区域而不是单个像素,以更好地理解数据。

  • 00:20:00 在本节中,讲师讨论了查看图像中相邻像素以收集信息的重要性,以及这如何对神经网络提出挑战,神经网络通常分别处理每个像素。他引入了局部区域的概念,这与计算机视觉有关并且与图像的结构有关。该讲座还讨论了从输入中提取层次表示的必要性以及这些表示如何相互依赖,从而使模型能够学习抽象概念,例如人脸的样子。最后,讲座解释了平移等价的概念,其中图像的表示应与其像素一起平移以保持一致性。

  • 00:25:00 本节讨论计算机视觉中的平移不变性和局部区域处理的概念。传统的网络架构无法满足这些要求,导致研究人员转而开发卷积神经网络 (CNN)。 CNN 中涉及的卷积运算通过使用可以在图像上滑动并计算点积以创建新输出的权重滤波器来解释。还引入了权重共享技术,其中每个补丁都通过具有相同权重和偏差的层以产生相同的表示,从而使 CNN 能够满足为计算机视觉制定的标准。

  • 00:30:00 在讲座的这一部分,演讲者解释了卷积的过程,其中涉及对输入补丁进行过滤器的逐元素乘积并对结果求和。这个过程使计算机视觉算法能够专注于输入图像的单个补丁而不是整个图像,并对每个补丁使用相同的过滤器,共享权重。通过策略性地设计过滤器,算法可以提取不同类型的信息,例如边缘检测。演讲者提供了一个过滤器示例,该过滤器旨在通过突出显示卷积输出中间的高激活,边缘上的低激活来检测垂直边缘。

  • 00:35:00 在讲座的这一部分,讲师解释了计算机视觉中卷积的概念以及它们如何用作特征提取器。卷积神经网络 (CNN) 使用可以从图像中提取不同特征的过滤器,并且可以通过深度学习过程学习这些过滤器。通过使用更多过滤器,CNN 可以从输入图像中提取不同类型的特征并使用有关所有这些特征的信息。讲师还讨论了如何将卷积过程推广到具有多个通道的输入图像,这个过程的输出称为激活图,它代表不同特征的激活。

  • 00:40:00 在本节中,演讲者讨论了以 RGB 格式表示图像的概念以及激活图如何具有 3D 结构。该过程涉及提取不同的特征并对它们进行卷积以获得 3D 输出。这种卷积运算是通用的,可以应用于任何 3D 输入,允许将卷积层堆叠在彼此之上,从而形成深度神经网络。此外,演讲者还介绍了有关感受野概念的实现细节,这不仅限于卷积神经网络。

  • 00:45:00 在本节中,讨论了激活图中感受野的概念。感受野是指影响激活图每个元素的输入区域。本节介绍感受野的工作原理以及增加感受野大小如何影响网络性能。还需要注意的是,感受野可能会受到不同卷积滤波器的影响,并且感受野过大或过小都可能导致输入中丢失重要信息。

  • 00:50:00 感受野,在讲座的这一部分,教授解释了感受野大小如何影响卷积神经网络(CNN)对图像进行分类的能力。感受野小会导致网络无法为图像分类任务处理足够的信息,而感受野大会导致过度拟合。该讲座还谈到了通过在 CNN 中使用激活函数来引入非线性的重要性。教授解释说,虽然两个不同的卷积可能具有相同的感受野,但由于通过激活函数引入了非线性,它们的输出不会相同。

  • 00:55:00 在本节中,讲师介绍了池化层作为一种增加卷积神经网络感受野的方法,而不会添加太多层,以免模型过大。池化层涉及查看输入的正方形区域并应用最大或平均操作。例如,二乘二最大池化使模型能够从四个像素的每个块中仅选择一个值,从而将输入的维度减少了两倍。讲师还解释了最大池化如何保留局部区域的关键信息,使其在减少激活的空间维度方面很常见。
  • 01:00:00 在本节中,演讲者讨论了在卷积过程中保留图像高度和宽度的不同技术,包括填充和相同填充的过程。相同的填充是指您通过用零或其他常量包围输入来人为地增加输入的大小时,以保持激活图的空间维度。这是深度学习社区的偏好,但没有经验证据表明它比常规填充有更好的性能。此外,演讲者还讨论了卷积中步幅的概念,以及它如何具有与池化层相同的效果。

  • 01:05:00 在本节中,讲师讨论了步幅在卷积层中的使用,它可以充当计算机视觉中池化层的近似值。他解释说,使用大于 1 的步幅类似于将卷积层和池化层组合在一起,但这样做并没有任何特别的优势。他还提出了一个公式来确定输出激活的维度,这取决于原始输入维度、过滤器大小、填充大小和步幅等因素。然后,讲师解释了如何通过卷积层进行梯度的反向传播,并强调 PyTorch 可以轻松定义使用多个参数的卷积层。

  • 01:10:00 在本节中,讲师讨论了卷积层的超参数以及它们如何构成 CNN 的解剖结构。这些超参数包括内核大小、步幅、填充和池化层。讲师解释说,卷积层可以看作是一个特征提取器,它将高维输入转换为低维特征块,这些低维特征块可以传递到一个完全连接的网络中用于分类任务。最后卷积层的输出是一个低维的特征块,可以传入红框内的MLP,也就是分类器。最后,讲师解释说有不同类型的池化层,但深度学习社区的规范是使用最大池化而不是平均池化。

  • 01:15:00 在本节中,视频使用真实示例解释了卷积神经网络 (CNN) 的结构。该网络称为 LeNet,由 Jan Lacun 开发,用于对手写数字进行分类。该视频解释了 LeNet 网络接受输入并将其卷积到特征图中,将这些图拉成更小的尺寸,应用另一个卷积和池化直到它获得更小的输入表示,然后再通过全连接层获得输出代表十个可能的数字之一。视频继续解释了 CNN 架构的设计选择,例如堆叠卷积、ReLU 和池化层,以及使用批量归一化层使训练更稳定。最后,视频讨论了计算机视觉中一些常用的数据集,例如 MNIST 手写数字分类数据集和 CIFAR-10 数据集。

  • 01:20:00 在讲座的这一部分,讲师讨论了几个流行的计算机视觉数据集,包括 MNIST、CIFAR-10 和 ImageNet。特别是 ImageNet 数据集,它是一个包含百万张图像的数据集,已被广泛用作评估计算机视觉算法的基准。讲师还强调了在将图像数据传递到神经网络之前对其进行归一化的重要性以及收集和标记数据的挑战,这需要仔细考虑以确保数据来自相似的分布。此外,更多的数据有助于防止过度拟合,但收集大型数据集可能既费钱又费时。

  • 01:25:00 在本节中,讲座涵盖了数据增强的主题,在该主题中,可以通过对图像的亮度、对比度、颜色、裁剪、翻转或旋转图像进行轻微更改,以及分配图像,从单个图像中人工创建更多数据他们使用相同的标签来创建新的训练数据集。这种方法是从预先存在的数据集中创建新数据的一种非常便宜且简单的方法。此外,讲座还强调了训练卷积神经网络时模型检查点的重要性,因为训练时间通常需要数小时到数天甚至数周,并且由于机器崩溃或意外关机等突然中断而导致的进度损失可能代价高昂。必须在训练过程的不同点存储模型速率快照,以便在训练中断时从最新快照继续。
CS 198-126: Lecture 5 - Intro to Computer Vision
CS 198-126: Lecture 5 - Intro to Computer Vision
  • 2022.12.03
  • www.youtube.com
Lecture 5 - Intro to Computer VisionCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.ed...
 

CS 198-126:第 6 讲 - 高级计算机视觉架构



CS 198-126:第 6 讲 - 高级计算机视觉架构

本次关于高级计算机视觉架构的讲座重点介绍了卷积神经网络 (CNN) 及其各种技术。讲师在深入研究残差等高级技术之前解释了 AlexNet 和 VGG 的架构,以保持向后的残差值以获得更高的准确性和更简单的架构。讨论了瓶颈和一对一卷积的使用,以及能够在计算机视觉体系结构中学习身份的重要性。本讲座还涵盖了神经网络中梯度消失的问题,以及如何通过批量归一化和残差网络来缓解这一问题。深入解释了全局平均池化和深度可分离卷积等技术,然后讨论了移动网络架构及其优势。

此外,讲师还研究了高级计算机视觉架构,并着重于通过使用逐步局部卷积和逐个卷积来优化卷积神经网络模型。他强调了理解这些优化的重要性,以及在高效构建未来网络时某些优化可能出现的问题。讲座最后讨论了准确性、性能和模型大小之间的权衡,并通过有效网络模型与其他网络的比较突出了这一点。学生会被告知下周五即将进行的测验和家庭作业。

  • 00:05:00 在本节中,演讲者首先回顾上一节课,然后再深入研究更高级的 CNN 架构。他们为上一节课的粗略介绍表示歉意,并在开始前进行了最后一分钟的编辑。有一个关于麦克风的简短交流,但随后演讲者跳进了演讲。

  • 00:10:00 在本节中,演讲者回顾了卷积神经网络 (CNN) 的架构及其与标准密集神经网络的区别。演讲者阐明了 CNN 中的卷积层类似于密集神经网络中的层,具有过滤器和偏置项等学习参数。演讲者解释了过滤器如何为输入中的每个位置生成输出映射,以及多个过滤器如何生成不同的输出通道。演讲者还解释了如何使用池化层来减小输出量的大小。总的来说,演讲者强调 CNN 的机制类似于密集神经网络,用卷积代替矩阵乘法。

  • 00:15:00 在本节中,演讲者解释了在卷积神经网络中使用最大池化来减少特征量的大小并加速卷积。该技术涉及在特征量的每个小方块中取最大值并将其用作输出。演讲者还谈到了分割的概念,它涉及用特定分类标记图像中的每个像素,并指出对于此任务,输出大小将与输入大小相同。本节最后简要介绍了高级 CNN 架构,重点介绍了 ResNet 作为讲座中最重要的架构。

  • 00:20:00 在本节中,讲师讨论了各种计算机视觉架构,重点是卷积神经网络 (CNN)。讲座首先讨论了 CNN 背后的动机,其中涉及堆叠卷积层和池化层以从低级特征合成信息并逐步提升到更高的特征。讲座接着讨论了 AlexNet 的架构,这是一项开创性的壮举,2012 年在 ImageNet 上实现了大约 17% 的错误率。但是,讲师指出,这些架构不再是最先进的,因为 transformer 架构已经取得了进步,这将在后面的讲座中讨论。

  • 00:25:00 在本节中,演讲者讨论了 AlexNet 和 VGG 这两个广泛使用的计算机视觉神经网络的架构。 AlexNet 涉及五个卷积层,最终输出是一个扁平化的一维向量,通过三个密集层和一个 softmax 函数来生成预测类。另一方面,VGG 有 23 个卷积层和三个密集层。此外,演讲者还强调了使用逐一卷积作为填充和维数加减的一种形式。
     
  • 00:30:00 在本节中,讲师讨论了高级计算机视觉架构,重点是卷积神经网络 (CNN)。该讲座强调使用逐一卷积来保持输入大小,以及深度和逐点卷积的组合来提高计算效率。该讲座还强调了在分类器的早期阶段学习低级特征的重要性,并描述了盲目堆叠层的问题。为了解决这些问题,讲座解释了使用残差来维护后向残差值,从而获得更高的准确性和更简单的架构。

  • 00:35:00 在本节中,讲座讨论了深度卷积神经网络中残差的概念。虽然添加更多层不应降低准确性,因为可以学习恒等变换,但在实践中,添加更多层会影响转换后的先前恒等式,从而导致梯度消失、梯度爆炸和梯度破碎。残差通过将先前阶段的信息保存到未来的计算中来解决这个问题,从而更容易学习恒等变换。该讲座还讨论了处理残差的瓶颈,其中添加残差会增加收敛时间,但不一定会增加结果。一个解决方案是调整瓶颈的大小和频率。

  • 00:40:00 在讲座的这一部分,演讲者讨论了能够在计算机视觉架构中学习身份的重要性。他们解释说,如果网络的权重和偏差都为零,则网络将输出与接收到的完全相同的内容,从而使网络更容易识别何时有足够的信息来进行良好的分类并停止学习更复杂的特征。演讲者还谈到了选择网络层数的问题,在 ResNet 架构中通常选择两层。

  • 00:45:00 在讲座的这一部分,演讲者讨论了神经网络中梯度消失的问题以及它如何影响权重更新。当单个步骤的偏导数在乘法链中变得太小或太大时,就会出现梯度消失问题,这可能会导致权重持续更新出现问题。该演示文稿还讨论了批量归一化和残差网络如何帮助缓解梯度消失问题。然后讲座继续讨论全局平均池化,它用于替换卷积神经网络 (CNN) 中的全连接层,并为分类任务中的每个类别生成特征图。

  • 00:50:00 在讲座的这一部分,演讲者讨论了在神经网络中使用密集层通常如何导致过度拟合和性能下降。为防止这种情况,他们建议使用全局平均池化 (GAP),它会生成特征图,对它们进行平均,然后将它们送入 softmax 函数,而无需调整任何参数。演讲者还介绍了 depth-wise separable convolutions 的概念,它在每个通道上分别使用较低维度的特征图,然后再智能地组合它们以减少计算并保留每个通道的数据。这种技术对于在深度神经网络中对各种过滤器进行缩放计算特别重要。

  • 00:55:00 在讲座的这一部分,演讲者讨论了移动网络架构,它使用深度和逐点卷积来减少图像所需的计算量。通过对图像的每个通道应用一个1×1×3的层,然后将结果连接起来并对其应用更小的逐点卷积,实现输出,显着减少计算量。移动网络架构参数更少,收敛速度更快,同时与 D3 的 Inception 精度相匹配。演讲者还继续讨论了压缩和令人兴奋的网络,您可以在其中使用密集层和重新缩放来压缩和扩展特征图,计算强度较低。

  • 01:00:00 在本节中,讲师讨论了如何使用逐步局部卷积和逐个卷积来优化卷积神经网络 (CNN) 模型。他还提到了解优化和某些优化所面临的问题如何有助于更有效地构建未来的网络。讲座最后将高效网络模型的准确性、性能和模型大小与其他网络进行比较,强调这些指标之间始终存在权衡。
CS 198-126: Lecture 6 - Advanced Computer Vision Architectures
CS 198-126: Lecture 6 - Advanced Computer Vision Architectures
  • 2022.12.03
  • www.youtube.com
Lecture 6 - Advanced Computer Vision ArchitecturesCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://...
 

CS 198-126:第 7 讲 - 目标检测



CS 198-126:第 7 讲 - 目标检测

本讲座讨论了对象检测,特别是将定位添加到简单的分类 CNN、用于对象检测的 IOU 方法、R-CNN 系统,以及优化对象检测算法以最小化 YOLO 的处理时间。该视频通过分割图像来解释 YOLO,并讨论了 YOLO 对象检测的挑战,包括使用锚框来消除歧义。最后,探索了 YOLO 架构,这是一个用于对象检测的完全卷积神经网络,并且将大量类的存储用于分类作为一个正在进行的研究问题提出。演讲者建议阅读“黄皮书”,同时由于不可读性而建议不要使用 RCNN。

  • 00:00:00 在本节中,讲师讨论了将定位添加到简单分类 CNN 以进行地标检测的过程。通过向网络添加 X 和 Y 输出,网络输出图像中特定特征的确切位置,例如动物的鼻子。然后,讲师解释了如何通过添加更多输出来为整个猫提出一个边界框来扩展该网络。讲师还探讨了网络扩展的不同想法以提出边界框,以及针对此扩展任务训练网络的过程。

  • 00:05:00 在本节中,讲师讨论了用于对象检测的 IOU(交集)方法。该方法旨在通过计算交集面积并将其除以 Union 的面积来最大化预测边界框与真实边界框之间的重叠。讲师解释说这个值越接近1,检测效果越好。此外,讲师还谈到了在同一图像中检测多个对象的挑战,提到了使用穷举搜索或滑动窗口的基本解决方案。然而,这种方法存在重大问题,包括效率低下和需要过多的处理能力。

  • 00:10:00 在本节中,演讲者讨论了针对目标检测中低纵横比问题的建议解决方案,即称为 R-CNN 的系统。它的基本思想是猜测可能的边界框,并通过使用经典的非机器学习算法对图像进行分类并为对象提出一堆边界框。这种方法之所以有效,是因为图像中的边缘很可能是边界框的边界。该算法还使用非最大抑制来去除由于对同一对象进行多次潜在分类而导致的冗余。然而,这个系统仍然很慢,因为大多数图像有数千个不同的分割区域,这取决于经典算法的定义方式。

  • 00:15:00 在本节中,讲师解释了如何优化对象检测算法以最大程度地减少处理时间。一种方法是创建一个特征图,从图像中提取关键信息,然后仅对每个对象检测所需的特征图部分进行分类,从而无需每次都重新运行完整的卷积神经网络。讲师随后介绍了 YOLO,一种利用单个卷积神经网络输出图像中多个对象的位置和边界框的对象检测算法。 YOLO 的架构由卷积层和分类层组成,允许更快的处理时间和一次检测多个对象。

  • 00:20:00 在本节中,视频解释了 YOLO(你只看一次)如何通过将图像分割成网格来工作,每个网格代表一个分类向量或边界框。这在理论上意味着可以分类的对象数量等于图像中的网格数量。 YOLO 也使用 XY 宽度和高度,XY 坐标是边界框的中点,宽度和高度是框的大小。然后视频继续解释非最大抑制,这是一个消除重叠并为每个分类图选择具有最高置信度的最佳边界框的过程。

  • 00:25:00 在本节中,我们将了解 YOLO 对象检测的挑战,包括多个对象在同一单元格中居中的问题以及如何在一个单元格中输出多个分类和边界框。对此的解决方案是使用锚框,在分类之前定义通用边界框,并根据与这些锚框的相似性对数据集进行分类。这允许一种确定性的方式来确定哪个对象应该被分类到哪个向量中,并消除重复边界框的歧义。

  • 00:30:00 在本节中,讨论了 YOLO 架构,它是用于对象检测的全卷积神经网络。 YOLO网络对图像进行一次遍历,设计简单,省去了滑动窗口等经典组件。通过使用锚框和其他技术,YOLO 能够匹配 RCNN 的精度,同时大幅提高其速度。此外,还探讨了锚框的概念,锚框是与图像中的对象相对应的几何形状。检测具有相同形状和大小且重叠的锚框的对象具有挑战性。然而,有一些算法可以找到数学上最优的锚框来分离这些对象。最后,讨论解决了用于分类的大量类的存储,这仍然是研究人员目前正在探索的分类问题。
     
  • 00:35:00 在本节中,演讲者向有兴趣阅读目标检测的读者推荐一篇名为“The Yellow Paper”的技术论文。另一方面,由于其不可读性,演讲者建议不要阅读 RCNN。演讲者邀请听众在结束演讲前提出任何问题。
CS 198-126: Lecture 7 - Object Detection
CS 198-126: Lecture 7 - Object Detection
  • 2022.12.03
  • www.youtube.com
Lecture 7 - Object DetectionCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal/...
 

CS 198-126:第 8 讲 - 语义分割



CS 198-126:第 8 讲 - 语义分割

本讲座讨论图像分割,包括语义分割和实例分割。分割的主要目标是检测图像中的所有对象并将它们分离出来。讲师解释了卷积神经网络 (CNN) 如何用于语义分割,以及下采样如何帮助处理计算量大的全分辨率图像。还讨论了将小体积转换回图像大小的不同方法。本讲座介绍了 U-Net,这是一种将先前的改进与跳跃连接相结合的语义分割模型,并解释了如何使用 Mask R-CNN 方法将其扩展到实例分割。演示了预训练的语义分割模型,演讲者谈到了预训练和即将进行的课程作业。

  • 00:00:00 在本节中,讲座涵盖图像分割,特别是语义分割和实例分割。语义分割涉及查找图像中存在对象的特定像素,而实例分割则识别每个类的每个实例在图像中的位置。分割的最终目标是检测图像中的所有对象并将它们分离出来。这种技术很有用,因为人类通过单个组件的组合来感知对象,并且能够更具体地识别和分类这些组件是必不可少的。分割提供了有用的应用程序,例如对象检测和识别对象关系。

  • 00:05:00 在本节中,讲师讨论了细分的概念以及如何处理它。这个想法是通过基于某种相似性标准的分组来创建连接的段。对此的经典方法是定义一个函数,根据像素在某些指标(例如强度)中的相似性将像素分组在一起。然而,讲师提到了更新的深度学习方法,例如滑动窗口,它可以学习如何执行分割而不是使用固定算法。

  • 00:10:00 在本节中,演讲者解释了如何使用卷积神经网络 (CNN) 进行语义分割。可以使用卷积运算代替多次运行 CNN 滑动窗口方法。这允许在没有重新计算共享特征的低效率的情况下达到预期的效果。卷积层可以作为图像的过滤器运行,输出层将与原始图像一对一映射,无论大小如何。填充也可用于处理输入大小小于过滤器大小的情况。

  • 00:15:00 在本节中,讲师讨论了对大图像进行下采样以使语义分割更加可行的问题,因为处理全分辨率图像的计算量可能很大。解决方案是逐渐对每个卷积层的图像进行下采样并删除冗余信息,从而创建一个更小的体积来处理。然后在最后对该下采样图像进行上采样,以创建原始图像的分割图,根据最大分类输出将每个像素分割成特定类别。本讲座还简要讨论了填充和处理图像边缘的不同方法。

  • 00:20:00 在本节中,讲师讨论了将小体积(例如分割图)转换回原始输入图像大小的图像的不同方法。经典方法包括放大图像并使用插值函数(例如最近邻域或线性插值)来填充额外的空间。但是,这种方法可能会导致一些细节丢失。讲师建议了一种利用反卷积的学习方法,该方法涉及将输入层传递到输出层并逐个删除原始输入图像上的像素。讲师简要回顾了卷积,并通过翻转输入层和输出层的位置解释了反卷积的工作原理。

  • 00:25:00 在本节中,讲师绘制了一个简单的输入图像示例,并解释了一种分解方法,该方法涉及查看输入图像的每个像素并使用滤波器将其投影到输出图像上。讲师指出此方法的局限性在于它可以覆盖已经写入的值。为了解决这个问题,讲师介绍了一种增量方法,涉及卷积层将输入图像下采样为低分辨率表示,然后使用 D 卷积将其上采样回其原始大小。讲师指出,这种方法是有益的,因为上采样是学习的,而不仅仅是一种经典算法,它允许更多的适应性和形状的细化。

  • 00:30:00 在本节中,我们将了解 U-Net,这是一种语义分割模型,它结合了先前的改进和跳过连接。跳过连接允许在上采样时从下采样路径的不同级别提取信息。 U-Net 也有不同的变体,例如深度扁平家族模型和基于 Transformer 的模型(如 Sendformer)。 U-Net 也可以通过使用 Mask R-CNN 方法扩展来解决实例分割问题,该方法预测识别值内对象的位置。

  • 00:35:00 在本节中,讲师讨论了使用 Mask R-CNN 进行全实例分割,这对于自动驾驶汽车检测汽车、行人或背包等物体的轮廓非常有用。讲师解释了如何将潜在的边界框压缩成固定大小的图像并进行分类。物体的标签是通过多种方法收集的,例如让人类做或使用辅助方法。矩阵的学习方式与过滤器相同,当退役图像时,讲师解释它是一个投影,其中过滤器乘以每个相应的像素值,然后在图像上迭代,这实际上并不是反转卷积.

  • 00:40:00 在本节中,讲师和一名学生演示了在 Cloud GPU 上训练的预训练语义分割模型。该模型在一张来自日本的图像上运行,结果表明该模型能够以不同的精度检测多个物体。该学生还提到可以将分数阈值应用于模型以过滤掉准确率分数较低的信息。总体而言,该演示作为语义分割如何应用于真实世界图像的示例。

  • 00:45:00 在本节中,演讲者讨论了预训练以及如何在 AWS 和其他卸载服务上预训练模型。他们还提到了一个强制性的居民分配和一个涉及细分的推荐可选单元。截止日期和链接在课程网站上,他们鼓励学生带着任何问题来办公时间。总体而言,本节提供了有关课程和即将进行的作业的一些后勤信息。
CS 198-126: Lecture 8 - Semantic Segmentation
CS 198-126: Lecture 8 - Semantic Segmentation
  • 2022.12.03
  • www.youtube.com
Lecture 8 - Semantic SegmentationCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/d...
 

CS 198-126:第 9 讲 - 自动编码器、VAE、生成建模



CS 198-126:第 9 讲 - 自动编码器、VAE、生成建模

在本讲座中,介绍了生成建模的概念,它涉及使用机器学习基于数据集创建新图像。解释了自动编码器,一种用于特征学习的神经网络,重点介绍了它们的结构以及它们如何通过压缩和重建来学习输入数据的特征。该讲座还涵盖了变分自动编码器及其优势,以及在自动编码器中使用结构化潜在空间在图像之间进行插值。讨论了矢量量化对于处理离散数据的重要性,并解释了变分自动编码器的损失函数,其中包括重建损失和承诺损失,以防止对输入数据进行硬编码。讲座以对所涵盖主题的回顾结束。

  • 00:00:00 在本节中,讲座介绍了生成建模的主题,其中涉及使用机器学习根据数据集生成新图像。然而,对于机器来说,理解是什么将不同的物体(例如猫)彼此区分开来可能是一个难题。本讲座介绍了自动编码器的概念以及它们如何用于压缩和解压缩图像,如 JPEG 压缩示例所示。本讲座还涉及变分自动编码器的主题,这将在下一课中讨论。

  • 00:05:00 在本节中,讲师讨论了图像压缩以及它如何依赖于在某种程度上理解数据。压缩可以节省空间并减少通过网络发送图像所需的位数。 JPEG 算法的工作原理是丢弃一些对人类感知不重要的高频信息和像素到像素的关系。然后讲师建议,对于特定类型的图像,例如猫图像,可以开发更高级的压缩方案,更深入地了解图像的结构,而不仅仅是像素相关性。总的来说,压缩算法突出了理解数据在机器学习中的重要性。

  • 00:10:00 在本节中,讲师讨论了自动编码器的概念,自动编码器是一种用于特征学习的神经网络,它使用编码器-解码器结构来压缩输入数据,然后重建它。他将其与早期技术(例如使用 PCA 进行特征提取的特征脸)进行了比较,并展示了自动编码器网络的结构。编码器部分将输入数据减少到瓶颈层,而解码器部分将其重建回其原始形式。目标是最小化原始数据和重建数据之间的差异。讲师提出了一个问题,即为什么产生与输入相同的输出的网络会有用,并解释说关键在于可以用于其他任务的数据的学习特征。

  • 00:15:00 在讲座的这一部分,讲师解释了自动编码器中瓶颈层的概念,以及它如何迫使网络压缩输入数据,从而学习数据的一些特征。他还讨论了这种网络结构的局限性和代码的理想属性,例如它的小尺寸和相似图像的代码相似性。讲师介绍了变分自动编码器的概念,它建立在自动编码器的基础上,但提供了神奇的属性,可以在将不同的操作应用于潜在向量时产生合理的结果。然后他讨论了图像和文本生成的生成框架,其中涉及对包含要生成的图像或文本信息的潜在向量进行采样。

  • 00:20:00 在讲座的这一部分,演讲者讨论了使用潜在向量作为表示面孔数据集中的特征或“基因”的方法。潜在向量充当个体可能基因组的一种概率分布,面部结构是该组基因的函数。编码器获取输入图像并生成潜在向量,解码器获取该潜在向量并生成原始图像的估计值。为了对潜在空间施加结构,使用了概率编码。

  • 00:25:00 在讲座的这一部分,演讲者解释了使用概率分布将输入映射到可能的输出区域,以强制潜在空间中的附近向量解码为相似的图像。这个概念在变分自动编码器 (VAE) 中很重要,变分自动编码器使用高斯分布来输出从中采样代码的潜在空间中的圆的参数。 VAE 损失包括一个重构项和一个强制编码器输出看起来像正态分布的项,防止它只学习一个点输出,而是鼓励必须编码到同一点的大集合。演讲者注意到这种损失中的对比目标,其中自动编码器更愿意将每个输入映射到一个点,但额外的项强制点靠近平面的中心并有一些变化,导致圆盘而不是个别点。

  • 00:30:00 在讲座的这一部分,演讲者讨论了在自动编码器中使用结构化潜在空间的好处。通过在潜在空间中加强结构,自动编码器可以有效地在图像之间进行插值,这在一个流行的在线演示中有所展示,用户可以在两个名人面孔之间滑动滑块,并看到滑块以一种合理的方式在两个面孔之间进行插值。演讲者解释说,这是通过使用变分自动编码器实现的,它强制潜在向量在同一空间中一起存在,并从附近的向量中解码附近的点。演讲者指出,虽然由于涉及采样,变分自动编码器的训练细节可能很棘手,但该方法是任意的,可以修改以适应各种应用。

  • 00:35:00 在讲座的这一部分中,演讲者讨论了在某些领域(例如自然语言处理 (NLP))使用离散标记的必要性,因为很难定义通过特定方式更改单词的含义百分比。因此,他讨论了使用矢量量化作为扩展变分自动编码器 (VAE) 以处理离散标记的技巧。在矢量量化中,有效令牌的代码本用于将来自 VAE 的任何输出矢量四舍五入到最接近的令牌,从而更好地表示离散数据。然而,码本的选择仍然是一个挑战。

  • 00:40:00 在本节中,演讲者讨论了变分自动编码器 (VAE) 的损失函数,该函数用于了解与数据分布中不同集群对应的代码字的位置。损失函数包括重构损失,确保解码器的输出与输入相似,以及承诺损失,确保编码器输出的向量接近表示这些簇中心的码字。为防止网络对输入数据进行硬编码,编码器会为每个输入生成多个码字,从而产生更大的码字集,并允许网络生成更大多样性的输出。

  • 00:45:00 在视频的这一部分中,演示者讨论了一种使用 VQ-VAE 生成新图像的方法,方法是从正态分布中采样一些 C 并将其传递给解码器,从而生成一个新图像以前见过。此外,演示者解释说,代码本元素的统一采样可能无效,因为在真实数据分布中,某些代码字比其他代码字更常用。因此,学习代码字的先验对于生成新数据很有用。最后,演示者提供了讲座的回顾,从自动编码器开始,转到变分自动编码器,并以矢量量化变分自动编码器结束。
CS 198-126: Lecture 9 - Autoencoders, VAEs, Generative Modeling
CS 198-126: Lecture 9 - Autoencoders, VAEs, Generative Modeling
  • 2022.12.03
  • www.youtube.com
Lecture 9 - Autoencoders, VAEs, Generative ModelingCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https:/...
 

CS 198-126:第 10 讲 - GAN



CS 198-126:第 10 讲 - GAN

关于 GAN 的讲座介绍了两个网络的概念,即鉴别器和生成器,它们在博弈论式的设置中相互竞争。生成器的输入是随机噪声,它赋予意义以生成看起来真实的图像,而鉴别器的工作是判断图像是真实的还是假的。 GAN 使用对应于负交叉熵损失的损失函数,生成器想要最小化而鉴别器想要最大化它。值函数表示生成器的性能如何,需要鉴别器通过正确分类假数据和真实数据来最大化。该讲座还涵盖了训练 GAN 的问题,以及允许生成器有更多代理权来改变的非饱和损失。

  • 00:00:00 在本节中,讲师回顾了用于将图像压缩和映射为更压缩表示的潜在变量和代码。还介绍了使用自动编码器从潜在向量生成新图像的想法。讲师指出了判断什么是好的、逼真的图像的挑战,这就是 GAN(生成对抗网络)发挥作用的地方。有两个网络,一个生成数据,另一个试图确定它是真实的还是假的,网络在博弈论式的设置中相互竞争。判别器在正确分类图像时获胜,而生成器在愚弄判别器时获胜。

  • 00:05:00 在本节中,讲师解释了 GAN 背后的高级概念,其中涉及两个网络 - 鉴别器和生成器 - 相互竞争。与瓶颈在中间的自动编码器不同,GAN 在生成器和鉴别器之间的中间有一些更高维的东西。生成器的输入是从多元高斯中采样的某种随机噪声向量。然后向生成器提供潜在噪声变量,并决定如何为其分配随机意义,以便生成大量输入或大量真实图像。鉴别器和生成器网络通过梯度下降联合训练,在两者之间交替,目的是愚弄另一个网络。

  • 00:10:00 在本节中,讲师解释了 GAN 的工作原理,即通过给定真实和虚假数据的网络来训练生成器找出使图像看起来真实的模式。鉴别器是判断图像是真还是假的,随着它的学习,它开始注意到模式并更新它的判断。希望生成器通过创建在场景上下文中有意义的具有更多形状或对象的东西来学习改进自身。 GAN 的损失函数仅包含来自鉴别器的分类损失,而生成器得分则与之相反。为了训练生成器,鉴别器需要善于判断图像以向生成器提供反馈。

  • 00:15:00 在本节中,讲师解释了鉴别器能够准确分类图像以改进生成器的重要性。鉴别器可能需要比生成器更新得更多,因此它可以辨别真实图像和生成图像之间有意义的差异。讲师然后分解损失函数,它对应于负交叉熵损失,生成器想要最小化它而鉴别器想要最大化它。生成器在其数据看起来真实时获胜,而鉴别器在正确区分真假图像时获胜。这两个网络处于博弈论场景中,它们相互竞争以取得进步并变得更好。

  • 00:20:00 在视频的这一部分,演示者解释了 GAN 中价值函数的概念,它与传统机器学习模型中使用的损失函数相反。值函数表示生成器的性能如何,需要鉴别器通过正确分类假数据和真实数据来最大化。生成器的权重在第一步中被冻结,以便鉴别器可以在真实和虚假数据的批次上进行训练。在第二步中,鉴别器被冻结,生成器的权重被更新以生成稍微好一点的假图像。重复此过程,直到生成器生成逼真的图像,即使鉴别器也无法将其归类为假图像。

  • 00:25:00 在本节中,演讲者讨论了条件 GAN,它提供了一种生成图像的解决方案,可以更好地控制生成的类。当前的 GAN 设置需要反复随机地喂给生成器,直到生成所需的对象或图像,但对于具有更多类的数据集,这种方法并不理想。通过将 one-hot 向量附加到随机噪声向量,这允许生成器对正在生成的类有更多的控制。 one-hot 向量对应于所需的类别,并且生成器经过训练以生成具有该特定类别的图像。

  • 00:30:00 在讲座的这一部分,演讲者讨论了激励生成器使用条件 GAN 模型中的特定特征的想法。演讲者解释说,仅仅告诉生成器生成特定图像是不够的,因为生成器没有动机使用给定的信息。解决方案是也为鉴别器提供相同的标签,为其创建一种策略来识别生成的图像是否与其标签相对应。这迫使生成器注意标签,因为它希望避免被鉴别器检测到,从而导致输出与给定标签相匹配。还讨论了生成器和鉴别器的架构。

  • 00:35:00 在这种情况下,生成器的权重最终会变为零。此外,生成器可能会失误并陷入模式崩溃,在这种情况下,它只输出一小部分示例,可以很好地愚弄鉴别器。这个问题的出现是由于判别器学习超清晰的决策边界,并且生成器被激励重复输出那些假的例子。最后,GAN 还存在训练过程问题,因为它们的普通设置不会收敛,并且它们的损失函数变得平坦。

  • 00:40:00 在本节中,讲师讨论了 GAN 的一些常见问题,这些问题可能会使它们难以训练。一个问题是,生成器和鉴别器之间总会有一个权衡,鉴别器试图过度拟合真实图像中的特定特征,并且没有明确的方法知道 GAN 何时完成训练。然后,讲师介绍了非饱和损失,这是对生成器目标的简单重新表述,并解决了当鉴别器将生成的图像识别为假图像时,生成器仅获得小偏导数的问题。非饱和损失最大化替代项并允许生成器有更多的代理来改变。

  • 00:45:00 在本节中,讲师解释了 GAN 中使用的交叉熵损失背后的数学技巧。生成器的目标不是盲目地尝试最小化负交叉熵损失,而是使用二元类交叉熵损失来最大化被分类为一个的概率。这种非饱和损失提供了更大的生成器梯度,使我们能够在鉴别器刚刚关闭生成器时更快地进行训练。然而,讲师指出这是高级材料,没有测验或作业,但他们可以更多地讨论高级 GAN 训练技术。
CS 198-126: Lecture 10 - GANs
CS 198-126: Lecture 10 - GANs
  • 2022.12.03
  • www.youtube.com
Lecture 10 - GANsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal/modern-cv t...
 

CS 198-126:第 11 讲 - 高级 GAN



CS 198-126:第 11 讲 - 高级 GAN

这个关于高级 GAN 的讲座涵盖了提高 GAN 模型的稳定性和质量的各种技术,包括双线性上采样、转置卷积、条件 GAN、StyleGAN 和 CycleGAN。本讲座还讨论了在 GAN 中使用受控随机噪声、自适应实例归一化和处理视频。为了获得更好的稳定性和结果,讲师建议在测试期间使用更大的批量大小并截断随机噪声的范围,同时警告不要过度削弱鉴别器。此外,建议从广泛分布的不同大小的潜在空间开始,以生成各种图像。最后,讲座涉及 Big Gan,它有助于生成非常大规模的 GAN。

  • 00:00:00 在本节中,演讲者介绍了计算机视觉背景下的 GAN 主题,并讨论了计算机视觉 GAN 架构的构建。演讲者重点介绍鉴别器(分类 CNN)和生成器(由于需要对潜在矢量图像进行上采样,因此更具挑战性)。演讲者还讨论了下采样和上采样技术,包括最近邻上采样,这是一种简单的方法,会复制现有特征图上的每个单元格,从而导致图像模糊。

  • 00:05:00 在本节中,讲师讨论了对 GAN 中的生成器进行特征图上采样的方法。他首先描述了双线性上采样,其中通过获取更大的空特征图并用其所有最近邻居的平均值填充它来创建新的特征图。然后他引入了转置卷积,它用如此多的填充填充特征图,以至于当卷积窗口在其上滑动时,输出特征图最终大于输入。讲师指出,这些是对特征图进行上采样的最常见方法,通常足以使生成器变得更大。

  • 00:10:00 在讲座的这一部分,演讲者讨论了条件 GAN 以及如何在生成器中处理它们。生成器的输入现在包括一个潜在向量和一个条件向量,告诉它要生成什么。演讲者建议将向量连接在一起或在连接它们之前单独处理它们。他们还简要介绍了将多项内容传递给鉴别器。然后讲座过渡到 StyleGAN,这是一种新的生成器架构,包括艺术天赋和在卷积操作之前对潜在向量的预处理。

  • 00:15:00 在本节中,演讲者讨论了需要提供潜在的信息,让所有不同的卷积都能访问其中编码的样式,从而产生更好的纹理。纹理是随机噪声,为模型提供随机源会容易得多。本节介绍所使用的架构,它将生成器分解为两个不同的组件。第一个是所需的,其潜在向量输入生成器。引入 desired component 是为了对 latent 进行预处理,以解决 latent spaces 无法使用的问题,这使得某些图像难以生成。预处理涉及将潜在通过密集层传递,直到我们有一个新的修改后的潜在称为 W。

  • 00:20:00 在本节中,视频讨论了自适应实例规范化 (AdaIN) 的概念以及它如何将样式引入网络。 AdaIN 取代批标准化并使用样式向量来指示重新缩放和重新偏置的程度,从而获得更有意义的结果。样式向量通过一个全连接层传递,该层用于重新缩放和重新偏置所有激活。最终目标是通过生成大量纯随机噪声的特征图来增加对随机性的访问。

  • 00:25:00 在本节中,讲师讨论了向每个特征图添加受控随机噪声,使网络能够根据学习到的 B 值按比例增加或减少噪声量。这种受控的随机噪声有助于产生更好的纹理和瑕疵,从而产生个别的毛发和皱纹。在每次卷积之后添加受控噪声,并允许网络控制噪声的大小。讲座还讨论了样式 GAN 的新创新,包括集成到每一层的潜在向量,以及使用自适应实例归一化来慢慢介绍样式。

  • 00:30:00 在本节中,讲师讨论了两种高级 GAN 技术:StyleGAN 和 CycleGAN。 StyleGAN 通过随机噪声生成在纹理上有巨大改进的随机人脸,而 CycleGAN 将图像从一个数据集传输到另一个数据集。一个损失项专用于转换图像的真实性,另一个衡量图像是否可以恢复到其原始状态。 CycleGAN 可以拍摄逼真的照片并将其转变成莫奈的画作,将斑马变成马,还可以改变画面的季节。虽然视频中的帧之间没有一致性,但该技术仍然可以产生不错的结果。

  • 00:35:00 在本节中,演讲者解释说,视频可用于训练鉴别器以识别真假视频,但与图像处理相比,它需要大量计算。视频应该逐帧处理,但可以跳过一些帧以提高处理效率。鉴别器可用于确保生成的视频从一帧到另一帧的一致性。此外,演讲者建议在一些演示中使用 GAN 模型时要小心,例如将猴子变成马,因为它可能并不总是有效,结果可能不如预期。最后,演讲者讨论了当更大的批量和更多的数据被投入更大的模型时 GAN 如何扩展,并解释了稳定性、可靠性、多样性和质量之间的一些权衡。

  • 00:40:00 在本节中,讲师讨论了使用 GAN 获得更好稳定性和结果的一些技巧。提高稳定性的一个关键是使用更大的批量大小,这对于 GAN 等复杂任务特别有用。另一个技巧是在测试期间截断随机噪声的范围,以避免出现超出模型经验的结果。然而,这伴随着限制生成图像的多样性的权衡。讲师还强调,在训练过程中接受一些不稳定性对于取得好的结果是必要的,并警告不要过度削弱鉴别器。

  • 00:45:00 在本节中,演讲者告诫不要对潜在空间使用窄分布,因为生成器可能会重复生成相似的图像,从而更难生成各种图像。演讲者建议从广泛分布的不同大小开始,让模型对如何生成图像有一个很好的初步想法。此外,他们还认为,除了随机生成单个图像之外,鉴别器功能还可以通过多种不同方式发挥作用。最后,他们介绍了 Big Gan,它有助于生成非常大规模的 GAN。
CS 198-126: Lecture 11 - Advanced GANs
CS 198-126: Lecture 11 - Advanced GANs
  • 2022.12.03
  • www.youtube.com
Lecture 11 - Advanced GANsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal/mo...
 

CS 198-126:第 12 讲 - 扩散模型



CS 198-126:第 12 讲 - 扩散模型

在本次关于扩散模型的讲座中,演讲者讨论了扩散模型背后的直觉——预测添加到图像中的噪声并将其去噪以获得原始图像。讲座涵盖训练过程、增强架构以及生成图像和视频的扩散模型示例。此外,本讲座深入探讨了潜在扩散模型,该模型将模型压缩到潜在空间中以在图像的语义部分上运行扩散。演讲者还概述了相关模型,例如 Dolly Q、Google 的 Imagine 模型和 Facebook 的 Make a Video,以及它们使用文本生成 3D 模型的能力。

  • 00:00:00 在视频的这一部分,演讲者介绍了扩散模型,这是一类新的生成模型。他们解释说,生成模型的目标是学习给定数据集的潜在分布,以便可以从相同的分布生成新数据。演讲者还提到了学习分布的两种主要方法:最大化似然或最小化散度度量。本次讲座将深入探讨扩散模型背后的数学原理,演讲者指出本次讲座将比之前的讲座更多地涉及数学。

  • 00:05:00 在关于扩散模型的讲座的这一部分,演讲者讨论了变分自动编码器 (VAE) 和生成对抗网络 (GAN) 在模拟数据分布的分布建模中的使用。演讲者解释说,这两种模型的工作原理都是从随机噪声中抽取样本,并将其转换成看起来像是来自数据分布的东西。然而,扩散模型在此过程中采取多个小步骤而不是一个大步骤,这会创建一个更易于分析的马尔可夫链。扩散模型有一个前向过程,在这个过程中,噪声被添加到图像中,然后更多的噪声被添加以创建图像的噪声版本。还有一个反向过程,图像被去噪以返回原始图像。

  • 00:10:00 在视频的这一部分,讲师解释了扩散模型中反向处理的概念,其中可以通过反转噪声步骤的顺序来生成新图像。挑战在于找到反向分布,使用精确分布很难计算,因此通过Q函数和P函数进行近似。 P 函数由神经网络表示,它试图学习反向分布的均值和方差,假设为高斯分布。该视频还介绍了扩散模型的训练过程,该过程需要最小化或最大化损失函数。

  • 00:15:00 在讲座的这一部分,演讲者讨论了变分变分下界在扩散模型中的应用,这导致损失函数类似于较小损失函数的总和。他们解释说 L of 0 到 L of T-1 对损失有贡献,他们将专注于分析 L of T,这是从 1 到 T-1 定义的。演讲者继续解释了 T-1 的 X 的 Q 与神经网络试图预测的分布之间的 KL 散度如何产生一个术语,该术语衡量学习均值与条件分布均值之间的 L2 损失。扩散论文的作者建议以与 T-1 的 X 的 Q 类似的形式参数化 theta 的 mu,即学习的 mu,以简化表达式并使预测单个项成为可能,而不是预测红色框中的所有内容。

  • 00:20:00 在本节中,讲师解释了扩散模型背后的主要直觉,即预测添加到图像中的噪声,然后对其进行去噪以恢复原始图像。目标是最小化原始噪声和预测噪声之间的噪声,训练过程包括向数据集中的图像添加噪声,将它们通过模型,预测噪声,并最小化预测噪声和实际噪声之间的距离。然后,该模型可用于通过从随机噪声开始并使用预测噪声对其进行去噪来合成新图像。讲师还指出,被扩散的变量 X of T 不一定是图像。

  • 00:25:00 在本节中,演讲者讨论了扩散模型及其预测具有与输入/输出相同维度的图像噪声的能力。一个具有相同维度的模型与分割讲座中使用的单位相同。然而,该论文的作者在模型中添加了许多现代 CV 技巧,包括 resnet 块、注意力模块、握力规范和 swish 激活。他们能够证明它工作得很好,并且在后来的论文中使用了更多的时间步来进一步提高其质量。演讲者还提供了一张图片和包含模型架构的幻灯片的链接。

  • 00:30:00 在本节中,解释了研究人员通过修改控制前向过程中噪声添加的 beta 参数,找到了一种改进使用扩散模型进行图像生成的结果的方法。他们不使用线性计划,而是建议使用较慢的余弦函数,然后逐渐增加以将图像缓慢转换为噪声,从而帮助模型更好地学习反向过程。此外,通过神经网络学习协方差矩阵,可以提高对数似然并获得更好的似然,这可以被视为多样性的度量。

  • 00:35:00 在讲座的这一部分,演讲者讨论了一些可以对单元模型进行的架构改进,单元模型在不同的论文中很常用。这些改进包括增加模型大小、使用注意力模块和自适应规范化。演讲者还介绍了分类指导的概念,其中涉及训练分类器从原始图像和噪声图像中预测类别标签,并使用生成的梯度来改进扩散模型。最后,演讲者提到了使用 FID、精确率和召回率等指标来衡量生成模型的质量。

  • 00:40:00 在本节中,演讲者讨论了扩散模型如何在图像建模中超越 GAN 模型,因为它能够捕获更好的保真度和数据分布的多样性。他们展示了火烈鸟的图像,其中 GAN 图像看起来非常相似,而扩散图像在其输出中显示出更多的多样性,表明更好的图像建模能力。演讲者还提到,研究人员已经提出了更好的方法来通过称为无分类器指导的过程来指导扩散模型,在该过程中训练条件扩散模型以避免以多样性换取更高的质量,这是在某些条件下对模型进行调节时固有的类标签。

  • 00:45:00 在本节中,讲师讨论了潜在扩散模型的概念,这是用于训练高维图像的另一类扩散模型,因为在这种情况下训练大型扩散模型是不可行的。讲师解释说,研究人员发现更多的位用于捕获像素级细节,而更少的位用于捕获图像的一些无用的语义细节。为了准确地生成图像,必须在图像的语义部分上运行生成模型。讲师概述了如何实现这一点,其中涉及学习潜在空间并将模型压缩到潜在空间以在其上运行扩散。这允许使用编码器和解码器模型将图像转换为潜在图像并返回图像。

  • 00:50:00 在本节中,演讲者讨论了与扩散相关的几种模型,包括 Dolly Q、通过 Google 的 Imagine 模型生成图像,以及通过 Facebook 的 Make a Video 生成视频。此外,谷歌还扩展了 Imagine 模型以生成视频。根据今年早些时候发布的一篇论文,演讲者还提到了使用文本生成 3D 模型以及将视觉应用于 RL 的能力,这在离线 RL 中实现了最先进的结果。演讲者提供了论文和资源的链接以供进一步学习。
CS 198-126: Lecture 12 - Diffusion Models
CS 198-126: Lecture 12 - Diffusion Models
  • 2022.12.03
  • www.youtube.com
Lecture 12 - Diffusion ModelsCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.edu/decal...