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

 

走向奇点 - 神经科学启发人工智能




走向奇点 - 神经科学启发人工智能

本视频讨论了人工智能达到通用智能的潜力,以及在此过程中需要克服的各种挑战。
它还讨论了将机器人视为一个物种的可能性,以及这种方法的优缺点。

  • 00:00:00 大脑是一个复杂的器官,负责许多不同的任务。最近的研究表明,大脑还能够执行曾经被认为对人类来说很困难的简单任务。这表明大脑不仅仅是一种智力,还包含大量的计算复杂性。

  • 00:05:00 作者讨论了在系统层面理解大脑的困难,以及科学家如何使用斑马鱼来了解正常大脑发育是如何发生的。他接着说,基于我们对大脑工作原理的了解,人工智能最终将能够更有机地发展自己。

  • 00:10:00 大脑与计算机的结构非常不同。一台计算机基本上有 CPU 与内存分开,并将 CPU 与内存连接起来,你有这个东西叫做总线,内存总线。并且内存总线在计算机开机时全时连续工作。这实际上是一个瓶颈。所以CPU可以很强大,内存可以很大,但是
    您可以在两者之间传输多少信息是有限的。这是标准计算机整体能力的一个非常有限的因素。相比之下,大脑以大规模并行的方式大量工作,每个神经元一直都在尽力而为。即使是我们目前拥有的最好的人工智能,仍然与大脑非常非常不同。它是……你可能会说它是受大脑启发的,但它不是复制大脑。大脑中有大量的反馈连接。很明显,当我们处理感官输入时,它会进入更高的大脑区域,并从我们看到的原始输入中得到进一步处理和抽象。但是也有大量的反馈从那些更高的区域返回到感知区域。而这种反馈指导我们寻找和

  • 00:15:00 视频讨论了人工智能的概念,讨论了在世界上拥有它的利弊。它接着说,人工智能是一种很有前途的方法,但它需要技术的飞跃才能实现准确性和可靠性。

  • 00:20:00 该视频讨论了用于激发人工智能的神经科学的进步,以及这如何帮助创造与人类一样聪明的机器人。然而,该技术在广泛部署之前还有一段路要走。

  • 00:25:00 人工智能在社交机器人的开发中发挥着重要作用,这些机器人可以在日常生活中理解、表现并与人交流。目前的世界是为人类设计的,因此设计具有类人形态或了解人类世界如何运作的机器人可以使这些机器人更容易融入社会,同时也可以创造一些价值和利益,而无需重建建筑物或任务或世界为适应人类而设计的方式。

  • 00:30:00 该视频讨论了神经科学如何激发人工智能的进步,包括深度学习和具身认知。具身认知与笛卡尔“我思故我在”的思想相反。机器人技术最终将与社会更加紧密地结合,人工智能将成为科学的“非常有用的工具”。

  • 00:35:00 该视频讨论了“通用人工智能”或 AGI 的概念,即机器达到有能力的成年人的智能水平的能力。虽然“图灵测试”——一种衡量机器是否可以愚弄某人以为它是人类的考试——的有效性仍然存在争议,但大多数研究人员认为,机器有必要达到这种智能水平。

  • 00:40:00 该视频讨论了人工智能渗透到我们生活中越来越多部分的潜力,以及谨慎管理人工智能以使其不会自行做出决定的重要性。它表明人工智能最终将成为一种公共事业,并讨论了人们可以通过广播和视频进行这种讨论的方式。

  • 00:45:00 作者认为,政府必须积极投资人工智能和机器人技术,因为这是一项巨大的投资,可能会对社会产生巨大的影响。然而,如果处理不当,机器人可能会导致大量失业。他还指出,社会需要适应即将到来的机器人革命,因为目前由人类完成的工作将被机器取代。

  • 00:50:00 作者讨论了人工智能的潜力和奇点,这是机器智能超越人类智能的地方。他们指出,虽然这项技术还有些推测性,但很可能在未来 200 年内实现。尽管许多人可能持怀疑态度,但知情人士同意这肯定会发生。

  • 00:55:00 本视频讨论了人工智能达到通用智能的潜力,以及在此过程中需要克服的各种挑战。它还讨论了将机器人视为一个物种的可能性,以及这种方法的优缺点。

  • 01:00:00 演讲者概述了与人工智能进步相关的潜在风险和好处,并讨论了人工智能失控并消灭人类的假设情况。该领域的大多数研究人员并不关心这种威胁,而是关注人工智能的潜在好处。
 

斯坦福 CS230:深度学习 | 2018 年秋季 |第 1 讲 - 课堂介绍与后勤,Andrew Ng




斯坦福 CS230:深度学习 | 2018 年秋季 |第 1 讲 - 课堂介绍与后勤,Andrew Ng

斯坦福CS230深度学习课程讲师Andrew Ng对课程进行了介绍,并对翻转课堂的形式进行了讲解。他强调了深度学习由于数字记录的增加而突然流行,从而允许更有效的深度学习系统。该课程的主要目标是让学生成为深度学习算法的专家,并了解如何应用它们来解决现实世界的问题。 Ng 强调实用知识在构建高效且有效的机器学习系统中的重要性,并希望系统地教授和推导机器学习算法,同时以正确的流程有效地实施它们。该课程将通过 Coursera 上的视频和 Jupyter 笔记本上的编程作业涵盖卷积神经网络和序列模型。

斯坦福大学 CS230 深度学习课程的第一讲介绍了将通过编程作业和学生项目开发的各种实际应用程序,这些应用程序可以根据学生的兴趣进行个性化和设计。过去学生项目的例子包括从自行车价格预测到地震信号检测。期末项目被强调为课程最重要的方面,助教团队和讲师提供个性化指导。还讨论了课程的后勤工作,包括为小组项目组建团队、在 Coursera 上参加测验,以及将课程与其他课程结合起来。

  • 00:00:00 斯坦福CS230讲师Andrew Ng介绍课程并讲解翻转课堂模式。在本课程中,学生将在家中观看 Coursera 上的 deeplearning.ai 内容,并在课堂和讨论部分时间参与更深入的讨论。 Ng 介绍了教学团队,包括联合讲师 Kian Katanforosh,深度学习专业的联合创始人,班级协调员 Swati Dubei,课程顾问兼首席助教 Younes Mourri,以及联合负责人 Aarti Bagul 和 Abhijeet助教。 Ng 解释了深度学习的突然流行,并指出社会的数字化导致数据收集的增加,让学生有机会构建比以往更有效的深度学习系统。

  • 00:05:00 在本节中,Andrew Ng 解释说,数字记录的增加导致数据激增,但传统的机器学习算法即使在输入更多数据时也会停滞不前。然而,随着神经网络变得越来越大,它们的性能会越来越好,直到达到称为基本错误率的理论极限。随着 GPU 计算和云服务的出现,获得足够大的计算能力使更多的人能够训练足够大的神经网络,以在许多应用程序中提高准确性。虽然深度学习只是 AI 众多工具中的一种,但它之所以如此受欢迎,是因为它始终如一地提供出色的结果。

  • 00:10:00 在本节中,讲师解释了除了深度学习之外,研究人员在 AI 中使用的工具和技术有多种,例如规划算法和知识表示。然而,由于使用海量数据集和计算能力,以及算法创新和大量投资,深度学习在过去几年中飞速发展。 CS230 的主要目标是让学生成为深度学习算法方面的专家,并了解如何应用它们来解决现实世界的问题。这位讲师拥有在谷歌、百度和 Landing AI 领导成功的人工智能团队的实践经验,他还强调了学习机器学习实践知识方面的重要性,他说这可能不会在其他学术课程中涵盖。

  • 00:15:00 在本节中,Andrew Ng 谈到了实用知识在构建机器学习系统时做出高效决策的重要性。他强调了一个伟大的软件工程师和一个初级软件工程师在高层判断决策和架构抽象方面的区别。同样,他强调了了解何时收集更多数据或在深度学习系统中搜索超参数以做出更好的决策的重要性,这些决策可以将团队效率提高 2 到 10 倍。他旨在通过系统的教学将这些实用知识传授给课程中的学生,并向有一点机器学习背景的学生推荐他的书《机器学习向往》。

  • 00:20:00 在本节中,Andrew Ng 讨论了他的新书“机器学习渴望”的草稿,他说这本书试图收集最好的原则,以从机器学习中创建一个系统的工程学科。 Ng 还解释了课程的翻转课堂形式,学生可以在自己的时间在线观看视频和完成测验,并参加每周一次的课程,与助教、Kian 和他自己进行更深入的互动和讨论。他接着谈到了人工智能和机器学习的重要性,并表示他相信它将改变每个行业,就像一个多世纪前电力改变多个领域一样。

  • 00:25:00 在视频的这一部分,斯坦福大学 CS230 深度学习课程的讲师 Andrew Ng 表示,他希望学生们能够利用他们新发现的深度学习技能来改造传统科技领域以外的行业,例如医疗保健、土木工程和宇宙学。他通过研究互联网的兴起分享了一个宝贵的教训,即建立网站并不能将实体企业转变为互联网公司;相反,真正定义互联网公司的是团队的组织和互联网特定实践的结合,例如普遍的 A/B 测试。

  • 00:30:00 在这段文字记录中,吴恩达讨论了传统公司与互联网和人工智能公司之间的区别。他解释说,互联网和人工智能公司倾向于将决策权下放到工程师或工程师和产品经理手中,因为这些人最接近技术、算法和用户。 Ng 还提到了组织团队来完成现代机器学习和深度学习所允许的事情的重要性。此外,吴恩达描述了人工智能公司如何倾向于以不同的方式组织数据并专注于发现自动化机会。最后,他指出机器学习的兴起创造了新的角色,例如机器学习工程师和资源机器学习研究科学家。

  • 00:35:00 在这一部分,Andrew Ng 强调了在 AI 时代有效的团队组织对于做更多有价值的工作的重要性。他对软件工程界必须如何开发敏捷开发、Scrum 流程和代码审查来创建高效构建软件的高性能工业 AI 团队进行了类比。 Ng 希望系统地教授和推导机器学习算法,并以正确的流程有效地实施它们。最后,吴恩达指导有志于学习机器学习的人们选择哪些课程来实现他们的目标。

  • 00:40:00 在本节中,Andrew Ng 讨论了 CS229、CS229A 和 CS230 之间的区别。 CS229 是这些课程中最数学的,侧重于算法的数学推导。 CS229A 是应用机器学习,在实践方面花费更多时间,是机器学习最简单的入口,而 CS230 介于两者之间,比 CS229A 更数学但不如 CS229。 CS230 的独特之处在于它专注于深度学习,这是机器学习中最难的子集。 Andrew Ng 希望花更多时间教授应用这些算法的实用知识,而不是仅仅专注于数学,从而设定了准确的期望。

  • 00:45:00 在本节中,Andrew Ng 介绍了 AI 和机器学习的概念,它们在后台消失并成为我们可以使用的神奇工具,而无需考虑使其成为可能的学习算法。他讨论了机器学习在医疗保健、制造、农业和教育领域的重要性,在这些领域中,可以使用学习算法实现对编码家庭作业的精确辅导和反馈。 CS230 的课程形式包括在 Coursera 上观看 deeplearning.ai 视频以及斯坦福大学 Kian 的额外讲座,以获得更深入的知识和实践。该课程分为五门课程,向学生讲授神经元、层、构建网络、调整网络和 AI 的工业应用。

  • 00:50:00 在本节中,Andrew Ng 介绍了课程涵盖的主题和教学大纲的结构。该课程分为两部分,重点介绍用于图像和视频的卷积神经网络,以及序列模型,包括用于自然语言处理和语音识别的递归神经网络。每个模块都将包括 Coursera 上的视频、Jupyter Notebook 上的测验和编程作业。出勤率占期末成绩的 2%,8% 用于测验,25% 用于编程作业,很大一部分用于期末项目。

  • 00:55:00 在本节中,Andrew Ng 解释了学生将在课程中进行的编程作业。学生将手语图像翻译成数字,成为快乐之家的深度学习工程师,并使用 YOLOv2 对象检测算法创建网络。他们将致力于优化守门员的射门预测,在自动驾驶时检测汽车,进行人脸识别和风格转换,并创建一个序列模型来生成爵士乐和莎士比亚诗歌。讲师为学生提供每个项目相关论文的链接。

  • 01:00:00 在本节中,演讲者讨论了将通过编程作业在课程中构建的各种应用程序,以及学生在整个课程中选择自己的项目的机会。给出了过去学生项目的示例,包括为黑白图片着色、自行车价格预测和地震前兆信号检测。鼓励学生建立自己的项目并为他们的项目感到自豪,因为最终项目是课程中最重要的方面。该课程已应用,涉及一些数学,并且可通过助教团队和讲师提供个性化指导。

  • 01:05:00 在本节中,讲师解释了课程的后勤细节,包括如何创建 Coursera 帐户、要完成的作业以及如何为课程项目组建团队。项目团队将由一到三名学生组成,具有挑战性的项目除外。只要与讲师讨论,学生就可以将该项目与其他课程结合起来,并且可以在 Coursera 上重新参加测验,最后一次提交的测验将被考虑用于 CS230 课程。
 

