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

 

第 11 讲 -- 深度学习优化 -- Frank Schneider



ML 11 的数值——深度学习的优化——Frank Schneider

Frank Schneider 讨论了深度学习优化的挑战,强调了训练神经网络的复杂性以及选择正确的优化方法和算法的重要性。他注意到可用方法的数量非常多,而且很难比较和对不同算法进行基准测试。 Schneider 提供了大型语言模型成功训练的真实示例,以及需要非默认学习率计划和飞行中途更改才能使模型成功训练。 Schneider 强调了让用户更深入地了解如何使用这些方法以及超参数如何影响训练过程的重要性,以及创建基准练习以帮助从业者为其特定用例选择最佳方法的重要性。他还讨论了像 Alpha 这样的新方法,以及如何利用它来引导神经网络的训练过程。

在关于深度学习优化数值的视频的第二部分,Frank Schneider 介绍了“Deep Debugger”工具 Cockpit,它提供了额外的工具来检测和修复训练过程中的问题,例如数据错误和模型块。他解释了规范化数据以获得最佳超参数的重要性、学习率和测试准确性之间的关系,以及训练具有随机性的神经网络的挑战。 Schneider 鼓励学生通过将梯度视为一种分布并从长远来看开发更好的自主方法来努力改进神经网络的训练。

  • 00:00:00 在本节中,Frank Schneider 介绍了深度学习优化的主题,并概述了训练神经网络所涉及的挑战。他解释说,虽然这似乎是一个关于如何训练神经网络的简单问题,但实际上有多种方法可以回答这个问题,包括对硬件和软件的考虑。然而,讲座的主要重点是用于训练神经网络的方法和算法,Schneider 强调没有万能的解决方案。他提供了一个 Midi 团队训练大型语言模型的真实示例,表明需要非默认学习率计划和学习率的中途更改才能使模型成功训练。总的来说,Schneider 的演讲强调了训练神经网络的复杂性以及谨慎选择正确的优化方法和算法的重要性。

  • 00:05:00 在本节中,演讲者讨论了有效训练神经网络的挑战,引用了 OpenAI 提供的日志示例,该日志致力于训练大型语言模型的斗争。演讲者提到,目前没有有效的方法来训练神经网络,尽管有一些指导方针和直觉可用。本讲座将重点了解为什么训练神经网络如此具有挑战性,以及可以采取哪些措施来改善这种情况。演讲者指出,这将不同于他们通常的讲座结构,因为目前有许多最先进的方法,但尚不清楚其中哪种方法最有效。

  • 00:10:00 在本节中,演讲者讨论了围绕机器学习主要是优化的误解。虽然优化涉及在损失情况下搜索最小值,但机器学习的目标是找到最适合训练数据并很好地泛化到新数据的函数。这是通过使用损失函数来实现的,该损失函数量化模型的预测与真实输出之间的差异。由于真实的数据分布通常是未知的,因此模型是在有限的数据样本上训练的,优化过程对经验损失进行操作。演讲者强调,由于更高维度的景观和表达性假设,深度学习涉及更多的复杂性。

  • 00:15:00 在本节中,Frank Schneider 解释说机器学习不仅仅是优化,因为优化的数量(经验损失)与算法实际关心的数量(真实损失)不同。过度拟合和泛化实际上比从训练到测试更复杂,例如在翻译任务中,模型在交叉熵损失上进行训练,但在翻译质量上进行评估。因此,人们开发了各种方法,例如随机梯度下降、动量方差、RMS prop 和原子,以考虑以前的梯度并了解它们在未来应该如何表现。总共有超过 150 种方法可用于优化和训练深度学习算法。

  • 00:20:00 在本节中,演讲者讨论了可用于神经网络训练的大量优化方法,有 100 多种方法可供选择。问题不仅仅是选择一种方法,还在于如何有效地使用它。例如,即使我们选择像 SGD 或 Adam 这样的优化方法,我们仍然需要决定学习率和 epsilon 等超参数,这可能很难调整。演讲者建议我们需要适当的基准来了解哪些方法是必要的和改进的,并且当前的挑战是定义深度学习背景下“更好”的含义。总的来说,重点应该放在让用户更深入地了解如何使用这些方法以及超参数如何影响训练过程。

  • 00:25:00 在本节中,Frank Schneider 讨论了比较深度学习训练算法时出现的挑战,例如强化问题、GAN 和大型语言模型的优化。很难确定性能差异是否显着,因为可能需要多次运行这些方法来解释随机性。测试所有案例可能既昂贵又耗时,因为必须对所有通用方法重复多次训练。在测试多个问题时必须分析用于训练的方法,需要更改超参数,这使得它更加昂贵。此外,Schneider 强调,SGD 和 Adam 属于算法家族,如果不指定确切的参数集,则无法直接进行比较。

  • 00:30:00 在本节中,Frank Schneider 讨论了确定深度学习最先进训练方法的过程。由于可用的优化方法数量众多,他们不得不限制自己在 8 种不同类型的问题上仅测试 15 种优化方法,从简单的二次问题到更大规模的图像分类和递归神经网络模型。为了模拟各种场景,他们在四种不同的设置中测试了这些优化方法,这些设置具有不同的超参数调整预算,从使用默认高参数的一次性调整到拥有更多可用资源的行业从业者的更大预算。目标是确定哪些优化方法在不同场景下表现最佳,以帮助从业者为他们的特定用例选择最佳方法。

  • 00:35:00 在本节中,Frank Schneider 讨论了深度学习模型的优化过程。他解释说,为了找到最佳优化方法,他们必须进行超过 50,000 次单独运行,因为有 15 种优化方法和四个学习率计划。 Schneider 指出,深度学习没有明确的最先进的训练方法,因为有几种方法在不同的测试问题上表现良好。然而,Adam 始终显示出良好的结果,而从 Adam 派生的其他方法并没有显着提高性能。总体而言,基准测试表明,目前还没有适用于所有深度学习模型的明确优化方法。

  • 00:40:00 在本节中,演讲者讨论了由于可用的各种不同方法和缺乏明确的训练协议而难以确定训练神经网络的最有效方法的困难。演讲者从他们的算法工作组讨论了 ml Commons Benchmark 的创建,这是一项旨在衡量仅由于算法变化而导致的神经网络训练加速的竞赛。目的是构建更有效的算法以加速神经网络训练。演讲者还讨论了关于如何使用这些方法的可用信息的缺乏,并建议可以使用额外的信息来创建调试工具以同时帮助用户,希望最终构建一个可以自动完成所有事情的更好的方法。

  • 00:45:00 在本节中,演讲者讨论了大多数机器学习模型如何通过在采取步骤之前选择训练数据集的单个样本来近似经验梯度。小批量梯度或经验梯度是来自真实梯度的样本,对各个梯度的平均给出真实梯度的估计,尽管估计器的方差在 PyTorch 中不可用。但是,通过使用像 backpack 这样的包,用户可以访问各个梯度及其方差。可以利用这些附加信息来指导神经网络的训练过程,例如确定是提高还是降低学习率。演讲者提供了一个示例,其中两条损失曲线看起来相同,但损失景观中的优化显示发生了两种完全不同的事情。

  • 00:50:00 在本节中,演讲者讨论了损失曲线如何显示神经网络是否正在训练,但没有解释为什么或如何改进它。损失景观有数千万个维度,几乎无法查看。然而,演讲者介绍了一个有助于表征神经网络优化过程的量,称为 alpha。 alpha 值通过观察网络步进方向的斜率来确定网络是欠步、最小化还是过冲,这表明损失景观是上升还是下降。

  • 00:55:00 在本节中,Frank Schneider 在优化神经网络时解释了 Alpha 是如何计算的。 Alpha 是一个标量值,在上一节中解释为模型移动以优化神经网络的方向。 Schneider 解释说,Alpha 标量基于与该方向观察到的损失相比的步长大小。负的 Alpha 值表示步进不足,而正值表示步进过大,1 表示直接切换到山谷的另一侧。 Schneider 还解释了如何通过将信息压缩成有意义的报告,开发人员可以创建类似于经典编程的深度学习调试工具。

  • 01:00:00 在本节中,Frank Schneider 介绍了“深度调试器”的概念和工具“Cockpit”,它通过额外的仪器来增强观众的训练过程,就像飞机上的飞行员一样。 Schneider 展示了 Cockpit 如何在训练神经网络时提供新的视角,例如步长、距离、梯度范数和梯度测试,这有助于检测和修复训练过程中的数据错误等问题。通过附加仪器,Cockpit 可以为用户提供相关信息并补充基本性能图。

  • 01:05:00 在本节中,演讲者讨论了在深度学习中使用归一化数据与原始数据如何影响神经网络的性能和最佳超参数。像素值范围为 0 到 255 的原始数据可能导致梯度元素直方图表现不佳,因此超参数也不太理想。然而,规范化数据很容易被忽略,因为在视觉上,数据看起来是一样的。另一个可能影响训练的问题是模型块,其中一个网络训练良好而另一个网络训练不佳,即使它们具有相似的梯度元素直方图。通过使用 Cockpit,可以查看网络每一层的直方图,揭示整个模型的任何退化。这有助于识别通过反复试验难以发现的模型错误。最后,使用 Cockpit 进行超参数调整可以带来新的研究和对方法的更好理解。

  • 01:10:00 在本节中,Frank Schneider 讨论了深度学习的优化以及学习率、Alpha 值和测试准确性之间的关系。他解释说,虽然较大的学习率往往会导致较大的 Alpha 值,这意味着超调并可能采取太大的步骤,但表现最佳的运行通常位于正的 Alpha 区域。这告诉我们,在神经网络训练中,在每一步都最小化可能并不总是最好的,为了获得最佳性能,超调是必要的。 Schneider 还分享了多伦多大学论文中的示例,这些示例说明了在采取本地步骤和全球步骤之间找到平衡以实现最佳结果的重要性。

  • 01:15:00 在本节中,Frank Schneider 承认训练神经网络是一项具有挑战性的任务,缺乏可遵循的明确协议。此外,他认为深度学习中的随机性是这一挑战的主要来源,这导致训练和优化是两件不同的事情。然而,他建议将梯度视为一种分布,考虑标准偏差、方差和置信度,从长远来看可以构建更好的工具并开发更好的自主方法。施耐德鼓励有兴趣的学生帮助改进神经网络的训练。