第 2 讲 - 深度学习直觉



斯坦福 CS230:深度学习 | 2018 年秋季 |第 2 讲 - 深度学习直觉

讲座的第一部分重点介绍深度学习的各种应用,包括图像分类、人脸识别和图像风格迁移。讲师解释了各种因素(例如数据集大小、图像分辨率和损失函数)在开发深度学习模型中的重要性。还讨论了使用深度网络对图像进行编码以创建有用表示的概念,重点是人脸识别中使用的三元组损失函数。此外,讲师还解释了使用 K-Means 算法进行图像分类的聚类以及从图像中提取样式和内容。总体而言,本部分向学生介绍了开发成功的深度学习模型所涉及的各种技术和注意事项。

视频的第二部分涵盖了各种深度学习主题,例如生成图像、语音识别和对象检测。演讲者强调了在遇到问题时咨询专家的重要性,以及成功的深度学习项目的关键要素:战略数据采集管道和架构搜索以及超参数调整。该视频还讨论了深度学习中使用的不同损失函数,包括对象检测损失函数,该函数包含一个平方根,可以比大盒子上的错误更严重地惩罚较小盒子上的错误。该视频最后回顾了即将到来的模块和作业,包括强制性的 TA 项目指导课程和周五的 TA 部分,重点是神经风格迁移和填写 AWS 表格以获得潜在的 GPU 学分。

  • 00:00:00 在本节课中,目标是提供一种系统的方法来思考与深度学习相关的项目。这涉及决定如何收集和标记数据、选择架构以及设计适当的损失函数以进行优化。模型可以定义为架构加参数,其中架构是为模型选择的设计,参数是使函数接受输入并将其转换为输出的数字。损失函数用于将输出与ground truth进行比较,并计算损失函数的梯度来更新参数以提高识别度。在深度学习的背景下,很多事情都会发生变化,包括输入、输出、架构、损失函数、激活函数、优化循环和超参数。逻辑回归是第一个讨论的架构,图像可以表示为计算机科学中的 3D 矩阵。

  • 00:05:00 在视频的这一部分,讲师讨论了用于对猫的图像进行分类的神经网络的基本结构,以及如何对其进行修改以通过使用多逻辑回归对多种动物进行分类。强调了正确标记数据的重要性,并引入了 one-hot encoding 的概念,其缺点是只能对提到一种动物的图像进行分类。还提到了使用 Softmax 作为多热编码的激活函数,并解释了课程中用于层和神经元索引的符号。

  • 00:10:00 在本节中,讲师解释了深度学习如何从网络中的每一层提取信息,以及如何将其用于输入数据的编码。他使用人脸识别和图像分类的示例来围绕深度学习的具体应用建立直觉。讲师还讨论了对给定问题所需图像数量的估计,并建议它应该基于任务的复杂性而不是网络中的参数数量。

  • 00:15:00 在本节中,讲师讨论了如何确定深度学习项目所需的数据量,以及如何将数据拆分为训练集、验证集和测试集。讲师解释说,所需的数据量取决于任务的复杂程度以及项目涉及室内还是室外图像。平衡的数据集对于正确训练网络也很重要。还讨论了图像的分辨率,目标是在最大限度地降低计算复杂性的同时实现良好的性能。讲师建议比较人类在不同分辨率下的表现,以确定所需的最低分辨率。最终,确定 64 x 64 x 3 的分辨率足以满足所用示例图像的要求。

  • 00:20:00 在本节中,讲师讨论了一个基本的图像分类问题,其中的任务是检测图像是在白天还是晚上拍摄的。模型的输出应该是图像的标签,其中 Y 等于 0 代表白天,Y 等于 1 代表夜晚。此任务的推荐架构是浅层全连接或卷积网络。应该使用的损失函数是对数似然,它比分类问题的其他损失函数更容易优化。然后,讲师将这个基本概念应用到一个真实场景中,目标是在健身房等设施中使用人脸验证来验证学生 ID。此问题所需的数据集将是一组图像,用于与 ID 刷卡期间相机捕获的图像进行比较。

  • 00:25:00 在深度学习讲座的这段摘录中,演讲者讨论了使用面部识别作为验证健身者身份的手段的想法。演讲者建议,为了训练系统,学校需要每个学生的照片,标有他们的名字,以及每个学生的更多照片以供模型输入。在讨论分辨率时,演讲者建议需要更高的分辨率(大约 400 x 400),以便更好地检测细节,例如眼睛之间的距离或鼻子的大小。最后,演讲者指出,由于光照或其他因素(例如化妆或面部毛发)的变化,通过像素之间的简单距离比较来确定两个图像是否是同一个人是行不通的。

  • 00:30:00 在讲座的这一部分,讲师讨论了使用深度网络对图像进行编码以创建有用的图片表示的过程。目标是创建一个表示图像关键特征的向量,例如面部特征、颜色和头发之间的距离。这些向量用于比较同一主题的不同图像并确定匹配项。讲师解释了最小化anchor和positive图片之间的距离,同时最大化anchor和negative图片之间的距离的过程,以便为深度网络生成一个有用的损失函数。损失函数对于训练网络识别特定特征并做出准确预测至关重要。

  • 00:35:00 在本节中,讲师讨论了人脸识别中使用的三元组损失函数。损失计算为A和N的编码向量之间的L2距离减去A和N的编码向量之间的L2距离。目的是最大化A和N的编码向量之间的距离,同时最小化差异介于A和P之间。真正的损失函数包含alpha,它除了防止负损失外还有一个特定的作用。讲师解释说,在损失函数中使用 alpha 会增加损失函数某些部分的权重。目标是找到一个代表人脸特征的编码,优化算法的目标是在多次通过后最小化损失函数。
     
  • 00:40:00 在本节中,讲师解释了在网络损失函数中使用 alpha 项。这个 alpha 项被称为 Margin,其目的是惩罚大权重并使网络稳定在零上。但是,它不会影响梯度或权重。这个 alpha 项的目的是推动网络学习一些有意义的东西,而不是学习一个空函数。讲师还讨论了人脸验证和人脸识别之间的区别,并建议在流水线中添加检测元素可以提高人脸识别。 K 最近邻算法可用于将输入的人脸向量与数据库中的向量进行比较以识别个体。

  • 00:45:00 在本节中,讲师解释了聚类,更具体地说是 K-Means 算法及其在图像分类中的应用。他解释了该算法如何获取数据库中的所有向量并将它们聚类到看起来相似的组中。例如,这可用于将手机上不同文件夹中不同人的照片分开。他还讨论了在算法中定义 K 参数的方法以及如何使用不同的方法。讲师还讨论了艺术生成,这涉及生成一幅图像,该图像是一幅图像的内容,但使用另一幅图像的风格绘制,并使用该风格的数据。讲师使用卢浮宫博物馆作为内容图像的示例,并使用克劳德莫奈的画作作为风格图像。

  • 00:50:00 在本节中,演讲者讨论了如何使用深度学习技术从图像中提取样式和内容。他们解释说,虽然一种方法是训练网络学习一种特定风格,但首选方法是学习图像。这涉及提供内容图像并使用经过图像识别训练的神经网络提取有关其内容的信息。为了提取风格信息,演讲者介绍了 Gram 矩阵的使用,并解释了风格是非本地化信息。通过组合提取的内容和风格,可以在保留内容的同时生成具有给定图像风格的图像。演讲者强调,这项技术涉及到一直反向传播到图像,而不仅仅是学习网络的参数。

  • 00:55:00 在本节中,讲师讨论了使用 Gram 矩阵方法提取风格的损失函数,以及如何使用风格图像的风格与生成的风格之间以及图像内容之间的 L2 距离来计算损失函数内容图像和生成的内容。讲师强调,这个过程中使用ImageNet不是为了分类,而是为了给网络使用预训练好的参数。重点是使用白噪声训练图像,通过在网络中运行它并计算损失函数的导数以返回到图像的像素,从中提取内容 G 和风格 G。

  • 01:00:00 在本节中,演讲者讨论了训练网络以根据内容和风格图像生成图像的过程。虽然这个网络可以灵活地处理任何风格和任何内容,但每次生成图像时都需要一个新的训练循环。该网络在数百万张图像上进行了训练,不需要专门针对莫奈图像进行训练。该网络的损失函数来自内容和风格图像,其中基线从白噪声开始。然后,演讲者继续讨论触发词检测的应用,这需要大量 10 秒的音频剪辑,其中包括“激活”等正面词和“厨房”和“狮子”等负面词。

  • 01:05:00 在本节中,视频讨论了为语音识别选择最佳标记方案的过程。演讲者解释说,应该咨询语音识别专家以确定用于语音处理的最佳采样率,并提供了一个弱标签方案的示例,该方案使得难以检测口语句子中的触发词。演讲者演示了一种不同的标记方案,该方案使模型更容易检测触发词,但他指出,考虑数据集中的不平衡以及在每个时间步都需要 sigmoid 函数输出零或一。

  • 01:10:00 在视频的这一部分,演讲者讨论了构建成功的深度学习项目的两个关键因素。首先是拥有战略数据采集管道。一种方法是使用手机从校园周围收集包含各种口音的正面和负面词语的 10 秒录音。第二个关键要素是架构搜索和超参数调整。演讲者讲了一个故事,讲了他最初是如何使用傅立叶变换从语音中提取特征,然后与专家交谈并根据他们的建议对网络进行更改。他强调,找到合适的架构是一个复杂的过程,但不能放弃,应该咨询专家。

  • 01:15:00 在本节中,演讲者讨论了一个语音识别问题,以及他如何努力将神经网络拟合到数据上,直到他找到一位语音识别专家建议他正确使用傅里叶变换超参数,减少网络的大小并使用卷积来减少时间步数,以及扩展输出。他强调,在项目中遇到问题时,要多听取专家的意见,不要轻言放弃。然后演讲者简要提到了另一种解决和弦检测的方法,即使用三元组损失算法并将音频语音编码在某个向量中以比较这些向量之间的距离。最后,他讨论了一个漂亮的损失函数,它对应于对象检测并用于名为 YOLO 的网络,其中损失比较边界框的 x、y、宽度和高度。

  • 01:20:00 在视频的这一部分中,演讲者讨论了深度学习中的对象检测损失函数及其包含平方根的原因。损失函数包括几个项,旨在最小化真实边界框和预测边界框之间的距离,以及识别框中的对象类别。包含平方根是为了对较小盒子上的错误进行比较大盒子上的错误更严重的惩罚。该视频最后回顾了即将到来的模块和作业、强制性 TA 项目指导课程,以及周五的 TA 部分,重点是神经风格迁移和填写 AWS 表格以获得潜在的 GPU 学分。
 