Numerics of ML 11 --Optimization for Deep Learning -- Frank Schneider
Numerics of ML 11 --Optimization for Deep Learning -- Frank Schneider
  • 2023.02.06
  • www.youtube.com
The eleventh lecture of the Master class on Numerics of Machine Learning at the University of Tübingen in the Winter Term of 2022/23. This class discusses bo...
 

第 12 讲 -- 深度学习的二阶优化 -- Lukas Tatzel



ML 12 的数值 - 深度学习的二阶优化 - Lukas Tatzel

在此视频中,Lukas Tatzel 解释了深度学习的二阶优化方法及其潜在优势。他以 2D 中的 Rosenberg 函数为例,比较了三种优化方法(SGD、Adam 和 LBFGS)的轨迹和收敛速度。 Tatzel 指出,与 LBFGS 的消息灵通的步骤相比,SGD 的跳跃行为使收敛速度变慢。他介绍了牛顿步作为一种更快的优化方法,并讨论了它的局限性,例如对条件数的依赖性。 Tatzel 还解释了广义高斯-牛顿矩阵 (GGN) 的概念,作为处理病态问题的 Hessian 矩阵的近似值。此外,他还讨论了置信域问题、如何处理非凸目标函数以及使用 CG 最小化二次函数的 Hessian-free 方法。