第 3 讲 - 全周期深度学习项目



斯坦福 CS230:深度学习 | 2018 年秋季 |第 3 讲 - 全周期深度学习项目

在这个关于全周期深度学习项目的讲座中,讲师强调了考虑构建成功的机器学习应用程序的各个方面的重要性,包括问题选择、数据收集、模型设计、测试、部署和维护。通过构建声控设备的例子,讲师讨论了深度学习项目中涉及的关键组件,并鼓励学生专注于对各自领域具有潜在积极影响和独特贡献的可行项目。讲师还强调了快速收集数据、在整个过程中做好笔记以及在开发过程中进行迭代的重要性,同时还讨论了语音激活和语音活动检测的具体方法。

讲座的第二部分侧重于机器学习项目中监控和维护的重要性,特别是需要持续监控和更新模型以确保它们在现实世界中表现良好。讲师解决了数据变化的问题,这可能导致机器学习模型失去准确性,并强调需要持续监控、数据收集和模型重新设计,以确保模型继续有效地工作。该讲座还讨论了在语音活动检测系统中使用非 ML 系统与经过训练的神经网络的影响,并建议手动编码的规则通常对变化的数据更稳健。讲师总结说,在为再训练模型收集数据时,需要密切关注数据隐私并征得用户同意。

  • 00:00:00 在视频的这一部分,讲师通过解释构建成功的机器学习应用程序所涉及的步骤来介绍全周期深度学习项目的概念,而不仅仅是构建神经网络模型。他以构建声控设备为例,解释说第一步是选择一个问题,例如使用监督学习来构建应用程序。他还提到了学生们即将开展的项目,该项目涉及将语音激活设备作为本季度晚些时候的问题集。

  • 00:05:00 在讲座的这一部分,演讲者讨论了使用深度学习构建声控设备所涉及的关键组件,其中包括一种学习算法,可以检测触发词,例如“Alexa”、“OK Google”、 “嘿 Siri”或“激活”。演讲者概述了构建机器学习产品的重要步骤,从选择问题、获取标记数据、设计模型、在测试集上测试、部署和维护系统开始。演讲者强调,训练模型通常是一个迭代过程,构建一个伟大的模型除了机器学习的核心之外,还包括关注第一步、第六步和第七步。

  • 00:10:00 在讲座的这一部分,演讲者讨论了一个好的候选深度学习项目的属性。他以声控设备为例,谈到了 Echo 和 Google Home 等具有声控潜力的设备由于需要针对 Wi-Fi 进行设置而难以配置。他通过一种嵌入式设备解决了这个问题,该设备可以出售给电灯制造商,其中包括一个内置麦克风,可以通过对电灯本身发出简单的语音命令来打开和关闭。演讲者提到该项目需要构建一种学习算法,该算法可以在嵌入式设备上运行并检测用于打开和关闭灯的唤醒词。他进一步建议为这些设备命名以避免歧义。演讲者表示,虽然他没有参与这个项目,但它可能是初创公司追求的合理产品。

  • 00:15:00 在视频的这一部分中,主持人询问观众在选择深度学习项目创意时通常会注意哪些属性。然后,他继续分享他自己的清单,列出了在集思广益项目创意时要考虑的五个关键点。该部分的开头因回答系统的一些技术困难而分心,但主持人最终进入了手头的主题,鼓励观众反思自己的想法和优先事项。

  • 00:20:00 在视频的这一部分,吴教授分享了他关于如何选择深度学习项目的五个要点。他建议学生选择他们真正感兴趣的东西,并考虑数据的可用性。此外,他们应该利用自己的领域知识将机器学习技术应用于其领域的独特方面,做出独特的贡献。此外,他鼓励选择一个可以产生积极影响并为人们提供效用的项目,而不必关注金钱。最后,他强调可行性是评估任何机器学习项目或想法可行性的关键因素。 Ng 教授还举了一个对深度学习感兴趣的医生和放射学学生的例子,提醒他们利用他们在医疗保健放射学领域的知识可以创造更多独特的贡献,而不是仅仅从头开始。

  • 00:25:00 在本节中,讲师讨论了选择可行项目和获取数据以训练深度学习算法的重要性。他提出了一个场景,学生需要训练一个深度学习算法来检测某个初创项目的某些短语,并提示他们使用斐波那契数列方法估算收集数据所需的天数。还要求学生描述他们将如何收集所需数据。演示者的笔记本电脑遇到技术问题,建议使用 Firefox 浏览器作为替代方案。

  • 00:30:00 在这一段视频中,导师让学生分组讨论,并提出收集数据的最佳策略,并决定花多少天收集数据。他建议他们考虑训练他们的第一个模型需要多长时间,以及他们想花多少时间收集数据。讲师警告说,如果训练第一个模型需要一两天时间,他们可能希望在数据收集上花费更少的时间。他建议学生与他们的项目合作伙伴交谈,以制定数据收集计划。

  • 00:35:00 在本节中,讲师讨论了在处理机器学习项目时收集数据以测试算法如何工作之前收集下一个数据集的重要性。导师建议花 1-2 天的时间收集数据,并通过在斯坦福校园内走动或找朋友并让他们说出不同的关键词来获得便宜的麦克风来收集数据。他指出,在构建新的机器学习系统时,很难知道问题的难易程度。因此,有必要从一个基本的学习算法开始。

  • 00:40:00 在本节中,演讲者谈到了在机器学习开发过程中快速收集数据和迭代的重要性。他建议不要在数据收集上花费太多时间,并建议首先从较小的数据集开始,以了解什么是必要的。对所做的实验和每个模型的细节进行清晰的记录至关重要,这样研究人员就可以回顾以前的实验,而不是再次运行它们。此外,他建议进行文献搜索,以了解其他人在特定领域使用的算法,但警告说文献在某些领域可能不成熟。

  • 00:45:00 在本节中,讲师讨论了在从数据收集和模型设计到部署的整个深度学习过程中做好笔记的重要性。他以在边缘设备(如智能扬声器)上部署语音识别系统为例,强调了在计算和功率预算有限的低功率处理器上运行大型神经网络的挑战。到
    为了应对这一挑战,在将音频剪辑传递给更大的神经网络进行分类之前,使用了一种更简单的算法来检测是否有人在说话。这种更简单的算法称为语音活动检测 (VAD),是许多语音识别系统(包括手机中使用的系统)中的标准组件。

  • 00:50:00 在讲座的这一部分中,教授提出了一个问题,即是否使用基于非机器学习的语音活动检测系统或训练小型神经网络来识别项目的人类语音。他指出,小型神经网络可以以低计算预算运行,并建议检测某人是否在说话比识别他们说的话更容易。班上的学生有不同的意见,有些人认为选项一易于调试且简单,而选项二更适合检测狗叫声或人耳语等噪音。

  • 00:55:00 在本节中,讲师讨论了实现语音激活的两个选项,这是智能扬声器在有背景噪音时出现的问题。选项一是一种简单快速的解决方案,可在 10 分钟内实施,并涉及使用几行代码过滤掉背景噪音。选项二更复杂,需要构建一个大型神经网络来处理嘈杂的环境。虽然选项二对于大型智能音箱公司来说可能是必需的,但小型创业团队可以从选项一开始并只在必要时投资选项二而受益。讲师还强调了运输产品时数据更改的问题,并提供了解决该问题的实用想法。

  • 01:00:00 在本节中,演讲者讨论了机器学习中一个在学术界经常被忽视的实际弱点——数据变化问题。当机器学习模型在特定数据集上进行训练时,当数据发生变化时它们可能表现不佳,例如带有口音的新用户类别、不同的背景噪音或总统丑闻等新事件。给出的示例包括网络搜索、自动驾驶汽车和工厂检查。这个问题凸显了持续监控、数据收集和模型重新设计的必要性,以确保机器学习平台在现实世界中继续发挥作用。

  • 01:05:00 在本节中,课程讨论了在非机器学习方法和训练有素的神经网络之间,哪种系统对于 VAD、语音活动检测更为稳健。班上的大多数人投票支持非 ML 系统。然而,事实证明,在美国口音语音上训练一个小型神经网络会使神经网络更有可能识别出某些美国口音特质,从而使其在检测英国口音语音方面不那么稳健。该课程得出的结论是,如果手工编码的规则可以做得足够好,那么它通常可以更稳健地转换数据,并且通常会更好地泛化,尽管在没有这样的规则时机器学习算法是必要的。

  • 01:10:00 在本节中,讲师讨论了在严格的学习理论的支持下,模型中参数较少可以导致更好的泛化的想法。然后他提出了一个问题,即考虑到世界在不断变化并且更新可能是必要的,哪种类型的部署,云或边缘,使模型的维护更容易。在给观众时间输入他们的答案后,大多数人回应说,云部署使维护更容易,因为它能够推送更新并接收在一个中央位置处理的所有数据,尽管存在用户隐私和安全问题。

  • 01:15:00 在本节中,演讲者讨论了监控和维护如何成为机器学习项目部署中的重要考虑因素。他们强调,必须监控模型的性能和反馈,并解决提高其准确性或在必要时重新训练模型所需的任何更改。他们还建议,公司正在使用统计测试来建立质量保证流程,以确保即使有更新或更改,模型也能继续工作。此外,他们强调了在收集数据以用于反馈和重新训练模型时尊重用户隐私和征得用户同意的重要性
 

第 4 讲 - 对抗性攻击/GAN




斯坦福 CS230:深度学习 | 2018 年秋季 |第 4 讲 - 对抗性攻击/GAN

本讲座介绍了对抗样本的概念,这些样本是经过轻微修改以欺骗预训练神经网络的输入。本讲座解释了这些攻击如何工作的理论基础,并讨论了在深度学习中利用对抗样本的恶意应用。本讲座还介绍了生成对抗网络 (GAN) 作为一种训练模型的方法,该模型可以生成看起来像真实的图像,本讲座还讨论了 GAN 模型中生成器的成本函数。本讲座最后解释了在给定生成示例时 D 的输出的对数图。

该讲座涵盖了与生成对抗网络 (GAN) 相关的各种主题,包括训练 GAN 的技巧和窍门及其在图像到图像转换和使用 CycleGAN 架构的未配对生成对抗网络中的应用。还讨论了 GAN 的评估,其中人工注释、分类网络、Inception 分数和 Frechet Inception Distance 等方法是检查生成图像真实性的常用方法。

  • 00:00:00 在本节中,讲师介绍了对神经网络进行对抗性攻击的概念,并设定了寻找不是鬣蜥但被预训练网络分类为鬣蜥的输入图像的目标。讲师解释说,神经网络存在盲点,使其容易受到这些攻击,并讨论了这些攻击如何运作的理论基础。讲师强调这个主题更偏理论,并列出了推荐阅读以加深理解。

  • 00:05:00 在本节中,演讲者讨论了使用损失函数生成对抗性示例的过程,该损失函数可最小化预期和非预期输出之间的差异。损失函数可以是 L1、L2 或交叉熵,具体取决于哪个在实践中效果更好。然后使用梯度下降迭代优化图像,直到它被分类为所需的输出。然而,由于网络可以看到的可能输入图像的空间很大,这比现实世界图像的空间大得多,因此生成的图像可能不一定看起来像所需的输出。

  • 00:10:00 在本节中,讲师讨论了对抗性示例在深度学习中的恶意应用,攻击者可以在其中使用这些示例来诱使神经网络误解输入。例如,攻击者可以使用对抗性示例使自己的脸部照片看起来像其他人的脸部照片、破解验证码或绕过检测社交媒体上暴力内容的算法。讲师随后解释了限制优化问题如何使对抗性示例更加危险,在这种情况下,对人类来说看起来像猫的图片可能会被神经网络解释为鬣蜥,这对自动驾驶汽车和其他现实世界有影响应用程序。最后,讨论了用于优化问题的初始图像,讲师建议从目标对象的图片开始可能是最有效的策略。

  • 00:15:00 在本节中,演讲者讨论了使用 RMSE 误差作为损失函数,以及它可能不是衡量人类是否认为两幅图像相似的准确方法。他们还解决了制作复杂损失函数的挑战,该函数需要一群猫并在它们之间放置最小距离。然后演讲者继续讨论对抗性示例,以及人类看起来真实的图像空间实际上比真实图像的空间更大。演讲者接着解释了非针对性和针对性攻击,以及在考虑不同类型的攻击时,攻击者的知识如何成为一个重要因素。

  • 00:20:00 在讲座的这一部分,教授讨论了攻击黑盒模型以进行对抗性攻击的方法。一种想法是使用数值梯度来估计当图像受到轻微扰动时损失如何变化。另一个概念是可转移性,其中为一个模型创建的对抗性示例也可以欺骗另一个类似模型。教授提到了潜在的防御措施,例如创建“安全网”模型来过滤掉对抗性示例,以及集成具有不同损失函数的多个网络。另一种方法是在对抗样本和正常样本上进行训练,但这可能很昂贵,而且不一定能推广到其他对抗样本。

  • 00:25:00 在本节中,讲师讨论了在梯度下降优化中利用对抗样本的复杂性。该过程包括通过网络传播 x 以计算第一项,使用优化过程生成对抗样本,通过前向传播对抗样本计算第二项,然后使用反向传播更新网络的权重。作为对抗训练的另一种方法,也简要提到了 Logit 配对技术。还提出了关于神经网络对对抗性示例的脆弱性的理论观点,关键论点是网络的线性部分,而不是高度非线性和过度拟合,是对抗性示例存在的原因。

  • 00:30:00 在本节中,演讲者讨论了对抗样本的概念,以及如何修改输入,使其在接近原始输入的同时从根本上改变网络的输出。演讲者使用 y-hat 相对于 x 的导数并定义扰动值 epsilon,并表明通过将 epsilon*w-transpose 添加到 x,我们可以将 x 移动一点点,这有助于相应地改变输出.演讲者强调 w*w-transpose 项始终为正,我们可以通过将 epsilon 更改为较小的值来使这种变化很小。

  • 00:35:00 在本节中,讲师讨论了如何通过计算 x 的微小变化(称为 x-star)来创建对抗性攻击的示例,该变化将神经网络的输出 y-hat 从 -4 推高到 0.5。讲师注意到,如果 W 很大,x-star 将与 x 不同,如果使用 W 的符号而不是 W,结果总是将 x 项推向正数。此外,随着 x 维度的增加,W 的正 epsilon 符号的影响增加。

  • 00:40:00 在本节中,演讲者讨论了一种称为快速梯度符号法的方法,这是一种生成对抗性示例的通用方法。该方法将参数附近的成本函数线性化,并用于将像素图像推向一个会显着影响输出的方向。演讲者解释说,这种方法适用于线性和更深层的神经网络,因为研究的重点是线性化这些网络的行为。此外,演讲者还讨论了如何使用链式法则计算损失函数的导数,以及使用高梯度训练神经元参数的重要性。

  • 00:45:00 在视频的这一部分中,引入了生成对抗网络 (GAN) 的概念,作为一种训练模型的方法,该模型可以生成看起来像真实的图像,即使它们以前从未存在过。目标是让网络了解数据集的显着特征,并学习生成与现实世界分布相匹配的新图像。极小极大游戏在两个网络之间进行:生成器和鉴别器。生成器首先输出一张随机图像,然后使用来自鉴别器的反馈来学习如何生成更逼真的图像。 GAN 很难训练,但目标是让生成器学习使用比可用数据量更少的参数来模仿真实世界的图像分布。

  • 00:50:00 在本节中,讲师介绍了生成对抗网络 (GAN) 的概念以及如何通过反向传播对其进行训练。 GAN 由生成器和鉴别器组成,鉴别器试图识别图像是真实的还是假的。然后生成器生成假图像并试图欺骗鉴别器认为它们是真实的。鉴别器使用二元交叉熵进行训练,真实图像标记为 1,生成图像标记为 0。判别器的损失函数是 JD,它有两项:一项将真实数据正确标记为一个,另一项是二元交叉熵。

  • 00:55:00 在本节中,讲师将讨论 GAN 模型中生成器的成本函数。生成器的目标是创建欺骗鉴别器的真实样本,成本函数应该反映这一点。但是,因为是游戏,D和G都需要共同进步,直到达到平衡。生成器的成本函数指出鉴别器应将生成的图像分类为“一个”,这是通过翻转梯度的符号来实现的。讲师还讨论了给定生成示例时 D 输出的对数图。

  • 01:00:00 在这一节中,讲师讨论了生成器的成本函数的问题以及它如何走向负无穷大,这导致梯度在接近1时非常大。相反,他建议使用非饱和成本函数,该函数在接近零时具有更高的梯度,并使用数学技巧将当前成本函数转换为该非饱和成本函数。当判别器优于生成器时,非饱和成本函数在开始时具有高梯度,这通常是它们在训练早期出现的地方。

  • 01:05:00 在本节中,演讲者讨论了训练 GAN 的提示和技巧,包括修改成本函数、更新鉴别器而不是生成器以及使用 Virtual BatchNorm。演讲者还展示了令人印象深刻的 GAN 结果示例,包括使用生成器使用随机代码创建人脸,并在代码的潜在空间中执行线性操作以直接影响图像空间。此外,演讲者还演示了如何将 GAN 用于图像到图像的转换,以根据地图图像生成卫星图像,并在斑马和马或苹果和橙子等不同对象之间进行转换。

  • 01:10:00 在本节中,讲师讨论了使用未配对的生成对抗网络将马转换为斑马,反之亦然。使用的架构称为 CycleGAN,它涉及两个生成器和两个鉴别器。生成器经过训练,可以将图像从源域转换到目标域,然后再转换回源域。这对于强制执行马和斑马应该是同一匹马的约束很重要,反之亦然。使用的损失函数包括之前看到的经典成本函数和确保原始图像和生成图像之间匹配的附加项。

  • 01:15:00 在视频的这一部分,演讲者讨论了 GAN 的各种应用,包括使用循环成本来改进条件 GAN 的损失函数、基于边缘或低分辨率图像生成图像的能力,以及GAN 有可能用于保护隐私的医疗数据集和个性化制造骨骼和牙齿替代品等物体。演讲者还重点介绍了已创建的有趣应用,例如将拉面转换为面部和背部,以及根据边缘生成猫。

  • 01:20:00 在本节中,讲师讨论了 GAN 的评估以及如何检查生成的图像是否真实。一种方法是人工注释,其中构建软件并要求用户指出哪些图像是假的,哪些是真实的。另一种方法是使用像 Inception 网络这样的分类网络来评估图像。讲师还提到了 Inception 分数和 Frechet Inception Distance 作为评估 GAN 的流行方法。最后,讲师提醒学生即将进行的测验和编程作业,并建议他们查看 BatchNorm 视频。
 

第 5 讲 - 人工智能 + 医疗保健




斯坦福 CS230:深度学习 | 2018 年秋季 |第 5 讲 - 人工智能 + 医疗保健

本讲座概述了人工智能在医疗保健中的应用。他细分了人工智能可以回答的问题类型,例如描述性、诊断性、预测性和规范性。然后,作者展示了他实验室的三个案例研究,展示了人工智能在不同医疗保健问题中的应用。一个例子是检测严重的心律失常,专家可能会误诊,但可能会被机器捕捉到。另一个例子是使用卷积神经网络来识别膝关节 MR 检查的异常,特别是识别 ACL 撕裂和半月板撕裂的可能性。最后,演讲者讨论了与医疗保健 AI 中的数据分发和数据扩充相关的问题。