视频的第二部分探讨了深度学习的二阶优化技术,包括 BFGS 和 LBFGS、无 Hessian 优化和 KFC。演讲者解释说,Hessian-free 方法使用 Jacobian Vector 乘积将模型线性化,而 KFC 是基于官方信息指标的近似曲率。但是,这些方法可能会出现随机性和偏差,建议使用阻尼来解决这些问题。演讲者建议使用专门的算法,这些算法可以使用更丰富的数量(如分布)进行更新,并指出随机性的基本问题仍未解决。总的来说,二阶优化方法为深度学习的挑战提供了部分解决方案。

  • 00:00:00 在本节中,Lukas Tatzel 介绍了二阶优化方法,作为深度学习昂贵而繁琐的优化过程的潜在解决方案。他以 2D 中的 Rosenberg 函数为例,比较了三个优化器——SGD、Adam 和 LBFGS 的轨迹和收敛速度。他指出,与 LBFGS 的消息灵通的步骤相比,SGD 的跳跃行为导致收敛速度变慢,LBFGS 只需不到 10 步就可以达到 10^-8 的容差,这不仅在步骤上而且在运行时间上都更快与 Adam 和 SGD 相比。 Tatzel 提出了这些方法是否可以应用于深度学习的问题,并探讨了它们的工作原理和潜力。

  • 00:05:00 在本节中,Lukas Tatzel 解释了深度学习优化的基础知识,其中涉及预测 C 维向量并将其与实际标签进行比较以计算损失函数。深度学习的目标是找到最小化经验风险的网络参数向量 Theta 的配置。用于此的数值方法包括随机梯度下降 (SGD),它使用蒙特卡罗估计器计算有限数据的梯度估计。然而,基于梯度的方法对条件数很敏感,条件数是最大和最小方向曲率的比值。

  • 00:10:00 在本节中,Lukas Tatzel 讨论了基于梯度的方法如何对深度学习中的病态问题敏感。他解释说,如果条件数很大,那么对于基于梯度的方法来说可能会出现问题,这可能会导致转换速度变慢。为了改进基于梯度的方法的更新,Tatzel 建议在大曲率和小曲率方向上使用它们各自的反曲率重新调整梯度。通过这样做,可以引入二阶方法来减少或消除对条件数的依赖。

  • 00:15:00 在本节中,Lukas Tatzel 讨论了深度学习中的二阶优化并介绍了牛顿步的概念。该方法涉及使用二次函数逼近当前迭代的损失函数,其中假设 Hessian 矩阵是正定的。通过计算其梯度并将其设置为零,可以导出牛顿步长并将其用于最小化目的。在某些情况下,这种方法可以比基于梯度的方法快得多,如果目标函数是二次可微的并且 Hessian 矩阵是 Lipschitz 连续的,则可以实现局部二次收敛。 Tatzel 直观地比较了线性收敛和二次收敛,表明牛顿法在某些情况下可以非常快,因为它们对病态问题具有鲁棒性。

  • 00:20:00 在本节中,Lukas Tatzel 讨论了深度学习的二阶优化方法及其不常用的原因。二阶方法可能比基于梯度的方法更快,但它们需要访问 Hessian 矩阵,这对于大型非凸问题可能难以计算和存储。此外,处理 Hessian 计算中的随机性会影响这些方法的性能。 Tatzel 继续解释了如何应对这些挑战,并概述了不同方法背后的概念。

  • 00:25:00 在本节中,Lukas Tatzel 解释了深度学习的二阶优化和牛顿更新方法的局限性。他演示了关于 Tau 函数的二阶导数的计算,Tau 是一个具有常曲率 Lambda 的二次函数。沿特征向量的曲率是特征值,如果曲率是负的,则二次从下无界,使牛顿更新方法无意义。为了解决这个问题,Tatzel 引入了广义高斯-牛顿矩阵 (GGN),它是 Hessian 矩阵的半正定近似,可以作为它的替代品。他通过将变化规则应用于参数向量和模型结果之间的拆分,从损失函数中推导出 GGN。

  • 00:30:00 在本节中,Lukas Tatzel 讨论了深度学习模型的二阶优化概念。他解释了乘积法则及其工作原理,以及如何在应用链式法则时计算矩阵的导数。 Tatzel 然后谈到了 GGN,一个忽略模型曲率的正定矩阵,以及包含模型相对于 Theta 的二阶导数的 Hessian。他比较了 GGN 和 Hessian,表明 GGN 是正定对称的,使其成为深度学习模型优化的有用工具。

  • 00:35:00 在本节中,Lukas Tatzel 讨论了 Hessian 矩阵及其如何确定 GGN(广义高斯-牛顿)算法是否为半正定算法。对于所有相关的损失函数,Hessian 是半正定的。在损失函数是这样的情况下,损失被计算为模型输出和真实标签之间的平方范数,Hessian 矩阵是标量乘以单位矩阵,使其为正定矩阵。 Lukas 还讨论了 Fischer 信息矩阵,它可用于定义明确定义的 GGN 步骤。在这种情况下,GGN 算法是分布空间中的最速下降法,其中参数空间由两个分布之间的距离来衡量。

  • 00:40:00 在本节中,Lukas Tatzel 解释了深度学习二阶优化中的置信域问题。在凸的情况下,仍然存在二次模型任意糟糕的问题,导致需要阻尼并将迭代更新限制在某个信任半径内。通过将 Delta 时间恒等式添加到曲率矩阵,可以创建修改后的牛顿步长,并且可以通过阻尼来控制更新的保守程度。选择半径时,根据预期损失减少与实际损失减少之间的减少比率,直接使用 L-BFGS 启发式方法来处理阻尼会更容易。

  • 00:45:00 在这部分视频中,Lukas Tatzel 讨论了如何通过计算 ggn 和 fissure 等半正定曲率矩阵来处理深度学习中的非凸目标函数。可以解释这些矩阵并提供它们对有限数据的无偏估计。阻尼启发式算法(例如 living back Mark)可用于控制更新的保守程度。然而,由于存储限制,反转这些巨大的曲率矩阵是一个问题。为了解决这个问题,可以借鉴数值代数的思想,例如低阶近似、迭代方法和结构化近似。 Tatzel 然后讨论了 BFGS 的核心思想,它逐渐从梯度观察中学习到逆 Hessian 的近似值,目的是从梯度观察中推断出逆 Hessian 的样子。

  • 00:50:00 在本节中,Lukas Tatzel 解释了使用二阶优化进行深度学习的想法。二阶导数是通过对梯度进行差分近似获得的,然后使用割线方程将其转移到多维情况。目标是近似逆 Hessian,因此采用实际逆 Hessian 的属性,并且要求近似具有相同的属性。更新仅涉及先前的近似值和向量 SK 和 yk。通过使用某个固定大小 l 的固定窗口来存储近似值,并且仍然可以获得良好的曲率估计。

  • 00:55:00 在本节中,Lukas Tatzel 介绍了深度学习的二阶优化方法,特别关注 Hessian-free 方法。这种方法使用 CG 来最小化二次函数并且只需要矩阵向量乘积,允许在不显式存储曲率矩阵的情况下进行高效计算。 GGn 用作曲率度量,并且通过使用蒙特卡洛估计,能够针对给定的输入-输出对计算矩阵。为了有效地将雅可比矩阵与向量相乘,核心思想是用方向导数代替雅可比向量积。这提供了一种无需显式构造矩阵即可计算乘积的有效方法。

  • 01:00:00 在本节中,演讲者讨论了深度学习的二阶优化,特别是 Hessian-Free 优化和 KFC 技术。无 Hessian 优化涉及通过将 F at theta 加上 Delta Theta 近似为 theta 的 F 加上 Jacobian times Delta Theta 并使用 Jacobian Vector 乘积来对模型进行线性化。但是,这种方法在数值上不稳定,因此改为使用 Jacobian Vector 乘积的近似值。另一方面,肯德基是基于官方信息度量的近似曲率,涉及两个近似:块对角线近似和交换期望和 chronica 产品操作。块对角线结构使得矩阵求逆变得微不足道,并且期望的近似是合理的,因为很难计算两个向量的长期乘积。

  • 01:05:00 在本节中,Lukas Tatzel 讨论了访问和反转曲率矩阵的三种方法,曲率矩阵用于深度学习的二阶优化。第一种方法是 BFGS 和 LBFGS,它们使用 Hessian 的动态降低近似,是小型确定性问题的默认选择。第二种方法是 Hessian-free 优化器,它类似于牛顿步,但需要很少的内存和更多的顺序工作。但是,它在使用批量范数层的较大小批量时遇到了麻烦。最后一种方法是 KFC,它是 Hessian 信息度量的轻量级表示,广泛用于不确定性量化。在处理有限内存时建议使用 K-Fik 优化器,因为存储和反转块的较小组件比对整个矩阵执行相同操作更容易和更快。

  • 01:10:00 在本节中,Lukas Tatzel 讨论了计算牛顿步时的随机性问题,这涉及反转 Hessian 矩阵并将其应用于梯度。由于只有 Hessian 矩阵和梯度的估计值,即使它们是无偏的,牛顿步仍将是有偏的。 Tatzel 在 1D 中提供了一个直观的示例,其中 1/H hat 的期望与 1/H 不同,表明即使有了曲率的估计,在通过反演函数映射它时仍然存在一些不确定性。这突出了在深度学习的二阶优化中处理随机性的挑战。

  • 01:15:00 在本节中,演讲者讨论了深度学习的二阶优化中可能出现的偏差和不稳定性。在估计反曲率时,可能会产生重尾,从而导致期望值高于平均水平。这导致整体牛顿步在预期中太大。此外,由于随机估计或样本接近于零时的偶然性,可能会出现偏差和不稳定性。这些问题可以通过应用阻尼来解决,阻尼使分布远离零并减轻潜在的偏差和不稳定性。

  • 01:20:00 在本节中,Lukas Tatzel 讨论了使用阻尼作为外环优化过程的挑战,它平等对待所有方向,可能不是解决训练过程复杂性的合适方法。他建议使用专门的算法,这些算法可以使用分布等更丰富的数量来进行更新,并指出随机性的基本问题仍未解决。总的来说,Tatzel 建议像 BFGS、LBFJS、Heston 免费优化器和 KFC 这样的二阶优化方法为深度学习的挑战提供了部分解决方案,包括 Hill conditioning 问题。
Numerics of ML 12 -- Second-Order Optimization for Deep Learning -- Lukas Tatzel
Numerics of ML 12 -- Second-Order Optimization for Deep Learning -- Lukas Tatzel
  • 2023.02.06
  • www.youtube.com
The twelfth lecture of the Master class on Numerics of Machine Learning at the University of Tübingen in the Winter Term of 2022/23. This class discusses bot...
 

第 13 讲——深度学习中的不确定性——Agustinus Kristiadi



ML 13 的数值 - 深度学习中的不确定性 - Agustinus Kristiadi