第二部分涵盖与深度学习在医疗保健应用中的实施相关的各种主题。讨论了数据增强的重要性,正如一家公司解决自动驾驶汽车语音识别问题的解决方案所证明的那样,该问题是由人们在向后看时与虚拟助手交谈而引起的。还讨论了医疗保健应用程序迁移学习中涉及的超参数,例如决定添加多少层以及冻结哪些层。然后讲座转到图像分析,其中强调了为标记数据集添加边界的重要性。讨论了医学图像分析中对象检测和分割之间的优点和区别,并介绍了标记为零或一的医学图像的二元分类主题。讲座最后讨论了数据在深度学习中的重要性以及即将进行的课程评估。

  • 00:00:00 在视频的这一部分中,讲座概述了人工智能在医疗保健中的应用。他细分了人工智能可以回答的问题类型,例如描述性、诊断性、预测性和规范性。他还讨论了深度学习的范式转变以及人工智能使机器学习工程师的工作自动化的潜力。 Rajpurkar 随后展示了他实验室的三个案例研究,展示了人工智能在不同医疗保健问题中的应用。

  • 00:05:00 在本节中,演讲者讨论了使用医学成像检测心律失常的问题。心律失常是影响数百万人的重大问题,由于心律之间的细微差异,通过 ECG 测试检测心律失常可能具有挑战性。演讲者强调了使用最近的设备(例如 Zio Patch)监测患者两周内生成的数据量,这使得自动解释成为必要。然而,使用自动化方法检测心律失常面临挑战,例如几个电极的可用性有限以及心律之间的细微差异。为了克服这些挑战,演讲者建议使用深度学习,这可以改变传统的特征工程和分类方法。

  • 00:10:00 在本节中,演讲者讨论了使用具有 34 层深的一维卷积神经网络架构的深度神经网络,将心律(标记为 A、B 和 C)从输入映射到输出。使用的网络是一个带有捷径的残差网络,有助于最小化误差信号到每一层的距离,并且它与比之前最大数据集大 600 倍的更大数据库相结合。这个新数据库允许算法在 F1 指标精度和召回率上超越心脏病专家,最大的错误是区分了两种看起来非常相似但在治疗上没有区别的节律,甚至发现了专家遗漏的成本计算错误。

  • 00:15:00 在本节中,讲师讨论了自动化在医疗保健中的应用,以及深度学习和机器学习如何实现持续的患者监测、促进对风险因素的科学理解以及潜在的医学突破。一个例子是严重心律失常的检测,专家可能会误诊,但可能会被机器捕捉到。讲师还讨论了用胸部 X 光检测肺炎,强调了自动检测的有用性,特别是在肺炎全球负担高的儿童中。

  • 00:20:00 在本节中,演讲者讨论了使用已在 ImageNet 上预训练的 2D 卷积神经网络来获取患者胸部 X 光片的输入图像并输出指示存在或不存在的二进制标签肺炎。使用的数据集是 NIH 发布的包含 100,000 张胸部 X 光片的大型数据集,每张 X 光片都标注了多达 14 种不同的病理。进行了一项评估,以确定该模型是否优于放射科医生或通过评估他们是否与其他专家类似地同意而与他们相提并论。为每位专家和模型计算一次 F1 分数,结果表明该模型在此任务中的表现优于普通放射科医生。在所有 14 种病理学上,结果也优于之前的最新技术。

  • 00:25:00 在本节中,演讲者讨论了在无法访问患者临床病史的情况下诊断患者的挑战,以及如何在可以获得更多信息的放射学报告上训练深度学习算法。目标是从新患者胸部 X 光片上看到的一组症状中识别潜在的病理。模型解释对于告知临床医生算法的决策过程至关重要,他们使用类激活图生成热图,突出显示具有病理的图像区域。该方法可以通过优先处理工作流程来改善医疗保健服务,特别是在发达国家,并在全球范围内增加医学成像专业知识,其中三分之二的人口无法获得诊断。

  • 00:30:00 在本节中,讲师演示了一个原型应用程序,该应用程序允许用户上传 X 射线图像,然后由模型进行诊断。该模型接受了 14 种病理学的训练,能够识别心脏肥大,即心脏扩大。讲师对算法能够推广到其训练对象之外的人群的能力感到兴奋,从互联网下载的图像的成功诊断证明了这一点。此外,讲师还讨论了一个关于膝关节 MR 图像的案例研究,其目的是识别膝关节异常。 3D 问题允许从不同角度观察膝盖,这对于放射科医生进行诊断至关重要。

  • 00:35:00 在本节中,演讲者讨论了使用卷积神经网络来识别膝盖 MR 检查中的异常情况,特别是识别 ACL 撕裂和半月板撕裂的可能性。演讲者为每个视图-病理对训练了九个卷积网络,然后使用逻辑回归将它们组合起来。他们在 120 次检查中测试了该模型,发现它在识别异常方面表现良好。演讲者还讨论了能够推广模型以处理来自不同机构和国家的数据集的重要性。还提到了模型与不同领域的专家(例如放射科医生)合作以提高性能的问题。

  • 00:40:00 在讲座的这一部分,演讲者讨论了一项关于放射科医生使用 AI 模型检测 ACL 撕裂的功效的研究。研究发现,与放射科医生一起使用该模型可以提高 ACL 撕裂检测的性能和特异性。然而,自动化偏差的问题出现了,演讲者提出了潜在的解决方案,例如通过翻转答案的考试,以提醒放射科医生他们是否过于依赖模型。演讲者还分享了学生参与 AI 和医疗保健的两个机会,包括使用 MURA 数据集和参与 AI for Healthcare Bootcamp。

  • 00:45:00 在本节中,演讲者讨论了医疗专家在医疗保健领域开发和实施人工智能模型的应用和潜在报酬。虽然在这个话题上有很多工作要做,但没有直接的解决方案来解决围绕对医疗专业人员生计的潜在影响的伦理问题。演讲者还提出了一个问题,即人工智能模型在检测某些病理方面的局限性,以及将这些局限性传达给用户的重要性。本节最后介绍了一个案例研究,该案例研究使用深度学习来分割皮肤细胞的显微图像以检测疾病。

  • 00:50:00 在本节中,演讲者讨论了分割医学图像并将数据集划分为训练集、开发集和测试集。图像被二进制分割成对应于细胞或无细胞的像素。要求听众讨论并提供拆分来自三个不同显微镜(A、B 和 C)的数据的策略,数据分为 A 的 50%、B 的 25% 和 C 的 25%。共识是将数据分成 95-5 用于训练和开发测试,开发和测试集中有 C 个图像,并且 C 个图像也包含在 90% 的训练数据中。

  • 00:55:00 在本节中,演讲者讨论了与医疗保健 AI 中的数据分布和数据扩充相关的问题。他强调了确保训练数据分布与实际应用相匹配的重要性,并提出了旋转、缩放、模糊和对称等增强技术。演讲者还警告了数据增强可能伤害而不是帮助模型的情况,例如在字符识别中对称翻转可能导致错误标记。

  • 01:00:00 在本节中,将以一家致力于自动驾驶汽车和汽车虚拟助手的公司为例,讨论数据增强的重要性。他们注意到当汽车倒退时语音识别系统无法正常工作,并发现人们在向后看时将手放在乘客座位上与虚拟助手交谈。使用智能数据增强,他们能够改变数据的声音,使其看起来像是有人在与汽车后部交谈,从而解决了问题。此外,还讨论了迁移学习中涉及的超参数等主题。

  • 01:05:00 在本节中,演讲者讨论了使用深度学习的医疗保健应用程序迁移学习中涉及的超参数。他们专注于超参数,例如层数、添加层的大小以及在训练期间冻结哪些层的决定。演讲者解释了如何选择要从预训练网络中保留哪些层以及要添加多少层以创建用于分割的新网络。此外,他们还讨论了在对小型数据集进行再训练期间决定冻结多少预训练层非常重要。

  • 01:10:00 在本节中,讲师展示了算法生成的输出图像,这与医生的要求不符。图像中有无法分离的细胞,这让医生难以解读。这个问题的解决方案是为标记数据集添加边界。考虑到边界的存在,可以重新标记数据集。当模型仍然表现不佳时,将调整损失函数的权重,这意味着训练模型以关注边界。系数可以归因于损失函数中的每个值,以告诉模型在错过边界的情况下如何继续。重新标记数据集可以在您画线的地方手动完成,线内的区域将被视为单元格,边界将被视为线。

  • 01:15:00 在本节中,讲座讨论了对象检测和分割在医学图像分析中的优势和差异。虽然对象检测可能更适合更快的分析,但分割在分离细胞时更精确。然后讲座继续讨论标记为零或一的医学图像的二元分类,表明存在或不存在癌细胞。演讲者建议在达到 99% 的准确率后使用梯度值来解释网络的预测。然后质疑网络是否有可能达到比医生更高的准确度,由于经验和认知的差异,答案是肯定的。

  • 01:20:00 在本节中,讲师讨论了医疗保健 AI 模型中的基本错误和人类水平的表现。他们提到必须考虑标记数据集的一组医生的准确性,因为它可能超过单个医生的准确性。还讨论了自动驾驶的流水线,建议隔离每个组件并检查它们的性能可以帮助找出问题所在。此外,还讨论了管道方法的优点,包括与整个端到端系统相比,每个步骤的数据收集更容易获得。

  • 01:25:00 在本节中,讲师讨论了数据在深度学习中的重要性,以及要处理的问题的选择如何取决于哪些数据易于访问。然后他介绍了卷积神经网络的主题,并提到即将到来的模块将重点关注图像分析。讲师提醒学生即将到来的测验、编程作业和期中考试,这将涵盖本周视频之前的所有内容。
 

第 6 讲 - 深度学习项目策略




斯坦福 CS230:深度学习 | 2018 年秋季 |第 6 讲 - 深度学习项目策略