该视频讨论了深度学习中的不确定性,特别是神经网络的权重,以及由于渐近过度自信问题而纳入不确定性的重要性,其中神经网络对不应分类的分布外示例给出高置信度预测肯定。该视频提供了有关如何使用二阶量(特别是曲率估计)将不确定性引入深度神经网络的见解,使用高斯分布来近似最后一层的权重,并使用 Hessian 矩阵来估计神经网络的曲率。该视频还讨论了用于选择神经网络模型和参数的贝叶斯形式主义和拉普拉斯近似。

在讲座的第二部分,Agustinus Kristiadi 在本视频中讨论了在深度学习模型中引入不确定性的各种方法。一种技术涉及使用线性化拉普拉斯近似将神经网络转换为高斯模型。另一种方法是分布外训练,在原始训练集未覆盖的区域中添加不确定性。 Kristiadi 强调了增加不确定性以防止模型过度自信的重要性,并建议使用概率措施来避免寻找理想后验的成本。这些技术将在即将推出的概率机器学习课程中进一步探讨。

  • 00:00:00 在本节中,演讲者解释了讲座的主题,即如何将不确定性引入机器学习以及如何进行计算以实现这一目标。本讲座使用了以前讲座的见解,特别是在求解积分和使用贝叶斯深度学习来获得不确定性方面。演讲者然后讨论了深度神经网络中不确定性的重要性和渐近过度自信的问题,其中神经网络对分布外的示例给出了高置信度的预测,这些示例不应以这种确定性进行分类。本讲座旨在提供有关如何使用二阶量(特别是曲率估计)将不确定性引入深度神经网络的见解。

  • 00:05:00 在本节中,Agustinus Kristiadi 讨论了深度学习中的不确定性,特别是在使用 ReLU 非线性的分类网络中。他提出了真实分类器的一个基本属性:如果 logit 层是具有 ReLU 非线性的前几层的线性组合,则网络的输出仍然是分段线性函数,由前几层的组合定义。远离该空间中的训练数据会导致分类器对 softmax 输出具有线性输入的区域,并且概率为 1 时,每个线性输出函数的增益不同。因此,在这些区域中移动得足够远将导致一个类的置信度任意高,这可以在红色的三个线性输出特征图中直观地观察到。

  • 00:10:00 在本节中,Agustinus Kristiadi 解释了真实分类器的基本属性,它可以在某些类别中产生高置信度,以及为什么它不能简单地通过重新训练权重来解决。解决方案是增加神经网络权重的不确定性,为此,我们需要对神经网络进行贝叶斯解释,这可以通过最大化训练期间被最小化的函数的指数来实现。这意味着深度学习已经在进行贝叶斯推理,但只计算后验模态,这可能会有问题。具有连续输出的监督问题的常见设置是二次损失和权重衰减正则化器,这相当于在权重上放置高斯先验,在数据上放置高斯似然。

  • 00:15:00 在本节中,演讲者讨论了深度学习中的不确定性和深度神经网络的贝叶斯解释。演讲者指出,预测所需的完整后验分布是难以处理的。虽然蒙特卡罗方法在理论上是有根据的,但它们非常耗时,并且可能对那些进行耐心推理的人不利。因此,演讲者主张采用最便宜的积分方法:自动微分与线性代数相结合。演讲者分享了一个令人惊讶的结果,即任何高斯近似度量,即使只是网络最后一层的权重,也已经部分解决了过度自信的问题,如定理所示。演讲者强调,权重上的概率分布是否正确并不重要,在权重上添加任何概率度量都可以解决置信度问题。

  • 00:20:00 在本节中,演讲者解释了如何将高斯分布应用于深度神经网络分类层中最后一层的权重,以解决分类中的不确定性问题。说话者假设可以使用高斯分布的任何协方差,因为它无关紧要,分布的均值由深度神经网络的训练权重给出。然后,演讲者使用高斯分布来解决上一张幻灯片中的问题,方法是对 X 星处 theta 的 F 上的软 Max 进行近似积分。 David Makai 近似用于计算派生变量的 soft Max,该派生变量具有网络原本具有的输出的平均预测。可视化中描绘此近似值的蓝线与一条线有界,这为分类中的不确定性提供了解决方案。

  • 00:25:00 在本节中,Agustinus Kristiadi 讨论了深度学习中不确定性的重要性,特别是关于神经网络的权重。他认为,重要的是要考虑到我们不太了解权重,并避免在我们不知道的情况下假设我们知道某些事情,因为这会产生问题。可以进行数学近似,例如对权重进行线性化和使用高斯分布,并且已经证明,只要我们有一点点不确定,就可以了。 Sigma 的选择可以通过曲率估计的自动微分来进行,这是最快和最便宜的方法。
     
  • 00:30:00 在本节中,Agustinus Kristiadi 解释了在通过深度学习找到损失函数的模式后,我们如何使用 Hessian 矩阵形成高斯近似。包含损失函数的二阶导数的 Hessian 矩阵用于构造近似值。虽然高斯近似是局部的而不是完美的,但它是完全解析的,使其成为一个有利的近似。为了利用这种近似,我们需要一个经过训练的神经网络,一旦网络经过训练,我们就可以使用 AutoDiff 获得该点的 Hessian,这是一个有效的封闭形式过程。

  • 00:35:00 在本节中,演讲者讨论了深度学习中不确定性的概念以及如何使用 Hessian 矩阵对其进行评估。 Hessian 矩阵可以在深度神经网络训练后计算,并提供了一种在不增加网络交易成本的情况下估计不确定性的方法。演讲者还指出,这种方法允许保留点估计,这对实际应用很有用。然而,也有一些缺点,例如 Hessian 的计算成本很高,并且需要近似值才能使其易于处理。广义高斯-牛顿矩阵就是一种可以在实践中使用的近似值。

  • 00:40:00 在本节中,Agustinus Kristiadi 讨论了深度学习中的不确定性以及如何使用高斯-牛顿黑森矩阵 (GNG) 来估计神经网络的曲率。他解释说 GNG 是正半定的,并且与线性化有很好的联系,当与拉普拉斯近似结合时可以产生一个易于处理的模型。该模型可用于回归并产生高斯过程,其均值函数由神经网络的输出给出。

  • 00:45:00 在本节中,演讲者讨论了深度学习中的不确定性,尤其是神经网络中的不确定性。他们注意到核心方差函数是通过在网络的雅可比行列式中找到损失函数的模式给出的,取内积与 Hessian 的倒数。演讲者提到这个过程可以以 David Pinkai 开发的简单近似的形式用于分类。该过程涉及定义损失函数、计算损失函数的 Hessian 以及训练网络相对于权重的 Jacobian。最后,将两者组合成一个乘积,给出了 x 星的 f 的预测函数,该函数在 x 中仍然是非线性的,但在权重空间中是线性的。发言人强调,这一过程有助于避免过度自信,特别是在分类的情况下。

  • 00:50:00 在本节中,Agustinus Kristiadi 讨论了贝叶斯形式主义及其在深度学习中的作用。通过将网络的权重线性化并使用拉普拉斯近似,我们可以将难以处理的后验积分简化为后验和损失函数的简化形式。此过程可以为我们提供衡量模型与数据拟合程度的指标,这对于调整模型的参数或方面很有用。通过计算数据的证据,我们可以选择具有最高证据的模型并选择更接近数据的模型。

  • 00:55:00 在本节中,演讲者讨论了如何使用拉普拉斯近似来选择神经网络的模型和参数。演讲者解释说,Hessian 取决于损失函数的形状,并且随着您添加更多层,损失函数可能会变得更窄,从而导致更好的拟合。演讲者展示了一个图表,表明大约两到四层可能是最佳选择。演讲者还讨论了 Occam 因子为何不像高斯过程那样简单,因为 Hessian 对模型解释数据的程度有重要影响。然后,演讲者展示了一个深度神经网络的可视化效果,该网络采用线性化拉普拉斯近似来解决分类问题,并解释了如何使用先验精度参数来影响模型的置信度。最后,演讲者讨论了如何使用拉普拉斯近似来选择离散选项,例如层数或参数(例如使用梯度下降的先验位置)。

  • 01:00:00 在本节中,演讲者讨论了深度学习中的不确定性以及如何使用线性拉普拉斯近似来解决它。该方法涉及在选择网络层数时使用概率方法来确定层的先验位置。然而,虽然此过程适用于选择先验位置,但它可能不适用于其他任务,例如选择层数。演讲者接着讨论了线性拉普拉斯逼近,以及如何将其用作黑盒工具,将深度神经网络转化为高斯模型来处理不确定性。最后,演讲者讨论了一种解决模型权重不具有不确定性的问题的方法,这涉及向网络添加一个简单的修复。

  • 01:05:00 在本节中,Agustinus Kristiadi 讨论了添加无限数量的权重以解决深度神经网络中数据的无限复杂性的问题。他解释说,添加无限多的特征可以解决这个问题,并展示了如何跟踪无限多的特征并不一定是一项代价高昂的任务。渐近地,不确定性变为 C 上的最大熵 Thing 1,而不会增加模型的复杂性。

  • 01:10:00 在本节中,演讲者解释了如何将不确定性添加到深度学习中以改进预测,特别是在训练数据很少或存在对抗性输入的领域。该方法涉及训练网络的均值,然后添加不改变点预测但增加不确定性的单元,这些单元可以移动和缩放。这种技术称为分布外训练,可以使用基于数据广度的长度尺度定义近似高斯过程来实现。增加不确定性的成本可以忽略不计,如果数据与训练数据相去甚远,它只会增加一个降低置信度的后盾。

  • 01:15:00 在本节中,演讲者讨论了如何将不确定性引入深度学习模型。一种方法是通过非分布训练,其中使用不包含原始训练集中使用的对象的图像创建新数据集。然后将网络训练为在这些区域中具有不确定性。通过定义一个包含分布外损失的损失函数,可以调整损失函数的 Hessian 曲率估计(其中找到损失模式)以产生所需的不确定性量。演讲者还指出,引入不确定性在深度学习中很重要,因为它有助于防止模型出现病态和过度自信。

  • 01:20:00 在本节中,演讲者讨论了在不改变其基本结构的情况下向分类器添加不确定性的概念。权重空间中网络的线性化可以实现这一点,通过计算损失函数的 Jacobian 和 Hessian,我们可以将深度神经网络转化为高斯过程。可以使用此技术向网络添加功能,例如渐近校准置信度。演讲者强调了概率训练的重要性以及在机器学习中使用概率度量而不需要完全后验跟踪。这种方法可以解决过度自信等问题,同时避免寻找理想后验的成本。最后,演讲者建议在即将到来的概率机器学习课程中进一步探索这些技术的使用。
Numerics of ML 13 -- Uncertainty in Deep Learning -- Agustinus Kristiadi
Numerics of ML 13 -- Uncertainty in Deep Learning -- Agustinus Kristiadi
  • 2023.02.06
  • www.youtube.com
The thirteenth lecture of the Master class on Numerics of Machine Learning at the University of Tübingen in the Winter Term of 2022/23. This class discusses ...
 

第 14 讲——结论——Philipp Hennig



ML 14 的数值——结论——Philipp Hennig

Philipp Hennig对《Numerics of Machine Learning》课程进行了总结,强调解决机器学习中与数值分析相关的数学问题的重要性,如积分、优化、微分方程和线性代数。他讨论了对数据集执行线性代数的复杂性,以及它与处理单元和磁盘的关系。 Hennig 还涵盖了诸如处理非平凡大小的数据集、求解线性系统的算法、求解偏微分方程和估计积分等主题。最后,他承认训练深度神经网络的困难以及克服随机性问题的解决方案的必要性。

在他的系列讲座的结尾,Philipp Hennig 强调了超越仅仅训练机器学习模型以及了解模型知道多少和不知道什么的重要性。他谈到了估计损失函数的曲率以构建深度神经网络的不确定性估计,以及概率的重要性,但由于计算复杂性,不一定在每种情况下都应用贝叶斯定理。 Hennig 还强调了数值计算在机器学习中的重要性以及开发新的以数据为中心的计算方式的必要性。最后,他征求有关课程的反馈并讨论即将到来的考试。

  • 00:00:00 在本节中,Philipp Hennig 对整个机器学习数值课程进行了总结,他认为由于不同讲师的内容各不相同,这一点至关重要。他解释说,机器学习本质上涉及解决没有封闭形式解决方案的数学问题,而不是涉及算法的经典人工智能。机器学习中的问题与数值分析有关,包括积分、优化、微分方程和线性代数。 Hennig 强调了理解在数据集上进行线性代数的复杂性及其与处理单元和磁盘的相关性的重要性。

  • 00:05:00 在本节中,Philipp Hennig 讨论了线性代数在机器学习中的作用,特别是在高斯过程回归中的作用。他解释说,要学习具有均值和协方差的预测分布,我们需要求解一个线性方程组,涉及矩阵乘以向量的逆运算。有许多求解此类线性系统的算法,包括称为 Cholesky 分解的经典算法,它可以被视为构造逆矩阵的迭代过程。 Hennig 指出,此近似值可用作矩阵逆矩阵的估计值,但其质量可能因数据顺序而异。

  • 00:10:00 在本节中,Philipp Hennig 解释了以某种随机顺序遍历数据集并从磁盘加载它的位而忽略其余部分的线性开销。他将这种方法与学生通过概率机器学习课程学习的方法进行了比较,即解决两个不同的线性优化问题来求解一个方程。他还强调,会出现有限的不确定性,这会导致两个不确定性来源,包括有限的数据集和有限的计算,它们不能给出完整的解决方案。

  • 00:15:00 在这部分视频中,Philipp Hennig 解释了解决贝叶斯影响高斯过程回归中线性问题的复杂性。基本案例中的费用水平比大多数人可能了解到的要微妙得多。从中得出的四个主要结论是,您可以选择不查看整个数据集,您可以使用类似 Cholesky 的算法,该算法给出数据集中成本的线性估计和迭代次数的二次方,您可以使用一种更高效的算法,它可以快速收敛,但在每次迭代中的代价是二次方的,或者您可以选择 Cholesky,它会在数据点数量上产生立方开销。

  • 00:20:00 在本节中,Hennig 讨论了正确处理非平凡数据集的重要性,以及如何有效地对其进行操作的决定。他还继续解释了如何处理无限维数据集,特别是关于随时间演化的系统,以及用于线性时间相关和时间不变问题的算法,称为卡尔曼滤波和平滑。 Hennig 强调,这种类型的算法既容易写下来,又在时间步数上呈线性增长。他还强调了理解低层次计算层次结构的重要性,因为它可以用来提高更高层次算法的性能。

  • 00:25:00 在视频的这一部分,Philipp Hennig 讨论了 smoother 算法,该算法用作簿记算法,通知链中所有较早的变量关于它在未来所做的观察。他还谈到了如何将算法快速应用于观测值不是状态空间的线性高斯变换的设置,以及扩展卡尔曼滤波器的动力学。 Hennig 还谈到了这个框架的算法景观和结构,它非常灵活,可以用来构建一个强大的算法来求解微分方程。

  • 00:30:00 在本节中,Philipp Hennig 讨论了如何将代数隐式方程、连续群对称和偏微分方程都包含在与机器学习中的常微分方程相同的算法语言中。他还提到了结合系统观察的价值,例如测量它所走的路径或知道它的起点和终点,以确定状态空间部分的未知值。 Hennig 指出,随着仿真包变得越来越多样化,对仿真方法有广泛了解的必要性变得越来越小,因为仿真方法本质上可以看作是一个过滤器。

  • 00:35:00 在视频的这一部分,Philipp Hennig 讨论了机器学习中的方法如何管理信息,并指出来自磁盘或连接到计算机的传感器的信息之间并没有真正的区别,以及来自将其写成代数方程式的程序员的信息。他还提到,信息运算符充当用户和算法设计者之间的接口。他还解释了如何使用高斯过程回归求解偏微分方程,这与过滤模拟方法本质上是一样的。但是,他指出,如果偏微分方程不是线性的,则无法使用滤波器求解。

  • 00:40:00 在本节中,Philipp Hennig 总结了“ML 数值”系列的结论,该系列涵盖微分方程和机器学习中的集成。他首先谈到了函数的高斯过程推理,由于函数空间的性质,这可能很复杂。然而,通过观察非线性函数并应用各种信息源,例如偏微分方程和边界值,它们可以组合在一个大的高斯过程推理方案中,从而产生动态系统的量化表示。然后,Hennig 继续介绍概率推理中的积分,他介绍了蒙特卡洛算法,这是一种无偏估计,收敛速度较慢,但适用于任何可积函数。

  • 00:45:00 在本节中,Philipp Hennig 讨论了估计机器学习积分的最佳方法。他建议积分估计收敛到积分真实值的速率是样本数平方根的 1,这取决于所使用的算法。然而,贝叶斯求积法这种花费大量时间对被积函数建模的算法可以很好地执行,尤其是在低维问题中,并且收敛速度比蒙特卡洛快得多,甚至超多项式快。 Hennig 建议构建仅适用于一小部分问题的算法可以更好地适用于该问题的每个实例,但可能会严重破坏该类之外的问题。最终,最好的算法将取决于所解决问题的性质。

  • 00:50:00 在本节中,Philipp Hennig 探讨了当代机器学习数值问题的挑战,特别是训练深度神经网络的问题。尽管有许多可用的优化器,但它们从根本上令人沮丧且效率低下,需要不断的保姆和超参数调整,而且并不总是有效。过去的优化是点击一个按钮,然后看着算法完美运行,而现在机器学习需要一个超过 100 人的团队来管理大型语言模型,这导致资源利用效率低下。主要问题是随机性,虽然它正在推动整个机器学习社区,但目前还没有已知的优雅解决方案来解决这个问题。

  • 00:55:00 在本节中,Philipp Hennig 通过强调训练深度神经网络的困难来总结计算不确定性的讲座课程。尽管由于有限的数据和计算而对小批量梯度进行评估,但通过此过程引入的大量噪声实际上会降低优化算法的性能。 Hennig 表示,这个问题的解决方案将使深度神经网络的训练速度更快,并改变机器学习的未来。与此同时,我们仍然可以使用可用资源(如曲率估计)来构建新的算法和技术。

  • 01:00:00 在本节中,Philipp Hennig 讨论了在机器学习中需要做的不仅仅是训练双网络,以及了解模型知道多少和不知道什么的重要性。 Hennig 解释说,估计损失函数的曲率有助于使用拉普拉斯近似以轻量级方式构建深度神经网络的不确定性估计。这可以用于不同的用例,并且可以与网络权重空间的线性化相结合,将任何深度神经网络近似地转化为高斯过程参数高斯回归算法。 Hennig 强调,虽然概率很重要,但没有必要在所有情况下都应用贝叶斯定理,因为它的计算量太大。取而代之的是,找到既能增加价值又不会在计算上过于昂贵的快速解决方案是一种更好的方法。

  • 01:05:00 在本节中,Philipp Hennig 强调了数值计算在机器学习中的重要性。他解释说,数值计算是与数据源交互的主动代理,必须主动决定如何使用它们接收到的数据。通过认真对待这种联系,可以开发新的以数据为中心的计算方式,这些方式可能更灵活、更易于使用,并且更容易推广到不同的设置。 Hennig 还强调了理解数值算法如何工作以成为更好的机器学习工程师的重要性。最后,他征求有关课程的反馈并讨论即将到来的考试。