在此视频中,演讲者讨论了选择一个好的指标来衡量机器学习项目是否成功的重要性。选择的指标应该反映手头的问题和期望的结果。演讲者提供了准确性、精确度、召回率和 F1 分数的示例,并解释了何时应使用每一项。他们还讨论了验证集和测试集之间的区别,并解释了为什么同时使用两者很重要。此外,演讲者强调需要一个基线模型作为比较点来衡量学习算法的有效性。最后,演讲者回答了听众提出的关于二元分类阈值的选择以及如何处理类不平衡的一些问题。

  • 00:00:00 在本节中,讲师介绍了构建语音识别系统以检测特定短语“Robert turn on”的项目场景,该短语可用于使用语音命令打开灯。目标是建立一个学习算法,可以识别这个短语并在说出时打开灯。讲师强调了在机器学习项目中决定下一步做什么以提高其效率并快速推动其前进时,具有战略复杂性的重要性。讲座将是互动的,鼓励学生与他们传统上不共事的人坐在一起。

  • 00:05:00 在这一部分中,讲师要求听众将自己想象成一个初创公司的 CEO,其任务是构建一个学习算法来检测特定的短语。他强调在开始新项目之前阅读现有文献的重要性,并提供有关如何有效阅读研究论文的技巧。他建议观众在决定更详细地阅读哪一篇之前,先粗略地浏览多篇论文。他还警告说,并非所有论文都有意义或重要,因此过滤掉不相关的信息至关重要。

  • 00:10:00 在讲座的这一部分中,强调了在尝试理解特定主题时与专家交谈和联系论文作者的重要性。演讲者还讨论了为深度学习项目收集适当的训练、开发和测试数据集的过程。他们建议记录个人说出要检测的特定短语,例如“Robert turn on”,并使用数据增强技术来减少学习算法中的差异。演讲者强调了在投入时间和精力之前验证数据扩充需求的重要性。

  • 00:15:00 在本节中,演讲者讨论了一个涉及创建触发词检测系统的示例家庭作业问题。该系统旨在检测何时有人说出特定短语,例如“罗伯特打开”,然后触发动作,例如打开电灯。为了收集必要的数据,演讲者建议收集 100 个音频片段,每个片段 10 秒,其中 25 个用于开发集,0 个用于测试集。他解释说,这个过程可以很快完成,估计在斯坦福大学自助餐厅等繁忙区域,每隔一两分钟就可以记录一个人。

  • 00:20:00 在视频的这一部分中,讲师讨论了如何将音频检测问题转化为监督学习的二元分类问题。他们建议从 10 秒的剪辑中剪出 3 秒的音频剪辑,每个剪辑使用不同的目标标签。这种方法可以产生数千个训练样本。讲师承认存在其他处理序列数据的方法,但这只是一种方法。他们还回答了观众关于稀疏目标和三秒片段选择的问题。最后,他们讨论了一个准确度很高的场景,但该算法没有检测到相关短语的任何实例。

  • 00:25:00 在本节中,演讲者讨论了一种场景,其中学习算法提供 95% 的准确度但没有检测到。他们建议改进算法的一种方法是指定一个开发集并评估更接近实际目标的指标。这可以通过重新采样训练集和开发集来实现,使它们在正面和负面示例方面更成比例,或者通过给予正面示例更大的权重。另一种方法可能是将目标标签更改为一堆标签,这可能是一种快速而肮脏的方法,但在数学上并不严格。演讲者还解决了有关在部署时如何重新平衡数据集的问题,并提到需要针对可能引入的偏差进行调整。

  • 00:30:00 在本节中,演讲者讨论了构建学习算法的策略,并强调它更像是调试而不是开发。工作流程通常涉及解决问题,然后遇到需要解决的新问题。例如,如果算法过拟合,则需要进行误差分析,可以添加更多的来平衡数据集。然而,直接的再平衡方式会导致大量的负样本被丢弃,这可能对学习算法有帮助。演讲者还提到了衡量系统效率的指标,例如唤醒或打开灯的机会以及它自行打开的随机性。

  • 00:35:00 在本节中,演讲者讨论了音频的数据增强,并提出了三种可能的方法来收集背景噪声数据,使系统更加稳健。第一种方法涉及收集人们家中背景声音的音频样本,并获得他们的许可,将其添加到音频剪辑中,以模拟用户家中的声音。第二种方法涉及从在线知识共享许可内容中下载 10 小时长的雨或汽车音频剪辑,而第三种方法是使用 Amazon Mechanical Turk 让来自世界各地的人们提供音频样本。

  • 00:40:00 在视频的这一部分,演讲者要求听众估计通过不同的机制在斯坦福周围的不同地点收集 10 小时的音频数据需要多长时间。演讲者建议,通过让多个使用笔记本电脑的朋友并行收集数据可以快速完成,而在线下载剪辑可能会更加困难,因为剪辑可能会循环播放,因此无助于数据的多样性。演讲者强调了进行此类练习的重要性,以便有效地集思广益并确定他们需要多少时间和精力。

  • 00:45:00 在本节中,讲师解释了高效并根据头脑风暴的想法和时间估计做出选择以构建一个像样的触发词检测系统的重要性。给出的建议是快速构建一些“脏”的东西,然后开发数据集以进一步改进系统。讲师强调,公司的成功/失败之间的差异最终归结为效率和充分利用给定的时间框架。最后,讲师鼓励学生填写匿名调查,以帮助改进课程
 

第 7 讲 - 神经网络的可解释性




斯坦福 CS230:深度学习 | 2018 年秋季 |第 7 讲 - 神经网络的可解释性

在本次讲座中,讲师介绍了几种解释和可视化神经网络的方法,例如显着图、遮挡敏感度和类激活图。类激活图用于通过将输出映射回输入空间来解释神经网络的中间层,以可视化输入的哪些部分在决策过程中最具辨别力。这位教授还讨论了全局平均池化作为一种在卷积神经网络中维护空间信息的方式,以及反卷积作为一种对图像的高度和宽度进行上采样以完成图像分割等任务的方式。此外,本讲座探讨了卷积滤波器中正交性的假设,以及亚像素卷积如何用于可视化应用中的重建。

讲座涵盖了解释和可视化神经网络的各种方法,包括亚像素卷积、二维反卷积、上采样、反池化,以及 DeepViz 工具箱和 Deep Dream 算法等工具的使用。演讲者解释了网络第一层中的可视化过滤器如何有助于解释,但随着我们深入,网络变得更难理解。通过检查不同层的激活,演讲者展示了某些神经元如何对特定特征做出反应。虽然解释神经网络存在局限性,但可视化技术可以提供洞察力和潜在应用,例如分割、重建和对抗网络生成。

  • 00:00:00 在本节中,演讲者介绍了解释神经网络的想法,而不是仅仅通过反复试验来改进它们。他们继续介绍了三种解释神经网络的方法:显着图、遮挡敏感度和类激活图。这些方法通过映射回输入空间来检查输入的哪一部分对特定输出具有判别力,从而帮助理解网络的决策过程。然后,演讲者继续解释他们将如何深入研究中间层,以及他们将如何使用梯度上升类模型可视化、数据集搜索和反卷积等方法来更好地理解网络。目标是提供一种改进神经网络的科学方法,而不是仅仅依靠反复试验。

  • 00:05:00 在本节中,讲师讨论了神经网络的可解释性以及使用显着图可视化网络正在查看的内容。他们解释说,与其使用 softmax 层的概率,不如使用 softmax 之前的分数来识别哪些像素对网络的一般输出影响最大。讲师还介绍了遮挡灵敏度作为更精确可视化的方法。这涉及在输入图像中的狗身上放置一个灰色方块,并通过网络多次传播它,以创建类别狗的概率图,其中网络的置信度由不同的颜色表示。通过移动灰色方块,地图显示了输入图像的哪些区域对于网络将其分类为狗最为关键。

  • 00:10:00 在本节中,讲师讨论了解释和理解神经网络的三种不同方法。第一种方法涉及遮挡图像的某些部分,以查看网络正在寻找的位置以及关注的内容。讲师用狗和椅子的图像演示了这种方法,展示了网络的置信度如何根据图像的哪一部分被遮挡而变化。第二种方法是遮挡敏感度,当图像的某些部分被移除时,网络的置信度实际上会增加。第三种方法是类激活图,它展示了网络定位图像中对象的能力,即使仅在图像级标签上进行训练也是如此。讲师解释说,这种定位能力对于目标检测等任务至关重要,并且通常是通过分类任务的训练来发展的。

  • 00:15:00 在本节中,讲师演示了如何在卷积神经网络 (CNN) 中使用全局平均池化而不是扁平加完全连接来维护空间信息,这对于可视化网络正在查看的内容很有用。在获得具有六个特征图的体积后,应用全局平均池将其转换为六个值的向量,然后将其馈送到具有 softmax 激活的全连接层以获得概率。通过查看全连接层的权重,可以计算出每个特征图对输出有多大贡献,所有这些特征图的加权和可以揭示网络在输入图像中看到的内容。

  • 00:20:00 在本节中,演讲者讨论了类激活图以及它们如何依赖于神经网络中正在分析的类。通过检查第一个激活和前一层之间的边缘,演讲者解释说权重将根据所分析的类别而有所不同。通过将所有特征图相加,得到不同的结果。然后,演讲者讨论了如何通过更改最后几层来使用网络可视化类激活图,以及这如何需要一些微调。演讲者还讨论了涉及 116 归一化的全局平均池化过程如何不破坏空间信息,因为特征图是已知的,因此可以精确地映射回来。

  • 00:25:00 在本节中,演讲者解释了类激活图如何解释神经网络的中间层。此方法将输出映射回输入空间,使用户能够可视化输入的哪些部分在决策过程中最具辨别力。通过梯度上升,一个最大化所需输出分数的迭代过程,演讲者演示了如何使用这种方法来找到代表网络认为狗看起来像的图像。演讲者说,虽然这种方法是解释图像数据的有效方法,但注意力模型等其他方法用于解释非图像数据。

  • 00:30:00 在讲座的这一部分,教授讨论了可视化神经网络所见内容的不同技术。他展示了一些示例,说明推动某些像素值如何为特定类别带来更高的分数,以及正则化(例如 L2 或高斯模糊)如何提高可视化质量。教授还介绍了类模型可视化的概念,其中目标函数用于最大化特定类的分数,以及如何使用它来验证网络正在寻找正确的东西。此外,教授还谈到了如何使用数据集搜索来了解网络中间的特定激活在想什么,方法是选择一个特征图并通过网络运行大量数据以查看哪些数据点具有该特征图的最大激活。

  • 00:35:00 在本节中,讲师解释了卷积神经网络中的不同特征映射如何被图像的不同部分激活。讲师展示了检测衬衫的特征图和检测边缘的特征图的示例。讲师随后解释说,网络中图像的激活只能看到输入图像的一部分,随着网络的深入,每一层的激活都会看到图像的更大部分。讲师还解释了如何使用反卷积网络根据代码输入输出图像,以及这种方法如何比使用具有许多神经元的全连接层更实用。

  • 00:40:00 在本节中,演讲者解释了反卷积在神经网络中的使用。反卷积可以对图像的高度和宽度进行上采样,使其适用于图像分割等任务。演讲者还讨论了梯度上升法以及如何通过 unpooling、un-ReLU 和反卷积在输入空间中重建激活。然后演讲者继续将反卷积定义为矩阵向量数学运算,并给出了带填充的一维卷积示例。

  • 00:45:00 这节课,教授在讨论矩阵和向量之间的数学运算。他举了一个卷积层的例子,它有一个过滤器,大小为 4,步幅为 2。输出大小使用公式计算,即 nx-f+2p/stride。然后,他解释了如何通过编写方程组并找出矩阵的形状,将此卷积定义为矩阵和向量之间的数学运算。根据方程组填充生成的矩阵,并将激活向量乘以矩阵。

  • 00:50:00 在讲座的这一部分,讲师解释了如何将卷积运算表示为一个简单的矩阵乘以一个向量。矩阵由权重组成,它们在矩阵中的位置由步幅和窗口大小决定。通过将卷积构造为矩阵运算,然后我们可以反转矩阵以执行反卷积并重建原始输入。然而,这种方法假设权重矩阵是可逆和正交的,这在实践中并不总是正确的。正交性假设在卷积滤波器是边缘检测器的情况下很有用。

  • 00:55:00 在讲座的这一部分,教授介绍了一种从 Y 生成 X 的方法,该方法假设重建将很有用,即使它并不总是正确的。他们使用插图和 Menti 代码演示了该过程,展示了如何使用子像素卷积来执行相同的操作,从左到右而不是从上到下进行打击。该技术涉及裁剪和填充输入以获得所需的输出。教授指出,这种类型的卷积通常用于可视化应用程序中的重建。

  • 01:00:00 在本节中,讲师解释了亚像素卷积的概念,它涉及将零插入向量 Y 以允许更有效地计算反卷积。通过翻转权重、将步幅除以二并插入零,反卷积过程本质上等同于卷积。这个过程可以扩展到二维卷积,总体上可以更好地理解矩阵和向量之间的数学运算以进行卷积。

  • 01:05:00 在本节中,演讲者深入探讨了 2D 反卷积的解释。反卷积的目的是获得一个五乘五的输入,即重构的 x。为此,演讲者演示了一个大小为 2×2 的过滤器应用于前向传播输入,在 conv 层中步长等于 2。然后,应用反卷积技术得到重建图像。讲座解释说,反卷积过程涉及采用过滤器并将所有权重乘以 y11,将其移动一个步长,并对所有条目重复相同的过程。演讲者最后指出这个过程有些复杂;然而,如果反卷积的概念没有得到很好的理解,则无需担心。

  • 01:10:00 在这节课中,教授以直观的方式解释了图像的上采样过程。他解释说,为了重建图像,应尽可能使用来自 ConvNet 的权重。然后,他展示了从 4x4 图像开始的上采样过程的可视化表示,插入零并将其填充到 9x9 图像,然后使用过滤器对图像进行卷积并在此过程中执行卷积。他还简要讨论了如何 unpool 和 unReLU,指出 max pool 在数学上不可逆,但可以通过扩展和缓存开关来近似计算最大值。

  • 01:15:00 在本节中,解释了神经网络中反池化和最大池化的概念,以及使用开关和过滤器重建原始输入。还讨论了ReLU激活函数,引入了ReLU backward的概念。 ReLU DeconvNet 的使用被解释为一种不依赖于前向传播的无偏重建方法。该方法被描述为一种 hack,并不总是在科学上可行,但它在可视化和解释神经网络方面很有用。

  • 01:20:00 在讲座的这一部分,演讲者解释了如何通过找出每个激活对应的内容来可视化和理解神经网络内部发生的事情。可视化技术涉及选择一个激活,找到最大激活,将所有其他激活设置为零,然后重建图像。演讲者讨论了由于权重直接乘以像素这一事实,网络第一层中的过滤器如何可以被解释。然而,随着我们深入网络,过滤器变得更难解释。演讲者还继续解释我们越深入,我们看到的越复杂,并提供了不同过滤器的示例以及激活它们的图像类型。

  • 01:25:00 在讲座的这一部分,演讲者演示了使用 DeepViz 工具箱来研究神经网络的可解释性。通过检查卷积网络不同层中神经元的激活,演讲者展示了某些神经元如何响应特定特征(例如面部或皱纹)而激发。演讲者还提到可选使用 Deep Dream 技术,通过将梯度设置为等于特定层的激活来生成图像,从而允许进一步探索神经网络行为。

  • 01:30:00 在本节中,演讲者演示了 Deep Dream 算法,该算法通过将神经网络的激活反向传播到输入层并更新像素来生成图像。结果是各种超现实的图像,动物和其他物体一起变形。演讲者还讨论了解释神经网络的局限性以及可视化技术(例如类激活图和反卷积)可用于了解网络如何看待世界和检测死亡神经元的方式。此外,演讲者强调了这些可视化的潜在应用,包括分割、重建和对抗网络生成。
 

第 8 课 - 职业建议/阅读研究论文




斯坦福 CS230:深度学习 | 2018 年秋季 |第 8 课 - 职业建议/阅读研究论文

在本次讲座中,Andrew Ng 教授就如何有效阅读研究论文并跟上快速发展的深度学习领域提供了建议。他强调在介绍和结论部分总结工作的重要性,并注意数字和表格。 Ng 还分享了职业建议,建议求职者在多个人工智能和机器学习领域拥有广泛而深入的知识,并专注于与个人而不是大品牌合作,以最大限度地提高增长机会。他建议通过课程和项目坚持阅读论文并培养水平和垂直技能,为机器学习打下坚实的基础。

  • 00:00:00 在讲座的这一部分,演讲者分享了有关如何有效阅读研究论文的建议,尤其是在快速发展的深度学习领域。他建议编制一份论文和资源列表,包括发布在 arXiv 上的研究论文、Medium 帖子和偶尔发布的 GitHub 帖子。然后他建议浏览论文并快速理解每一篇论文,跳过没有意义或没有帮助的论文。他建议将更多时间花在开创性论文上,并使用引文查找有关该主题的其他论文。

  • 00:05:00 在本节中,讲师提供阅读研究论文的指南,以增加对特定主题的理解。他建议阅读 15 到 20 篇论文可以对一个领域有一个基本的了解,而阅读 50 到 100 篇论文将导致很好的理解。此外,他还提供了如何阅读一篇论文的建议,建议多遍阅读论文,重点是在第一遍阅读标题、摘要和图表。讲师强调在介绍性和结论性部分总结工作的重要性,因为作者通常在这些部分明确说明其工作的重要性。

  • 00:10:00 在讲座的这一部分,演讲者给出了如何高效阅读研究论文的建议。他建议从论文的摘要、引言和结论开始,以清楚地了解论文的内容。他还建议浏览相关的工作部分,如果您不熟悉文献,通常很难理解这些部分。演讲者建议阅读整篇论文,但跳过没有意义的部分,因为论文包含不重要的部分并不少见。最后,他提供了一组问题供读者尝试和回答,以巩固他们对论文的理解,包括作者试图完成的内容以及可以应用的关键要素。

  • 00:15:00 在讲座的这一部分,教授鼓励学生阅读研究论文,并建议在深入研究数学之前先阅读英文文本。他布置了一篇名为“密集连接的卷积神经网络”的论文,并建议学生在与同学讨论之前花七分钟阅读它。他还指出,通过练习,学生可以更快地阅读和理解研究论文,包括理解用于描述网络架构的常用格式。教授强调,通过关注论文中图表中呈现的主要概念,可以更快地学习。

  • 00:20:00 在本节中,Andrew Ng 教授就如何跟上和理解深度学习研究给出了建议。他建议进行网络搜索并寻找有关重要论文的博客文章,查看 Twitter 和 ML Subreddit,并关注经常在线分享论文的研究人员。 Ng 还建议与同事或同学组成一个社区,分享有趣的论文,并从详细的笔记中重新推导出数学,以深入理解算法。 Ng 强调,每篇论文花费的时间可能因经验水平和难度而异,但花费更多时间可以使对深度学习概念的理解更丰富。

  • 00:25:00 在本节中,讲师建议学生从头开始重新推导机器学习算法,以确保深入理解,因为它允许概括和推导新算法的能力。在学习方面,他还建议间隔重复而不是死记硬背,并鼓励学生组成阅读小组并与同龄人合作以继续学习并在机器学习领域开创事业。他强调稳定学习而不是激烈的活动,并提供有关如何进行职业导航的技巧。

  • 00:30:00 在讲座的这一部分,演讲者讨论了如何在机器学习领域找到工作或加入博士课程,并强调了做重要工作的重要性。招聘人员寻找机器学习方面的技术技能、编码能力和有意义的工作经验。不断学习新技能并跟上该领域快速发展的能力也受到高度重视。成功的人工智能和机器学习工程师是那些了解机器学习的不同领域并在这些领域工作过的人,从而对如何在各种环境中应用机器学习算法有深刻的理解。

  • 00:35:00 在本节中,讲师讨论了求职者所期望的“T型”技能,这意味着对多个人工智能和机器学习领域有广泛的了解,同时至少在一个特定的领域有深入的了解区域。他强调拥有实践经验的重要性,例如从事有意义的项目、为开源做出贡献或进行研究以说服招聘人员相信应聘者的能力。讲师警告不要在没有获得实践经验的情况下上太多课,不要试图跳得太深太快,或者做太多没有深度的小项目。

  • 00:40:00 在讲座的这一部分,吴教授通过建议构建水平和垂直部分,就如何在机器学习中建立坚实的基础提出建议。他指出,完成 10 个小项目可能不会像一两个大项目那样给招聘人员留下深刻印象。为了构建包含 AI 和机器学习基础技能的横向部分,他建议参加课程、阅读研究论文并加入社区。为了构建垂直部分,这涉及到做更多相关、更深入的项目,Ng 建议从事与机器学习或人工智能相关的事情,以帮助在这些领域发展职业。他继续强调享受乐趣和休息的重要性,因为深度学习工作除了个人满意度之外通常没有短期回报。

  • 00:45:00 在本节中,讲师讨论了一致性对于提高深度学习领域的重要性。坚持一年每周阅读两篇论文将导致阅读 100 篇论文,并有助于一个人在该领域的进步。此外,伟大的人和项目是成功的最大预测因素,拥有努力工作、阅读大量论文并关心他们工作的亲密朋友可以影响一个人做同样的事情。在选择工作时,建议以团队为重点,与10至30人的团队互动,可以建立自己的职业生涯并提高技能。

  • 00:50:00 在这一部分,演讲者为深度学习爱好者提供了职业建议,敦促他们关注公司中的个人而不是品牌。演讲者强调,考虑到他们的努力工作水平和教学意愿,个人评价和与个人的联系比公司品牌更重要,因此与他们互动的经理和核心团队对他们的影响最大。评估了给出的示例场景,例如一家大公司向小型 AI 团队发送工作机会,重点放在个人及其如何影响一个人的成长上。以一个学生的个人例子来强调忽视个人以支持公司品牌的失败模式,该学生的职业生涯在接受知名公司的基于 Java 的后端支付工作机会后趋于平稳,而不是专注于与特定的人一起工作在一个小团队中。

  • 00:55:00 在本节中,Andrew Ng 建议谨慎考虑轮岗计划,这些计划在理论上听起来不错,但可能无法为公司内部的发展提供明确的方向或机会。他建议寻找机会与可能在机器学习领域做重要工作的规模较小、知名度较低的团队合作,而不是追逐大品牌。他强调优先考虑学习经验和做有影响力的工作的重要性,而不是只关注行业中享有盛誉的品牌。

  • 01:00:00 在视频的这一部分,演讲者为处于职业生涯早期阶段的人提供职业建议。建议加入一个有很多队友的团队,做有意义的工作来帮助其他人。但是,他建议不要为生产香烟等有害产品的公司工作。他认为各个行业都有很多重要的工作要做,世界需要人们从事不同的工作。他建议,下一波机器学习浪潮不仅针对科技公司,还应该关注所有没有实施技术的传统行业。
 