Numerics of ML 14 -- Conclusion -- Philipp Hennig
Numerics of ML 14 -- Conclusion -- Philipp Hennig
  • 2023.02.13
  • www.youtube.com
The fourteenth and final lecture of the Master class on Numerics of Machine Learning at the University of Tübingen in the Winter Term of 2022/23. This class ...
 

7 分钟了解支持向量机 (SVM) - 有趣的机器学习



7 分钟了解支持向量机 (SVM) - 有趣的机器学习

该视频介绍了支持向量机 (SVM),这是一种分类算法,用于具有两个类别的数据集,它根据数据集的极值绘制决策边界或超平面。它还讨论了如何通过使用内核技巧将 SVM 转换为更高维的特征空间来将 SVM 用于非线性可分数据集。该视频介绍了 SVM 的优势,例如在高维空间中的有效性、内存效率以及使用不同内核实现自定义函数的能力。然而,该视频也指出了该算法的缺点,例如当特征数量大于样本数量时性能不佳以及缺乏直接概率估计,这需要昂贵的交叉验证。

  • 00:00:00 在本节中,我们将了解支持向量机 (SVM) 以及如何使用它们对具有两类的数据集进行分类。 SVM 算法查看数据集的极值,并在数据集中的极值点附近绘制决策边界或超平面。本质上,支持向量机算法是最好区分这两个类的边界。然后,我们了解非线性可分数据集,以及 SVM 如何使用内核技巧将它们转换为更高维的特征空间。流行的内核类型包括多项式内核、径向基函数 (RBF) 内核和 sigmoid 内核。然而,选择正确的内核是一项非常重要的任务,可能取决于手头的具体任务。

  • 00:05:00 在本节中,将讨论支持向量机 (SVM) 的优点和缺点。 SVM 在高维空间中有效,并在决策函数中使用训练点的子集,使其具有内存效率。可以为决策函数指定不同的内核,包括自定义内核,支持向量机可用于医学影像、金融行业和模式识别等各种应用。然而,SVM 的缺点包括如果特征数量大于样本数量则性能较差,并且缺乏直接概率估计,这需要昂贵的交叉验证。
Support Vector Machine (SVM) in 7 minutes - Fun Machine Learning
Support Vector Machine (SVM) in 7 minutes - Fun Machine Learning
  • 2017.08.15
  • www.youtube.com
Want to learn what make Support Vector Machine (SVM) so powerful. Click here to watch the full tutorial.⭐6-in-1 AI MEGA Course - https://augmentedstartups.in...
 

“深度学习革命” - Geoffrey Hinton - RSE 总裁讲座 2019



“深度学习革命” - Geoffrey Hinton - RSE 总裁讲座 2019

被誉为“深度学习教父”的杰弗里·辛顿 (Geoffrey Hinton) 讨论了深度学习和神经网络的历史和演进,使用深度学习创造可以像人脑一样学习的机器的挑战和令人兴奋的可能性,以及使反向传播更有效的技巧和技巧。他还描述了神经网络在语音识别和计算机视觉方面的成功、神经网络在计算机视觉和无监督预训练方面的演变,以及它们在语言建模和机器翻译方面的有效性。最后,他强调了类比推理的价值,并讨论了他的“胶囊”理论和将知识连接到一个从整体预测部分的模型中。