第 9 讲 - 深度强化学习




斯坦福 CS230:深度学习 | 2018 年秋季 |第 9 讲 - 深度强化学习

讲座介绍了深度强化学习,它结合了深度学习和强化学习。强化学习用于在标签延迟的情况下做出良好的决策序列,并应用于机器人、游戏和广告等不同领域。深度强化学习用作为神经网络的 Q 函数代替了 Q 表。讲师讨论了应用深度强化学习的挑战,但描述了一种基于贝尔曼方程为 Q 分数创建目标值以训练网络的技术。该讲座还讨论了经验回放在训练深度强化学习中的重要性,以及 RL 算法中开发和探索之间的权衡。还讨论了深度强化学习在游戏 Breakout 中的实际应用。

该讲座讨论了与深度强化学习 (DRL) 相关的各种主题。讨论了 DRL 中的探索-开发权衡,并提出了一种使用超参数来决定探索概率的解决方案。探讨了人类知识在 DRL 中的重要性以及它如何增强算法决策过程。该讲座还涵盖了策略梯度、不同的实施方法以及过拟合预防。此外,还强调了稀疏奖励环境中的挑战,并简要讨论了最近一篇名为“统一基于计数的元数据进行探索”的论文中的解决方案。最后,讲座简要提到了 Redmon 等人的 YOLO 和 YOLO v2 论文。关于物体检测。

  • 00:00:00 在本节中,演讲者介绍了深度强化学习的概念,它是深度学习与人工智能的另一个领域强化学习的结合。演讲者解释说,深度神经网络擅长函数逼近,可以应用于许多需要函数逼近器的不同领域,强化学习就是其中之一。演讲者通过 AlphaGo 和 Google 的 DeepMind 论文等示例激发了强化学习的想法,在这些示例中,他们使用深度学习来训练代理人在各种游戏(主要是 Atari 游戏)中击败人类水平的表现。演讲者还解释说,强化学习很重要,因为它可以让代理在比棋盘大得多的围棋等复杂游戏中制定长期策略。

  • 00:05:00 在视频的这一部分,教授要求学生考虑如何使用深度学习构建一个可以学习在围棋游戏中取胜的代理。一种可能的数据集是游戏棋盘的输入输出对和该位置的获胜概率,但这很困难,因为很难表示在给定棋盘位置获胜的概率。另一种选择是观察职业选手的动作并将其记录为数据输入和输出,从而构建职业选手过去动作的数据集。然而,这也很困难,因为游戏中的状态太多,无法准确表示,而且由于不同的职业玩家有不同的策略,ground truth 很可能是错误的。还存在算法无法泛化的风险,因为这是一个策略问题,而不是简单的模式识别问题。

  • 00:10:00 在本节中,讲师介绍强化学习 (RL),这是一种自动学习做出良好决策序列的方法。 RL 用于存在延迟标签的情况,例如游戏中获胜的概率。 RL 应用于机器人、游戏和广告等各个领域。为了说明 RL 的工作原理,讲师介绍了一个具有五个状态的博弈,并解释了该博弈中如何定义长期回报。游戏的目标是通过在状态中移动并根据可用奖励做出决策来最大化长期奖励。

  • 00:15:00 在本节中,讨论了长期回报的概念以及在强化学习中使用 Q-learning 的贴现回报。贴现回报考虑了时间在决策中的重要性,有助于缓解非贴现回报可能出现的收敛问题。 Q-learning 的目标是通过存储一个 Q 表矩阵来学习每个状态下的最佳动作,该矩阵表示每个状态下每个动作的分数。通过使用 Q 表分数,代理可以确定给定状态下的最大值和相应的动作以快速做出决策。还讲解了通过树形图构建Q表的过程。

  • 00:20:00 在本节中,教授解释了 Q-learning 的迭代算法,使用一个矩阵来告诉每个状态下要采取的动作。为了计算每个状态的长期折扣奖励,他们使用贝尔曼方程,该方程由即时奖励加上折扣乘以最大可能的未来奖励组成。迭代算法应该在某一点收敛,Q 函数应该服从最优贝尔曼方程。教授强调了贝尔曼方程在理解 Q-learning 中的重要性。

  • 00:25:00 在本节中,演讲者讨论了强化学习的词汇,包括环境、代理、状态、动作、策略、奖励、总回报、折扣因子、Q 表和贝尔曼方程。 Q 表是表示在状态 S 中采取行动 A 的好坏程度的条目矩阵,策略是决策函数,它告诉我们在状态中应用什么是最佳策略。状态的数量可能太大,使得 Q 表解决方案不切实际。深度学习通过用作为神经网络的 Q 函数替换 Q 表来进入强化学习。然而,Q-scores 的动态变化使得网络的训练不同于经典的监督学习设置。

  • 00:30:00 在讲座的这一部分,教授讨论了应用深度强化学习时出现的挑战,因为它与监督学习有很大不同。主要问题之一是缺少标签,因为 Q 分数是动态的且不断变化的。为了解决这个问题,教授描述了一种基于贝尔曼方程为 Q 分数创建目标值或标签的技术。使用此代理作为标签,可以训练网络通过迭代更新更接近最佳 Q 函数,这有望导致收敛。

  • 00:35:00 在本节中,将讨论贝尔曼方程的概念及其在深度强化学习反向传播中的应用。贝尔曼方程用于计算更接近最佳奖励值的值。生成 Q 函数并将其与 Bellman 方程进行比较以确定最佳 Q 函数。然而,算法中存在发散的可能性,算法的收敛性在 Francisco Melo 的论文中得到证明。 DQN 算法的实现通过伪代码进行解释,包括初始化 Q 网络参数、遍历 episode、通过 Bellman 方程计算目标值以及使用固定 Q 目标网络进行反向传播。

  • 00:40:00 在本节中,视频讨论了深度 Q 网络在游戏 Breakout 中的实际应用。 Breakout 的目标是在不让球越过底线的情况下摧毁所有砖块。在使用 Q-learning 进行训练后,智能体想出了一个快速完成游戏的技巧,即挖一条隧道到达砖块的另一边。网络在没有人工监督的情况下自行制定了这一策略。 Q 网络的输入是一个特征表示,包括球、球拍和砖块的位置。然而,要获得完整的信息,应该使用像素。网络的输出是三个 Q 值,分别代表在特定状态下向左走、向右走或保持空闲的动作。

  • 00:45:00 在本节中,演讲者讨论了各种预处理技术,以帮助建立用于深度强化学习的深度 Q 网络架构,特别是在处理图像方面。第一种技术涉及获取连续帧以便为网络提供额外信息,而其他预处理技术包括减小输入的大小、用于图像压缩的灰度转换以及去除不重要的像素(例如某些游戏中的分数)。演讲者警告说,当降低到灰度时,丢失重要信息的危险,并详细解释了深度 Q 网络架构,说由于输入是图像,因此使用了卷积神经网络。最后,演讲者解释了需要跟踪终端状态以确保正确的循环终止,这对 y 函数很重要。

  • 00:50:00 在本节中,讲师解释了强化学习中经验回放的重要性,它允许根据过去的经验进行训练,而不仅仅是当前正在探索的内容。由于强化学习只对它探索的内容进行训练,它可能再也不会遇到某些状态转换,这使得过去的经验对于训练来说非常宝贵。经验回放创建了一个回放记忆,可以在其中存储过去的经验,并且在训练期间,算法除了探索新的状态转换之外,还可以从回放记忆中进行采样。这允许在训练中多次使用过去的经验,这对于学习重要数据点至关重要。

  • 00:55:00 在讲座的这一部分中,演讲者讨论了深度强化学习中经验回放的优势。首先,它允许数据被多次使用,而不是一次,这提高了数据效率。其次,经验回放使经验去相关,防止网络偏向于重复预测一个动作。最后,它允许计算和内存与探索进行交易,这是昂贵的。演讲者还谈到了 RL 算法中开发和探索之间的权衡,并提出了一种通过不总是采取最佳行动来激励探索的方法。

  • 01:00:00 在本节中,讲师和学生讨论了强化学习中的探索-利用权衡问题,并提供了一个使用超参数的解决方案,该超参数决定了代理应该探索而不是利用的概率。他们解释了为什么探索是至关重要的,并在重放内存中为 epsilon-greedy 探索的伪代码添加了行。他们强调,在强化学习中使用深度学习的主要优势在于它能够很好地逼近函数。最后,他们简要地谈到了强化学习中人类知识的话题,以及为什么评估算法的性能至关重要。

  • 01:05:00 在讲座的这一部分,教授解释了人类知识如何在深度强化学习(DRL)中发挥重要作用。人类可以有效且本能地解释上下文线索,例如,人类知道钥匙可以打开门,并且这种理解可以显着增强算法决策过程。困难在于使用有限的上下文信息训练算法,例如臭名昭着的具有挑战性的蒙特祖玛复仇游戏,这是 DeepMind 通过实施树搜索和深度学习算法实现的壮举。该讲座简要介绍了 Alpha Go 游戏以及组合树搜索和价值网络如何改进算法决策过程。

  • 01:10:00 在本节中,讲师介绍了策略梯度,这是与 DQN 完全不同的一类算法,它优化了从状态到动作(策略)的直接映射。讲师解释说,在策略梯度中,重点是策略本身,而不是 Q 值,并且策略网络是使用策略的梯度来更新的,这与 DQN 中的 Q 函数更新相反。通过各种视频,讲师解释了Proximal Policy Optimization (PPO) 和Competitive Self-Play 等不同的策略梯度方法,并针对您面前的实际代理强调了过度拟合的技术要点,表明需要在不同版本之间进行切换避免过拟合的代理。最后,讲师解释了元学习如何在类似任务的分布上进行训练,从而能够以最小的梯度步骤学习特定任务。

  • 01:15:00 在讲座的这一部分,演讲者讨论了探索-利用困境,以及它如何成为一种挑战,尤其是在奖励稀少的情况下。他谈到了最近一篇名为“统一基于计数的元数据以进行探索”的论文,该论文介绍了对一个状态被访问的次数进行计数并为访问计数较少的状态的代理提供内在奖励的想法。这会鼓励代理进行更多探索和查看,从而引导它发现游戏中的不同房间。演讲者还简要讨论了模仿学习以及它如何在难以定义奖励时提供帮助。

  • 01:20:00 在本节中,演讲者简要提到他们涵盖了 Redmon 等人的 YOLO 和 YOLO v2 论文。关于物体检测。没有提供进一步的信息。