深度学习先驱杰弗里·辛顿 (Geoffrey Hinton) 在演讲中提倡将关联记忆、快速记忆和多时间尺度集成到神经网络中,以实现长期知识和临时存储,这对于真正的推理是必不可少的。此外,他还讨论了先验信念和数据之间的平衡行为、无监督学习的潜力、卷积网络结合视点知识和平移等变性识别对象的效率,以及将符号推理与联结网络(如 transformer)相结合的必要性网络。他还解决了机器学习中无意识偏见的问题,并认为通过识别和纠正偏见,它们比人类偏见更容易解决。最后,他强调需要为人工智能领域的年轻研究人员提供更多资金和支持。

  • 00:00:00 如果你对深度学习很熟悉,那一定要感谢被誉为“深度学习教父”的Geoffrey Hinton教授,他于1978年在爱丁堡获得人工智能博士学位,并因他的研究获得了无数奖项对机器学习的贡献。在演讲的第一部分,他讨论了深度学习和神经网络的历史,以及它们多年来的发展历程。他还谈到了使用深度学习来创建可以像人脑一样学习的机器的挑战和令人兴奋的可能性。

  • 00:05:00 在本节中,Geoffrey Hinton 谈到了自 1950 年代初以来存在的两种人工智能范式。一种是受逻辑启发的方法,它将智能视为使用符号规则操纵符号表达式。另一方面,另一种方法认为智能的本质是学习神经网络中连接的强度。与另一种方法侧重于推理相比,这种方法更侧重于学习和感知。这些不同的方法导致了对内部表示的不同看法,以及使计算机做你想做的事情的相应方法。 Hinton 将智能设计方法与训练或学习策略进行了比较,后者涉及向计算机展示大量示例。

  • 00:10:00 在视频的这一部分,Geoffrey Hinton 解释了深度学习革命是如何发生的,这场革命始于训练神经元网络通过多层学习复杂的特征。使用理想化的神经元,它模拟线性和非线性函数。同时,训练网络有不同的方法,包括有监督和无监督训练,反向传播是后者最有效的算法。最后,他指出深度学习如何涉及扰动网络以衡量效果,然后在需要时改变网络,这比面对未知变量的扰动进化方法要有效得多。

  • 00:15:00 在这节课中,Hinton 博士讨论了反向传播的优化技术,它根据实际答案与正确答案之间的差异计算权重的梯度,用于一小批训练示例。他解释了基于梯度更新权重的过程以及使用随机梯度下降来优化该过程。 Hinton 博士接着讨论了使反向传播更有效的技巧和技术,包括对较大梯度使用动量和较小的学习率,最终得出结论,尽管发表了数百篇期刊论文,但使用这些技巧和任何东西一样好在更复杂的方法上。最后,他指出,在 1990 年代,神经网络缺乏适当的初始化技术和较小的数据集导致机器学习社区暂时放弃了神经网络。

  • 00:20:00 在本节中,深度学习领域的领军人物 Geoffrey Hinton 讨论了深度学习研究的历史以及该领域研究人员面临的挑战。他描述了在反向传播的早期,许多论文是如何被拒绝或批评的,因为它们专注于无监督学习,这不符合计算机视觉的主流范式。然而,Hinton 认为,无监督学习与 dropout 等技术相结合,是使反向传播适用于深度网络的关键因素,此后帮助彻底改变了深度学习领域。

  • 00:25:00 在本节中,Hinton 解释了神经网络在语音识别和计算机视觉方面的成功。深度学习的第一个重大应用是语音识别,其中前端通过获取频谱图的中间帧并识别一个人试图表达的音素来进行声学建模。深度学习的第一个大规模商业相关应用是语音识别,其中前端神经网络的性能优于 IBM 和其他地方的高度调优技术。另一个重要事件是 2012 年的 ImageNet 竞赛,其中深度神经网络的错误率明显低于传统计算机视觉技术。

  • 00:30:00 在本节中,Geoffrey Hinton 教授讨论了用于计算机视觉、机器翻译和无监督预训练的神经网络的演变,以及计算机视觉社区最初如何怀疑这些神经网络的成功。他继续讨论软注意力和变换器,以及后者如何更适合协方差,使其对眼睛彼此相同等事物更加敏感,以及无监督预训练如何迫使神经网络捕获有关的信息单词周围的单词可以告诉您该单词的含义。

  • 00:35:00 在本节中,Hinton 解释了在自然语言处理任务(例如基于上下文消除词义歧义)中使用卷积神经网络和转换器之间的区别。卷积神经网络使用目标词周围的词来改变其表示,而 transformers 通过 back-ravine 导数训练网络以学习将词向量转换为查询、键和值,用于关注其他词和激活相应的表示。 Transformer 已被证明在语言建模和机器翻译方面非常有效,并被用于开发 Burt 等方法,该方法使用无监督学习通过下一个词片段的概率来学习词嵌入。

  • 00:40:00 在讲座的这一部分,Hinton 讨论了一个名为“GPT-2”的实验,它可以生成看起来像是人类编写的文本。 GPT-2 模型包含一个 5 亿个参数,在数十亿个文本单词上进行训练,可以生成连贯且易于理解的故事。 Hinton 推测这种类型的推理不是适当的基于逻辑的推理,而是一种直觉推理。他还指出,很难知道模型真正理解了多少,他质疑该模型是否只是在进行大量关联,或者它是否理解得比这多一点。

  • 00:45:00 在本节中,Geoffrey Hinton 强调了类比推理的价值及其在提高推理能力方面的作用。他将顺序推理与 AlphaGo 游戏中的直觉推理进行了比较,解释说直觉和逻辑推理对于做出明智的决策都是必不可少的。 Hinton 还讨论了卷积神经网络如何提高效率但无法像人类一样识别物体,从而得出结论人类使用坐标系并理解物体的部分和整体之间的关系来识别它。这凸显了深入了解神经网络架构以改进它们识别对象的方式的必要性。

  • 00:50:00 在这一节中,Hinton 用一个任务来说明空间理解对坐标系的依赖。他展示了一个线框立方体,并要求观众在不使用坐标系的情况下指出角的位置,这表明人们倾向于相对于他们的坐标系来思考立方体。 Hinton 然后讨论了他的“胶囊”理论,该理论将学习表示形状片段的神经元分组,并在每个片段上施加坐标系以捕获内在几何形状。他计划在无人监督的情况下训练这些胶囊来捕捉形状知识。

  • 00:55:00 在本节中,Hinton 讨论了将知识连接到从整体预测部分的模型中。该模型由一个变换器训练,该变换器查看已经提取的部分,获取这些部分,并尝试预测哪些整体可以解释这些部分。 Transformer 擅长寻找事物之间的相关性,并可以预测可能存在的对象以及它们的姿势。 Hinton 举了一个例子,模型学习了正方形和三角形,之后可以在新图像中识别它们。还可以训练该模型识别门牌号,而无需显示标签。

  • 01:00:00 在本节中,我们将了解无监督学习的潜力以及可以比当前使用的标量非线性更好地工作的各种类型的神经元。演讲者敦促学生不要相信他们听到的一切,并鼓励将 50 年获得的知识重新定向到弄清楚如何获得正确的基板来进行特定处理。问答部分讨论了仅依靠最快的智能系统和变压器内存的连贯性的可能性。

  • 01:05:00 在本节中,Hinton 回答了有关机器学习中无意识偏见的问题,并将其与人类的偏见进行了比较。他认为,虽然机器学习可能存在偏见,但它比人类偏见更容易修复,因为机器学习中的偏见可以通过冻结权重和衡量偏见的对象来识别和纠正。此外,他还谈到了机器学习中的可解释性,并反对立法规定系统在使用之前必须是可解释的,因为这些大型神经网络已经学习了无法简洁解释的数十亿权重。不过,他承认研究人员确实希望更好地了解这些系统,并鼓励年长的研究人员为年轻的研究人员提供资金。

  • 01:10:00 在本节中,Geoffrey Hinton 讨论了这样一个想法,即如果我们将平移等变性和更多视点知识连接到卷积网络中,它们在对象识别和泛化方面可能会更有效。此外,他还谈到了将符号推理与联结网络(如变压器网络)相结合的必要性。 Hinton 认为,实施联想记忆、快速记忆以及让每个突触具有多个时间尺度可以允许长期知识和临时存储,这是真正推理所必需的。

  • 01:15:00 在本节中,演讲者回答了有关神经网络如何根据过去或当前经验进行更新的问题。他建议使用由当前状态激活的联想记忆,而不是通过时间进行反向传播。他澄清说每个突触都应该有多个时间尺度来存储临时数据。然后讨论转移到具有先验信念的系统中的幻觉主题。演讲者认为,在先验信念和数据之间取得正确的平衡是此类系统的关键。最后,他讨论了他对反向传播的矛盾心理,指出虽然这是正确的做法,但令他惊讶的是只有十亿个权重才能做出很好的翻译,而人脑包含的更多。

  • 01:20:00 在视频的这一部分,演讲者讨论了我们目前的人工智能技术可能没有我们想象的那么智能,重点应该放在解决这个问题上。他们还谈到了由欧洲基金资助的人脑项目,并质疑它是否会帮助或阻碍人工智能的发展。演讲者还称赞讲师能够以非专家易于理解的方式解释复杂的概念,并为人工智能领域的年轻研究人员提供更多的资金和支持。
'The Deep Learning Revolution' - Geoffrey Hinton - RSE President's Lecture 2019
'The Deep Learning Revolution' - Geoffrey Hinton - RSE President's Lecture 2019
  • 2019.07.26
  • www.youtube.com
"There have been two very different paradigms for Artificial Intelligence: the logic-inspired paradigm focused on reasoning and language, and assumed that th...
 

ChatGPT 的实际工作原理



ChatGPT 的实际工作原理

ChatGPT 是一种机器学习模型,能够正确识别聊天对话中的有害内容。它的架构基于人工输入,并概述了它的缺点。还提供了推荐读物。

  • 00:00:00 ChatGPT 是一个聊天机器人,旨在缓解模型的错位问题。它使用来自人类反馈的强化学习来微调预训练模型。

  • 00:05:00 ChatGPT 是一种机器学习模型,能够正确识别聊天对话中的有害内容。它的架构基于人工输入,并概述了它的缺点。还提供了推荐读物。
 

从零开始的机器学习完整课程



从零开始的机器学习完整课程

自己实施机器学习模型是掌握它们的最佳方法之一。尽管看起来是一项具有挑战性的任务,但对于大多数算法而言,它通常比您想象的要容易。在接下来的 10 天里,我们将使用 Python,偶尔使用 Numpy 进行特定计算,每天实现一种机器学习算法。

您可以在我们的 GitHub 存储库中找到代码: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch

Machine Learning From Scratch Full course
Machine Learning From Scratch Full course
  • 2022.09.12
  • www.youtube.com
To master machine learning models, one of the best things you can do is to implement them yourself. Although it might seem like a difficult task, for most al...
 

如何用 Python 从零开始实现 KNN

代码: https ://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/01%20KNN



如何用 Python 从零开始实现 KNN

在标题为“如何使用 Python 从头开始实现 KNN”的视频中,演讲者解释了如何使用 Python 从头开始创建 KNN 分类器。它们涵盖了实现算法所涉及的步骤,例如计算新数据点与数据集中其他点之间的距离,选择 k 个最近点,以及确定用于分类的标签或用于回归的平均值。演讲者使用 Python 中的类实现了该算法,并演示了其在 iris 数据集上的成功实现,准确率为 96%。他们还邀请观众查看他们 Github 存储库中的代码,并在评论部分提出问题。

  • 00:00:00 在本节中,我们将了解 k 最近邻 (k-NN) 算法、其工作原理以及在 Python 中实现该算法所需的步骤。 k-NN 是一种基于距离的算法,其中最近的 k 个数据点是根据它们到新数据点的距离来选择的。该 k 值由用户确定,可用于回归和分类问题。该算法首先计算新数据点与数据集中其他数据点之间的距离。然后,选择k个最接近的点,取其值的平均值进行回归,或者确定多数票的标签进行分类。我们还将了解如何使用 Python 中的类来实现该算法,该类具有拟合和预测函数,以及计算两点之间距离的辅助函数。

  • 00:05:00 在本节中,演讲者解释了如何使用 Python 从头开始创建 KNN 分类器。从对距离数组进行排序的弧排序方法开始,他们继续选择 k 个最近的邻居,获取最常见的类标签,并返回最常见的标签。然后,他们在鸢尾花数据集上实现了这个分类器,对花卉类型进行分类,准确率达到 96%,证明了 KNN 的成功实现。演讲者邀请观众查看其 Github 存储库中可用的代码,并在评论部分提出问题。
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

如何使用 Python 从零开始实现线性回归

代码:https: //github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/02%20Linear%20Regression



如何使用 Python 从零开始实现线性回归

该视频介绍了使用 Python 从头开始实现线性回归的过程。演讲者解释了如何使用均方误差找到最佳拟合线以及如何使用梯度下降计算权重和偏差。演讲者还讨论了学习率如何影响收敛,并演示了如何使用 scikit-learn 的数据集功能测试模型。他们还修复了代码中的拼写错误并调整学习率以提高预测线的拟合度。代码在 GitHub 上共享,欢迎观众提问。

  • 00:00:00 在本节中,重点是线性回归,这涉及理解给定数据集的模式并绘制尽可能最好地拟合数据的线性线。均方误差用于计算所有数据点的直线误差,并通过计算模型参数值或权重和偏置值找到最佳拟合线,这些参数使用梯度下降给出最小均方误差。学习率用于控制在梯度下降告诉我们前进的方向上走多快或多慢,低学习率会导致缓慢接近最小误差,而高学习率会导致在空域中跳跃并且找不到最小值。训练时,weight和bias初始化为0,给方程一个数据点去预测或估计
    结果,并计算方程的误差,使得使用矩阵乘法与所有数据点来计算梯度变得更容易。在测试期间,经过训练的模型使用方程预测结果。

  • 00:05:00 在本节中,演讲者将使用 Python 从头开始实现线性回归。说话人初始化学习率,为迭代次数设置默认值,并将权重和偏差定义为零。然后说话者通过 x 与权重的点积并添加偏差来预测结果。为了计算导数,说话者使用一个简单的方程,然后通过计算梯度来更新权重和偏差。最后,演讲者总结预测值与实际值之间的差异,并重复该过程多次迭代直至收敛。

  • 00:10:00 在本节中,演讲者讨论了如何训练线性回归模型并使用给定的类别进行预测。通过分别减去学习率乘以权重和偏差的导数来更新权重和偏差。为了多次迭代运行算法,添加了一个 for 循环以在数据集上运行算法。最后,演讲者展示了如何使用 scikit-learn 的数据集功能测试线性回归算法的效率,方法是拟合一条产生良好性能的线并计算预测的均方误差。由于错误的点积计算而遇到维度错误,通过获取 x 的转置来纠正。
     
  • 00:15:00 在本节中,演示者修复了代码中的拼写错误,并使用它创建了一个线性回归模型,该模型根据给定数据集中的 x 值预测 y 值。然后他们将预测线可视化,并注意到虽然它很合适,但还可以改进。演示者决定调整学习率并重新运行模型以获得更好的拟合度。他们在 GitHub 上分享代码,并邀请观众在需要时提出问题。
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch