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

 

第 3 课:编码员实用深度学习 2022



第 3 课:编码员实用深度学习 2022

该视频为编码人员介绍了实用的深度学习。它涵盖了矩阵乘法和梯度的基础知识,并演示了如何使用深度学习模型来预测狗和猫品种的概率。该视频为编码人员简要介绍了深度学习,包括讨论矩阵乘法如何需要很长时间才能获得直观感受。下一课将重点介绍自然语言处理,即获取文本数据并根据其散文进行预测。

  • 00:00:00 本课涵盖矩阵乘法和梯度,适用于更喜欢数学的学生。该课程还包括关于从头开始设置 Linux 机器的“零课”。

  • 00:05:00 本周的视频中有五名学生创建了与深度学习相关的不同项目。一名学生创建了 Marvel 检测器,另一名学生创建了计算机总是输的游戏,另一名学生创建了预测平均温度的应用程序,另一名学生创建了艺术运动分类器,最后,一名学生创建了编辑检测器。

  • 00:10:00 该视频涵盖了编码人员的实用深度学习,包括不同平台和深度学习库的使用。它涵盖了如何训练模型并将其部署到生产环境。

  • 00:15:00 在本课中,学生将解释深度学习的工作原理以及如何使用不同的深度学习模型。他还展示了如何使用深度学习模型来预测狗和猫品种的概率。

  • 00:20:00 在此视频中,演示了深度学习模型。该模型由层组成,每个层都包含代码和参数。该模型非常灵活,可以通过训练来识别数据中的模式。

  • 00:25:00 在本课中,讲师展示了如何使用函数的部分应用创建一个函数来拟合数据集。然后,他演示了如何绘制函数以及如何调整函数的系数以使其更好地拟合数据。

  • 00:30:00 该视频介绍了如何使用损失函数提高计算机预测值的能力。作者通过在基于图形滑块的模型上移动滑块并检查损失函数以查看它是变好还是变差来演示如何做到这一点。 Pytorch 可以自动为你计算梯度,让这个过程变得简单快捷。

  • 00:35:00 在此视频中,Pytorch 程序员解释了如何使用梯度函数来调整二次方程的系数。梯度函数返回它所应用的曲线斜率的负值。

  • 00:40:00 该视频介绍了如何使用 Pytorch 创建深度学习模型。该模型使用梯度下降进行优化,最终系数由数学函数 rectified_linear() 确定。

  • 00:45:00 在此视频中,Jeremy 解释了如何使用梯度下降来优化深度学习模型中的参数。这与现实生活中用于训练模型的技术相同。

  • 00:50:00 这段 YouTube 视频介绍了编码人员的实用深度学习以及如何训练模型以提高准确性和速度。它建议从一个调整良好、准确的模型开始,逐渐添加更多数据以查看准确性是否提高。

  • 00:55:00 在此视频中,作者讨论了如何使用导数计算函数的梯度。作者建议将梯度乘以一个称为学习率的小数,以防止沿梯度跳得太远而发散。

  • 01:00:00 在本课中,讲师展示了如何进行矩阵乘法,以便对真实数据执行深度学习计算。他提供了一个网站,提供了一种简单的方法来做到这一点。

  • 01:05:00 演讲者解释了如何使用深度学习来预测真正泰坦尼克号上的乘客是否幸存。他们首先删除与预测无关的列,然后将每一行乘以对应于因变量的系数。接下来,他们创建了一个名为“他们在南安普敦登船了吗?”的专栏。还有一个专栏叫做“他们在瑟堡登船了吗?”并将它们转换为二元分类变量。最后,他们取所有系数的平均值并用它来预测因变量。

  • 01:10:00 本课介绍如何使用线性回归将深度学习应用于编码问题。首先,对数据进行归一化和对数转换,使其分布更均匀。接下来,使用 Excel 中的 SumProduct 函数计算系数。最后,使用梯度下降优化损失函数。

  • 01:15:00 在此视频中,使用 Microsoft Excel 从头开始创建深度学习模型。在预测生存率时,该模型比回归表现更好,但执行起来更慢且更痛苦。矩阵乘法用于加速该过程。

  • 01:20:00 该视频为编码人员简要介绍了深度学习,包括讨论矩阵乘法如何需要很长时间才能获得直观感受。下一课将重点介绍自然语言处理,即获取文本数据并根据其散文进行预测。

  • 01:25:00 该视频提供了有关如何使用深度学习对非英语语言进行分类的分步指南。

  • 01:30:00 在此视频中,演示者讨论了深度学习中验证集和指标的重要性。
Lesson 3: Practical Deep Learning for Coders 2022
Lesson 3: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 Introduction and survey01:36 "Lesson 0" How to fast.ai02:25 How to do a fastai lesson04:28 How to not self-study05:28 Highest voted student work07:56 P...
 

第 4 课:编码员实用深度学习 2022



第 4 课:编码员实用深度学习 2022

该视频介绍了如何为 Coders 2022 竞赛构建深度学习模型。作者介绍了如何创建验证集、如何使用竞争数据来测试模型的性能,以及如何避免在现实环境中过度拟合。在这段视频中,Jeremy 解释了如何使用 Pearson 相关系数来衡量两个变量之间的关系,以及如何使用 Pytorch 来训练一个表现得像 fast.ai 学习者的模型。他还讨论了 NLP 技术生成的预测问题,以及如何使用 sigmoid 函数解决该问题。

  • 00:00:00 该视频介绍了如何使用不同于 fast.ai 的库微调预训练的自然语言处理模型。

  • 00:05:00 该视频介绍了编码器实用深度学习 2022 算法 ULMFiT。 ULMFiT 是一种机器学习算法,首次出现在 fast.ai 课程中。 ULMFiT 后来被作者转成了学术论文。在对维基百科和 IMDB 电影评论进行训练后,该算法能够以 70% 的准确率预测评论的情绪。

  • 00:10:00 在本课中,Jeremy 解释了用于机器学习的 Transformers 掩码语言模型方法的基础知识。他指出,这种方法比 ULMFiT 方法更受欢迎,并且变压器模型中有五层。 John 问了一个关于如何从预测下一个单词的模型到可用于分类的模型的问题。 Jeremy 说你需要在第一层中使用边缘检测器和梯度检测器,最后一层将对你预测的每个类别进行激活。他说你可以通过在最后逐渐加入一个新的随机矩阵来训练这个模型。

  • 00:15:00  Kaggle 竞赛“美国专利短语到短语匹配竞赛”需要一个模型可以自动确定哪些锚点和目标对在谈论同一件事。在此视频中,演示者建议将数据转化为分类问题以利用 NLP 技术。

  • 00:20:00 该视频介绍了如何通过使用已经以逗号分隔值 (CSV) 格式存储的数据集,以实用的方式使用深度学习进行分类。该视频还介绍了如何使用 pandas 读取数据。

  • 00:25:00 该视频介绍了四种深度学习库的使用 - numpy、matplotlib、pandas 和 pytorch。如果您不熟悉这些库,作者建议阅读 Wes McKinney 的“Python for Data Analysis”。训练神经网络的第一步是对数据进行标记化,第二步是训练网络。

  • 00:30:00 在此视频中,演示者解释了如何将文本标记为标记并将标记数字化以创建拥抱面孔“数据集”。演示者建议使用预训练模型进行标记化,并描述了一些可用的不同模型。

  • 00:35:00 在此视频中,演示者解释了如何使用分词器对句子进行分词,以及如何将分词转换为数字。数据集将与原始数据集相同,但由于分词器的不同,分词后的数据集会有所不同。

  • 00:40:00 视频讨论了如何将文本字符串转换为数字以允许进行深度学习,并解释了只要提供信息就不必遵循固定格式。如果字段特别长,使用转换器方法可能会有所帮助。

  • 00:45:00 在此视频中,作者解释了对机器学习进行单独训练、验证和测试集的重要性。他们展示了如何绘制多项式回归并说明欠拟合和过拟合之间的区别。

  • 00:50:00 该视频介绍了如何为深度学习模型创建良好的验证集,以及如何使用竞赛数据来测试模型的性能。它还讨论了如何避免在现实环境中过度拟合。

  • 00:55:00 在本视频中,我们了解了深度学习以及如何为 Coders 2022 竞赛构建模型。我们了解到验证集是一组不用于训练模型的图像,而测试集是另一个用于衡量准确性的验证集。我们还了解到有两个测试集——一个在比赛期间显示在排行榜上,另一个测试集直到比赛结束后才显示。

  • 01:00:00  “皮尔逊相关系数”是一种广泛使用的衡量两个变量相似程度的方法。如果您的预测与实际值非常相似,则“Pearson 相关系数”会很高。

  • 01:05:00 这个 1 分钟的视频解释了如何使用 Pearson 相关系数来衡量两个变量之间的关系。相关系数是衡量两个变量相关程度的指标,可用于评估两个变量之间关系的强度。相关系数可以使用散点图可视化,并且可用于评估正在使用它的数据集。

  • 01:10:00 在此视频中,主持人讨论了如何正确训练深度学习模型。它们涵盖诸如相关性、离群值以及如何正确拆分数据等主题。然后,他们展示了如何在 fast.ai 中使用“学习者”训练模型,以及如何使用“批量大小”和“时期”来控制一次处理多少行。

  • 01:15:00 Hugging Face transformers 为不同的任务提供了多种学习率,并提供了一个适合对来自预训练模型的序列进行分类的模型。它还可以识别数据中的异常值。

  • 01:20:00 在本课中,讲师解释了如何使用 Pytorch 来训练一个表现得像 fast.ai 学习者的模型。他指出,尽管永远不应删除异常值,但可以对其进行调查,并在必要时进行更正。

  • 01:25:00 深度学习是一项强大的技术,被用于多个应用领域。它对初学者比较友好,自然语言处理 (NLP) 领域是最大的机会所在。深度学习 NLP 的一种可能用途是为社交媒体创建适合上下文的散文,这可能会对人们如何看待世界产生影响。

  • 01:30:00 在此视频中,John 解释了 NLP 技术(例如机器学习)如何用于生成偏向于特定观点的文本。该视频还讨论了 NLP 技术生成的预测问题,以及如何使用 sigmoid 函数解决该问题。
Lesson 4: Practical Deep Learning for Coders 2022
Lesson 4: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00:00 - Using Huggingface00:03:24 - Finetuning pretrained model00:05:14 - ULMFit00:09:15 - Transformer00:10:52 - Zeiler & Fergus00:14:47 - US Patent Phras...
 

第 5 课:编码员实用深度学习 2022



第 5 课:编码员实用深度学习 2022

该视频提供了有关如何使用深度学习构建和训练线性模型的教程。视频首先讨论就地操作,这些操作会更改给定函数内的变量值。接下来,视频演示了如何使用反向梯度下降计算线性模型的损失。最后,该视频提供了一个函数来初始化和更新线性模型中的系数。该视频最后演示了如何运行该函数并打印损失。该视频介绍了如何计算数据集中给定列的最佳二进制拆分。这对于机器学习竞赛特别有用,因为它提供了用于比较的基线模型。

  • 00:00:00 本课使用 Jupyter Notebook 从零开始介绍线性模型和神经网络。目标是理解代码背后的逻辑并获得预期的输出。

  • 00:05:00 该视频讨论了编码人员的实用深度学习,涵盖的主题包括如何安装 Kaggle 和使用其环境变量、如何使用 pandas 读取 CSV 文件以及如何估算缺失值。它还涵盖了 pandas 中的基本概念,例如模式以及如何使用方法和缩减来填充数据帧。

  • 00:10:00 在本课中,Jeremy 介绍了如何使用 pandas 中的 fillna() 方法估算数据集中的缺失值。他解释说,在大多数情况下,这种“愚蠢”的方式就足够了,了解我们数据集的基础知识很重要,这样常用的方法就不会被解释多次。 Javier 询问丢弃模型中未使用的字段的优缺点。

  • 00:15:00 在本课中,讲师介绍了“虚拟变量”的概念以及如何使用它们以更合理的方式表示分类数据。他还展示了如何描述数据中的所有数字和非数字变量。

  • 00:20:00 在此视频中,讲师展示了如何将数据框中的列变成张量,以及如何使用这些张量来训练线性模型和神经网络。他还展示了在进行矩阵和逐元素乘法时如何使用 Pytorch 而不是普通的 Python。

  • 00:25:00 在此视频中,讲师讨论了如何在 Python 中执行矩阵向量乘积。他提供了一个矩阵乘以向量的示例,并解释说结果很有趣,因为数学家可以使用矩阵代数执行相同的运算。他还解释说,为了产生可重现的结果,开始一个伪随机序列很重要。

  • 00:30:00 在此视频中,作者解释了广播的工作原理及其用途。广播是一种允许将多个值相乘的技术,同时考虑到每个值的大小。这允许更简洁、更快的代码在 GPU 上运行。

  • 00:35:00 该视频介绍了如何通过计算梯度下降损失来优化深度学习模型。作者通过创建一个函数来计算损失,然后将该函数导入 Pytorch 会话来演示如何做到这一点。

  • 00:40:00 此 YouTube 视频提供了有关如何使用深度学习构建和训练线性模型的教程。视频首先讨论就地操作,这些操作会更改给定函数内的变量值。接下来,视频演示了如何使用反向梯度下降计算线性模型的损失。最后,该视频提供了一个函数来初始化和更新线性模型中的系数。该视频最后演示了如何运行该函数并打印损失。

  • 00:45:00 这段时长 1 分钟的视频讨论了如何为深度学习模型创建准确度函数,以预测泰坦尼克号幸存者。该函数基于 sigmoid 函数,这是一种数学函数,当数字变得太大或太小时渐近线。

  • 00:50:00 在此视频中,John 解释了如何使用 S 形函数优化神经网络。他还解释了如何使用 fast.ai 处理类别块因变量。

  • 00:55:00 在此视频中,作者解释了如何使用 Pytorch 在 Python 中从头开始构建模型,以及如何将模型提交给 Kaggle。作者提到运算符“matrix-multiply”的意思是矩阵乘法,但 Python 没有附带该运算符的实现。

  • 01:00:00 在此视频中,演示者解释了如何使用 Pytorch 创建神经网络。第一步是创建一个包含第一列系数之和的矩阵。然后将该矩阵乘以训练数据向量。第二步是用隐藏的激活创建第二个矩阵。然后将该矩阵乘以第一列的系数。最后一步是集中向量并训练神经网络。

  • 01:05:00 在此视频中,Jeremy 解释了如何使用深度学习训练神经网络。他解释说,为了训练网络,他首先需要计算梯度并初始化系数。接下来,他执行 update_coeffs(),从梯度中减去系数。最后,他训练网络并将结果与线性模型进行比较。

  • 01:10:00 该视频介绍了如何初始化深度学习模型、如何更新系数以及如何遍历所有层。它还讨论了为什么深度学习在小数据集上可能不那么有效,以及如何使用深度学习模型获得好的结果。

  • 01:15:00 在这节课中,作者教授了如何使用深度学习框架,并展示了它比从头开始更容易。作者还提供了使用 Pandas 进行特征工程的教程。

  • 01:20:00 在此视频中,培训师演示了如何使用 fastai 库为深度学习模型推荐学习率。他展示了如何运行多个时期并将模型的预测与其他两个模型的预测进行比较。最后,他演示了如何使用集成函数创建一组五个预测,这些预测是对行进行平均的。

  • 01:25:00 在此视频中,John 解释了随机森林的工作原理以及它们为何成为一种流行的机器学习算法。他还展示了如何使用方便的快捷方式导入所有必要的模块。

  • 01:30:00 在此视频中,Pandas 解释了深度学习的工作原理以及如何将其应用于编码问题。介绍了随机森林算法,并表明该技术可用于提高使用分类变量进行预测的准确性。

  • 01:35:00 这个 1 段摘要解释了如何使用将两组数据的标准偏差分数相加的简单方法来对二元拆分进行评分。最好的分裂点是通过计算得分最小的分裂点列表中的最小索引来找到的。

  • 01:40:00 在本课中,讲师解释了如何计算数据集中给定列的最佳二进制拆分。这对于机器学习竞赛特别有用,因为它提供了用于比较的基线模型。
Lesson 5: Practical Deep Learning for Coders 2022
Lesson 5: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00:00 - Introduction00:01:59 - Linear model and neural net from scratch00:07:30 - Cleaning the data00:26:46 - Setting up a linear model00:38:48 - Creating...
 

第 6 课:编码员实用深度学习 2022



第 6 课:编码员实用深度学习 2022

此 YouTube 视频为编码人员提供了有关如何开始深度学习的指南。主要关注编码人员的实用深度学习,提供有关如何设置竞赛、获取验证集和快速迭代的提示。该视频还讨论了特征重要性和部分依赖图的重要性,以及如何使用机器学习模型创建它们。

该视频概述了如何使用深度学习来提高编码项目的准确性。它解释说,数据集通常可以有各种各样的输入大小和纵横比,这使得很难用矩形创建准确的表示。它建议改用方形表示,这在大多数情况下都表现良好。

  • 00:00:00 在本课中,作者展示了如何创建决策树来预测哪些男性在泰坦尼克号中幸存下来。

  • 00:05:00 该视频讨论了如何创建最多包含四个叶节点的决策树分类器。可以自动生成树,并提供计算基尼系数的代码。决策树的平均绝对误差计算为 0.407。

  • 00:10:00 该视频介绍了如何使用来自 Kaggle 竞赛的数据构建决策树来预测乘客票价分类。决策树非常高效且不需要预处理,因此是表格数据的理想选择。

  • 00:15:00 Leo Breiman 的“套袋”技术用于创建大量无偏模型,这些模型优于任何单个模型。这是通过每次构建决策树时随机选择数据子集并使用该数据来训练模型来完成的。

  • 00:20:00 在本课中,我们学习了如何创建随机森林,这是一种易于实现且在小数据集上表现良好的机器学习算法。我们还展示了如何使用特征重要性图来帮助我们确定哪些特征在训练数据中最重要。

  • 00:25:00 在此视频中,John 介绍了深度学习的基础知识,包括随机森林的工作原理以及为什么增加树的数量总能带来更好的错误率。然后 Jeremy 继续解释如何使用随机森林来预测大型数据集的结果而不需要验证集。

  • 00:30:00 该视频解释了如何计算袋外误差或 OOB 误差,这是衡量对机器学习模型训练中未使用的数据所做的预测准确性的度量。它指出,如果 OOB 误差很高,则表明模型没有正确预测数据。

  • 00:35:00 该视频讨论了特征重要性和部分依赖图的重要性,以及如何使用机器学习模型创建它们。

  • 00:40:00 在此视频中,Jeremy 解释了随机森林模型的工作原理以及如何解释其特征重要性图。他还提到随机森林模型比其他可解释性技术更可靠。

  • 00:45:00 随机森林是一种机器学习算法,特别擅长进行预测。但是,添加更多的树会使模型更准确,并且过拟合不是问题。 Gradient Boosting 是一种类似于随机森林的机器学习算法,但它不是一遍又一遍地拟合树,而是拟合非常小的树,导致很少的数据分裂。

  • 00:50:00 该视频解释了梯度增强机 (GBM) 如何比随机森林更准确,但您可以使用 GBM 过度拟合。该演练演示了如何选择 Kaggle 比赛并获得第一名。

  • 00:55:00 此 YouTube 视频为程序员提供了深度学习入门指南。主要关注编码人员的实用深度学习,提供有关如何设置竞赛、获取验证集和快速迭代的提示。

  • 01:00:00 该视频介绍了如何使用 FastKaggle 训练深度学习模型。它解释了在处理图像时需要小心,因为尺寸会根据纵横比而变化。该视频还展示了如何使用名为“squish”的功能调整图像大小。

  • 01:05:00 在此视频中,讲师讨论了如何使用快速 AI 库 show_batch() 快速查看机器学习模型的数据。他建议使用 resnet26d 来获得快速的训练性能和准确性。

  • 01:10:00 该视频演示了如何使用数据加载器和包含模型预测和标签的 CSV 文件在不到一分钟的时间内将深度学习模型提交给 Kaggle。

  • 01:15:00 演示者分享了他在 Kaggle 上创建公共笔记本的策略,其中包括根据需要复制和重命名笔记本,以使它们井井有条。他指出,这种低技术含量的方法对他很有效,而且他通常一次只提交一个笔记本。

  • 01:20:00 演示者简要概述了深度学习的不同方法,包括 AutoML 框架和随机森林。他建议使用学习率查找器来避免过度训练模型,并建议尽可能使用 GPU 进行深度学习。

  • 01:25:00 在本课中,作者解释了如何使用不同的卷积神经网络 (CNN) 架构加速 Kaggle 竞赛的迭代。他还展示了如何使用经验法则来选择正确的 CNN 大小。

  • 01:30:00 在此视频中,演示者讨论了如何通过使用不同的预处理技术(包括裁剪和填充)来提高深度学习模型的性能。他还指出,测试时间增强 (TTA) 可以通过对图像的多个版本进行平均来提高模型的性能。

  • 01:35:00 在此视频中,Jeremy 讨论了如何使用深度学习提高计算机视觉模型的准确性。他指出,可以通过改变训练模型的图像来提高模型的准确性,并提供了一个示例来说明如何使用熊猫来做到这一点。他还解释了深度学习算法的工作原理以及如何使用 TTA(测试时间增加)来加快训练过程。最后,他总结了 Victor 和 John 提出的问题。

  • 01:40:00 在此视频中,Jeremy 解释了如何使用深度学习来提高编码项目的准确性。他指出,数据集通常可以有各种各样的输入大小和纵横比,这使得很难用矩形创建准确的表示。他建议改用正方形表示法,这种表示法在大多数情况下都能很好地发挥作用。
Lesson 6: Practical Deep Learning for Coders 2022
Lesson 6: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 Review02:09 TwoR model04:43 How to create a decision tree07:02 Gini10:54 Making a submission15:52 Bagging19:06 Random forest introduction20:09 Creating...
 

第 7 课:编码员实用深度学习 2022



第 7 课:编码员实用深度学习 2022

在 2022 年程序员实用深度学习的第 7 课中,Jeremy 解释了如何通过减少大型模型所需的内存来扩展深度学习模型。他演示了一种称为梯度累积的技巧,该技巧涉及不在每个小批量的每个循环中更新权重,而是每隔几次更新一次权重,从而允许使用更大的批量大小而无需更大的 GPU。此外,Jeremy 讨论了 k 折交叉验证并创建了一个深度学习模型,该模型使用称为交叉熵损失的不同损失函数来预测图像中存在的水稻类型和疾病。总体而言,该视频提供了构建更复杂的深度学习模型的实用提示和技巧。

在本视频中,演讲者探讨了在 PyTorch 中使用协同过滤和点积创建推荐系统。他描述了电影评级的矩阵乘法预测并计算了损失函数,这是衡量预测评级与实际评级匹配程度的指标。他引入了嵌入的概念,它允许使用虚拟变量加速矩阵乘法器。演讲者随后解释了如何向矩阵添加偏差和正则化以区分用户评分并防止过度拟合。最后,讨论了超参数搜索的主题,强调了对精细数据进行准确推荐的必要性。总的来说,该视频分解了复杂的深度学习概念,为观众创造了一种实用的理解。

  • 00:00:00 在本节中,讲师介绍了进一步放大模型的简单技巧,其中涉及减少较大模型所需的内存。当使用更大的模型时,更多的参数意味着他们可以找到更复杂的特征,从而使它们更准确。然而,较大的模型有一个缺点,因为它们需要计算的激活或梯度会消耗大量 GPU 内存,如果可用内存不足,则会导致出现错误消息。讲师解释了如何规避此问题并在 Kaggle 的 16 Gig GPU 上使用 x-large 模型。

  • 00:05:00 在视频的这一部分,Jeremy 讨论了在 Kaggle 上运行深度学习模型的实用性以及如何使用快速 hacky 方法来确定模型的内存使用情况。他演示了一种称为梯度累积的技巧,如果模型因“cuda 内存不足错误”而崩溃,则可以使用该技巧以避免购买更大的 GPU。通过调整批量大小和图像数量,可以确保模型在不影响学习率的情况下使用尽可能少的内存。

  • 00:10:00 在本节中,演讲者讨论了梯度累积的概念,即不在每个小批量的每个循环中更新权重,而是每隔几次更新一次权重。这允许在不需要更大 GPU 的情况下使用更大的批次大小,因为梯度可以在多个更小的批次上累积。对于不使用批量归一化的架构,结果在数值上是相同的,但可能会为那些使用的架构引入更多的波动性。总的来说,梯度累积是一个简单的想法,对训练更大的模型具有重要意义。

  • 00:15:00 在本节中,Jeremy 讨论了论坛中有关 lr_find() 和梯度累积的问题。他解释说 lr_find() 使用数据加载器的批量大小,并且梯度累积允许对不同的批次进行试验以找到不同架构的最佳大小。 Jeremy 建议选择适合您的 GPU 的最大批处理大小,但提到并不总是需要使用最大的批处理大小。经验法则是将批量大小除以二,并将学习率除以二。最后,Jeremy 演示了如何在 fastai 中使用梯度累积,方法是将批量大小除以所需的累积值,并在创建学习器时传入 GradientAccumulation 回调,从而使他能够在 16GB 卡上训练多个模型。

  • 00:20:00 在本节中,演示者讨论了使用具有固定大小的预训练变压器模型 vit、swinv2 和 swin。要解决此问题,最终尺寸必须为正方形且具有所需尺寸。演示者使用体系结构和预处理细节的字典,将训练路径切换回使用所有图像并循环遍历每个体系结构并转换大小以训练每个模型。训练脚本返回 tta 预测,这些预测被附加到一个列表中,该列表稍后通过装袋进行平均,为每种疾病创建一个索引列表。通过定期提交条目,演示者改进了他们的结果,并能够确保在排行榜上名列前茅。

  • 00:25:00 在本节中,Jeremy 讨论了 k 折交叉验证的概念以及它与他对集成模型所做的工作有何相似之处。他解释说,k 折交叉验证是将数据分成五个子集,然后使用不重叠的验证集在每个子集上训练模型,然后进行集成。虽然它可能比他的方法更好,但 Jeremy 更喜欢集成,因为它允许轻松添加和删除模型。 Jeremy 还讨论了梯度累积以及如何没有真正的缺点或潜在的陷阱,并建议购买内存较少的便宜显卡而不是昂贵的显卡。最后,他提到 Nvidia 是镇上唯一的 GPU 游戏,消费类 RTX 卡与昂贵的企业卡一样好。

  • 00:30:00 在本节中,Jeremy 讨论了投资 GPU 进行深度学习的好处,并承认由于在云计算中的使用,它们可能很昂贵。他还谈到了如何训练一个较小的模型来产生与较大模型相同的激活,这将在第 2 部分中介绍。视频的其余部分重点介绍构建一个模型来预测图像的疾病和水稻类型,这需要一个具有两个因变量的数据加载器。 Jeremy 解释了如何使用 DataBlock 创建具有多个因变量的加载程序,并演示了如何区分输入和输出类别。

  • 00:35:00 在本节中,讲师解释了如何创建一个深度学习模型来预测图像中出现的水稻类型和疾病。为此,get_y 函数必须采用具有两个不同标签的数组。一是父目录的名称,因为它表示疾病,二是品种。老师创建了一个函数,它获取文件名在数据框中的位置并返回品种列。最后,他们创建了一个模型来预测 20 件事:10 种疾病中每一种和 10 个品种中每一种的概率。必须修改错误率指标以处理三件事而不是两件事以使用新数据集。

  • 00:40:00 在本节中,演讲者解释了当因变量是类别时需要一种称为交叉熵损失的不同损失函数。虽然 fastai 的 vision_learner 早些时候猜测并使用了交叉熵损失,但演讲者现在借助电子表格详细解释了它是如何工作的。从具有五个类别的模型的输出开始,演讲者演示了如何使用 softmax 函数将模型输出转换为概率。一旦输出为概率,交叉熵损失函数用于衡量预测概率与实际概率之间的差异,并确定模型的性能。

  • 00:45:00 在本节中,我们将了解 softmax 以及它如何用于从提前选择的类别中预测一个特定的事物。用于计算交叉熵损失的公式涉及概率与实际目标值相乘,然后求和。 softmax的log被用来加速计算。结果是一个单一的概率值,然后对每一行求和以计算交叉熵损失。

  • 00:50:00 在本节中,讲师解释了二元交叉熵损失函数以及如何将其用于多个目标。他指出 pytorch 有两个版本的损失函数,一个类和一个函数,并展示了如何使用它们。创建多目标模型时,视觉学习器需要 20 个输出,其中 10 个用于预测疾病,10 个用于预测品种。讲师演示如何创建此模型,然后对其进行训练。总的来说,除了增加了第二组目标外,该模型与之前的模型相同。

  • 00:55:00 在本节中,我们将了解模型如何通过其损失函数了解其预测的内容。输入值的前十列预测疾病概率,后十列表示变异概率。使用交叉熵,我们将疾病和品种目标值都考虑在内,以创建基于预测这两个值的损失函数。当前十列对疾病做出良好预测而后十列对多样性做出良好预测时,损失函数会减少,从而使系数更有效地使用每一列。我们在整个训练时期计算和跟踪疾病和品种预测的错误率。由于某些特征有助于识别不同的目标,因此使用多目标模型进行更长时间的训练有时会比单一目标模型产生更好的疾病预测。

  • 01:00:00 在视频的这一部分,演讲者讨论了构建预测多个事物的模型的好处,并鼓励观众在小数据集上试验模型。他还介绍了 Collaborative Filtering Deep Dive notebook,它使用电影评级数据集来教授推荐系统的概念。他解释说,这种类型的数据在推荐系统等行业中很常见,并提供了一个交叉制表示例以更好地理解数据集。演讲者然后休息一下,然后开始阅读下一个笔记本。

  • 01:05:00 在本节中,演讲者解释了如何填补协同过滤数据集中的空白。协同过滤通过使用从许多用户收集的数据帮助向用户推荐产品。为了判断用户是否喜欢某部电影,演讲者提出了一种通过向量分析将用户偏好值与电影类型相乘的方法。然而,由于我们没有提供有关用户或电影的任何信息,演讲者建议创建潜在因素来填补缺失的数据点。使用假设的潜在因素,演讲者建议使用 SGD 来找到相关性并生成假设。

  • 01:10:00 在本节中,视频介绍了如何使用矩阵乘法根据用户的历史评分来预测用户的电影评分。本教程为电影和用户的潜在因素分配随机值,并执行点积来预测评级。然后计算损失函数,并使用 Data Solver 工具进行优化。该视频演示了通过将预测评分与优化后的实际评分进行比较来提高预测评分。还介绍了矩阵补全技术和协同过滤,其中向具有相似品味的用户推荐相似的电影。

  • 01:15:00 在本节中,视频讨论了在 PyTorch 中使用协同过滤和点积。两个向量夹角的余弦近似相关,归一化后相同。 Excel用于解释PyTorch中必要的计算。该视频还指出,嵌入通常被认为是一种复杂的数学工具,但实际上是用于查找内容的数组。该视频试图打破令人困惑的行话,让每个人都更容易理解深度学习。

  • 01:20:00 在本节中,Jeremy 解释了如何在 PyTorch 中使用协同过滤数据加载器来处理电影评分数据。他将电影表与评级表合并以获得电影的用户 ID 和名称。 CollabDataLoaders 函数用于从具有评级、用户 ID 和项目标题列的数据框中加载数据。然后,他使用随机数矩阵创建用户和电影因素,其中它们的列数等于他想要创建的因素数。他还提到,他使用预先确定的公式来确定因子的数量,该公式来自他的直觉并通过拟合函数进行测试。

  • 01:25:00 在本节中,演讲者解释了可以使用 one-hot-encoded 向量在向量中查找索引号,这与取 one-hot-encoded 向量的点积相同与某事。然后引入嵌入作为一种计算捷径,用于将某些东西乘以单热编码向量,从而可以加快使用虚拟变量进行矩阵乘法的速度。演讲者还介绍了 Pytorch 模型的创建,这是一个包含名为 Module 的超类的类,它提供了一些额外的功能。点积对象用作如何创建模型的示例,该模型调用 dunder init 方法并按因子创建用户嵌入,按向量创建电影嵌入。

  • 01:30:00 本节讲师讲解如何使用PyTorch调用一个叫做“forward”的方法来计算模型。对象本身和正在计算的数据被传递到“forward”。使用点积并通过 PyTorch 传递数据比使用 Excel 快得多。但是,该模型效果不佳,因为例如,它预测的值大于可能的最高值,而没有人对电影进行评分。教师通过使用 sigmoid 函数将预测压缩到 0 到 5.5 之间的范围内来解决这个问题。尽管有这种变化,损失并没有显着改善,但讲师引入了对一些具有高评级的用户的新观察,表明涉及用户偏差可以改进模型。

  • 01:35:00 在本节中,演讲者演示了如何向电影推荐模型中使用的矩阵添加偏差。通过添加这些偏差,可以区分倾向于给出较低或较高评级的用户。演讲者还讨论了如何通过使用权重衰减或 L2 正则化来避免过度拟合。演讲者解释说,这可以通过将权重平方和添加到损失函数来实现。总的来说,本节对深度学习模型中的偏差和正则化主题进行了有用的介绍。

  • 01:40:00 在本节中,视频讨论了使用权重衰减作为一种正则化形式来防止深度学习模型中的过度拟合。通过找到不太高但足够高以用于预测的正确权重组合,模型可以获得损失函数的最低可能值。权重衰减系数可以传递到 fit 方法中,默认值通常适用于视觉应用程序,但对于表格和协同过滤,用户应该尝试 10 的几倍数以查看最佳结果。正则化是为了让模型不再比它必须的复杂,更高的权重衰减值减少了过度拟合,但也降低了模型做出良好预测的能力。

  • 01:45:00 在本节中,Jeremy 和 John 讨论了超参数搜索的主题以及它如何经常用于构建单个模型。但是,在执行超参数探索时,除了 Jeremy 的经验法则之外没有其他规则。在回答是否可以基于用户体验的平均评分而不是协同过滤来构建推荐系统的问题时,Jeremy 解释说,如果所有的人都拥有购买历史,那将是不理想的。相反,需要有关用户的人口统计信息和有关产品的元数据等粒度数据来做出准确的推荐。
Lesson 7: Practical Deep Learning for Coders 2022
Lesson 7: Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 - Tweaking first and last layers02:47 - What are the benefits of using larger models05:58 - Understanding GPU memory usage08:04 - What is GradientAccum...
 

第 8 课 - 编码员实用深度学习 2022



第 8 课 - 编码员实用深度学习 2022

该视频涵盖了编码人员深度学习的基础知识。它解释了如何使用 Pytorch 库为深度学习模型创建参数,如何使用 PCA 减少数据集中的因素数量,以及如何使用神经网络预测工业重型设备的拍卖价格。

此 YouTube 视频为程序员提供了深度学习的概述。演讲者解释说,坚韧在这个领域很重要,并建议如果你想成功,就应该坚持下去,直到完成某件事。他还建议在 forums.fast.ai 上帮助其他初学者。

  • 00:00:00 在本课中,Pytorch 负责为神经网络创建和管理参数,自动确保以正确的方式初始化系数和权重。这使用户不必记住此信息或编写代码来执行此操作。

  • 00:05:00 该视频介绍了如何使用 Pytorch 库为深度学习模型创建参数。 Pytorch 将根据随机生成的分布自动初始化这些参数。

  • 00:10:00 该视频展示了如何使用与原始视频相同的代码和概念从头开始构建 Pytorch 嵌入层。然后,该视频演示了该层如何通过查看过去的电影偏好来预测电影偏好。

  • 00:15:00 该视频演示了如何使用 fast.ai 协作学习者应用程序来预测用户可能喜欢的电影。该应用程序使用潜在因素(电影和因素)来计算用户的偏差,然后用于预测用户可能喜欢哪部电影。

  • 00:20:00 该视频介绍了如何使用 PCA 减少数据集中的因子数量。它还涵盖了 Bootstrapping Problem,即在您之前没有使用过新产品的情况下如何向客户推荐新产品的问题。

  • 00:25:00 该视频涵盖了编码人员的深度学习基础知识,包括顺序模型、如何使用 Pytorch 的功能轻松创建模型,以及如何使模型适合协作学习者。 Jona 就协同过滤系统中的偏见问题向主持人提出了一个问题,主持人就该问题提供了一个笼统的回答。

  • 00:30:00 在此视频中,Jeremy 解释了嵌入在协同过滤和 NLP 中的工作原理,以及它们如何用于解释神经网络。

  • 00:35:00 在此视频中,作者演示了如何使用神经网络预测工业重型设备的拍卖价格,使用随机森林和表格学习器。作者指出,使用 Tabular Learner 创建的神经网络与手动创建的神经网络几乎相同。

  • 00:40:00 神经网络可以被认为是一种机器学习算法,它将数据作为输入,并使用该数据来创建预测或输出。神经网络由节点层(称为神经元)组成,这些节点相互连接以创建图形。神经网络的输入可以是分类的(例如汽车或鲜花等类别)或连续的(即数字)。神经网络可用于预测不同结果的结果(例如不同商店的销售额),或猜测新输入的内容(例如一组给定数据点的地理位置)。

  • 00:45:00 在本视频中,我们学习了卷积,这是卷积神经网络中使用的一种矩阵乘法。我们将看到一个实际的例子,然后讨论如何使用卷积神经网络创建顶部边缘检测器。

  • 00:50:00 该视频解释了如何执行卷积,这是一种数学运算,它采用两个数据数组并将它们的元素组合在一起,产生的结果通常在数组的左侧高于右侧。在 3 x 3 内核上执行卷积,重复多次以生成深度学习层。

  • 00:55:00 该视频通过展示两个过滤器(一个用于水平边缘,一个用于垂直边缘)如何组合以创建用于识别数字的单一激活来解释深度学习的工作原理。使用最大池化的旧方法会导致更少的激活,最终只剩下一个。较新的方法使用一种称为“带滑动窗口的最大池化”的技术,一直持续到所有激活都被使用并产生更准确的结果。

  • 01:00:00 在这段视频中,主持人解释了深度学习在 21 世纪的发展历程。今天,深度学习的方式与 10 年前不同,演示者举例说明了这种变化是如何发生的。深度学习算法现在使用 Stride 2 Convolution,而不是 Max Pooling。此外,深度学习模型现在在末尾使用单个密集层而不是最大池层。最后,演示者简要概述了 fast.ai 如何处理深度学习训练和预测。

  • 01:05:00 在此 YouTube 视频中,作者展示了卷积与矩阵乘法的相同之处,以及如何使用这两种方法计算卷积。他还讨论了 Dropout,一种用于减少神经网络中随机噪声影响的技术。

  • 01:10:00 在本课中,作者介绍了 Dropout Layers 如何帮助避免神经网络中的过度拟合。你使用的 dropout 越多,它对训练数据的影响就越小,但它应该泛化得越好。这来自 Geoffrey Hinton 小组的一篇论文,该论文被主要的神经网络会议拒绝,当时称为 NIPS,现在称为 NeurIPS。

  • 01:15:00 该视频介绍了深度学习的基础知识,包括神经网络的类型以及如何实现它们。它还包括如何使用各种训练方法以及如何评估神经网络的性能。最后,该视频提供了有关如何继续学习深度学习的建议。

  • 01:20:00 Lucas 询问如何在深度学习中保持积极性,他指出该领域正在迅速转向更昂贵和更大规模的模型。他想知道他将来是否仍然能够用单个 GPU 训练出合理的模型。总的来说,该视频概述了如何在深度学习中保持积极性以及如何了解最新研究。

  • 01:25:00 此 YouTube 视频简要概述了深度学习及其在编码中的实际应用。该视频讨论了 DawnBench 深度学习的成功如何归功于团队对常识和智慧的运用,以及任何人如何将深度学习应用于他们自己的问题领域。该视频还谈到了正规教育在机器学习领域的重要性,以及实时编码课程如何帮助加强学习。

  • 01:30:00 Jeremy 分享了一些提高效率的小窍门,包括每天花时间学习新事物以及不要工作太辛苦。

  • 01:35:00 这个 YouTube 视频是给程序员的深度学习课,演讲者解释说在这个领域坚韧很重要。他建议,如果你想成功,就应该坚持下去,直到完成某件事,即使它不是最好的质量。他还建议在 forums.fast.ai 上帮助其他初学者。
Lesson 8 - Practical Deep Learning for Coders 2022
Lesson 8 - Practical Deep Learning for Coders 2022
  • 2022.07.21
  • www.youtube.com
00:00 - Neural net from scratch04:46 - Parameters in PyTorch07:42 - Embedding from scratch12:21 - Embedding interpretation18:06 - Collab filtering in fastai2...
 

第 9 课:稳定扩散的深度学习基础,2022 年



第 9 课:稳定扩散的深度学习基础,2022 年

该视频介绍了深度学习,讨论了稳定扩散模型的工作原理以及如何应用它们生成新图像。该视频演示了如何使用 Diffusers 库创建看起来像手写数字的图像。它还引入了稳定扩散的概念,这是一种训练神经网络的方法。基本思想是修改神经网络的输入以改变输出。在本视频中,讲师讨论了如何创建一个能够从嘈杂输入中正确识别手写数字的神经网络。该视频讨论了如何使用深度学习算法训练机器学习模型。该模型使用一组潜在变量(代表数据)进行初始化,并使用解码器来理解原始数据。接下来,使用文本编码器为数据创建机器可读的标题。最后,U-Net 使用字幕作为输入进行训练,梯度(“得分函数”)用于调整训练数据中的噪声水平。

  • 00:00:00 在本课中,将解释深度学习的工作原理以及如何将其应用于现实世界的问题。但是,由于本课中描述的概念和技术在不久的将来可能会过时,因此视频的大部分内容都用于教授如何使用稳定扩散,这是一种在 2022 年仍然适用的深度学习算法。

  • 00:05:00 课程进展迅速,新论文表明生成稳定扩散模型所需的步骤数已从一千减少到四或五十六。本课程将侧重于模型的基础及其工作原理。

  • 00:10:00 该课程提供深度学习基础,讨论稳定扩散模型的工作原理,并为更深入的学习提供资源。到 2022 年,用于深度学习的 GPU 将变得更加昂贵,因此请务必注意当前的建议。

  • 00:15:00 这段 YouTube 视频简要介绍了深度学习,概述了稳定扩散的基础。作者提供了一套 Colab 笔记本,“diffusion-nbs”,可以用来探索深度学习的基础知识。该视频最后建议您使用提供的材料并探索其他资源。

  • 00:20:00 在本课中,涵盖了深度学习的基础知识,包括如何创建稳定的扩散算法。之后介绍了Diffusers库,以及如何保存一个pipeline给别人使用。

  • 00:25:00 本课讨论深度学习的基础以及如何使用 Colab 创建高质量图像。创建图像所需的 51 个步骤与截至 2022 年 10 月可用的三到四个步骤进行了比较。

  • 00:30:00 在本课中,讲师演示了如何使用深度学习创建图像。他演示了如何使用“指导尺度”来控制图像的抽象程度。

  • 00:35:00 该视频介绍了如何使用深度学习模型生成看起来像原始绘图的图像,使用一种称为稳定扩散的技术。

  • 00:40:00 在本课中,讲师解释了如何使用稳定扩散算法训练机器学习模型。他们解释说,该算法对于生成与所提供示例相似的图像非常有用。讲师还分享了一个示例,说明如何使用稳定扩散算法生成与原始泰迪熊相似的泰迪熊图像。

  • 00:45:00 在此视频中,讲师介绍了稳定扩散的概念,这是一种与传统方法等效但概念上更简单的数学方法。他解释说,通过使用可以确定图像是手写数字的概率的函数,您可以生成看起来像手写数字的新图像。

  • 00:50:00 在此视频中,一位讲师解释了如何使用深度学习计算输入图像是手写数字的概率梯度。

  • 01:05:00 该视频介绍了稳定扩散的概念,这是一种训练神经网络的方法。基本思想是修改神经网络的输入以改变输出。

  • 01:10:00 在此视频中,讲师讨论了如何创建一个能够从嘈杂输入中正确识别手写数字的神经网络。他们首先讨论如何创建训练数据集,然后继续解释如何训练神经网络。

  • 01:15:00 该视频介绍了深度学习和稳定扩散的概念,这是一种预测数字图像中噪声的方法。神经网络预测噪声,损失函数很简单:获取输入并预测噪声。

  • 01:20:00 该视频中的神经网络试图预测添加到输入中的噪声。它通过从输入中减去它认为是噪声的位来做到这一点。多次这样做之后,它最终会得到一些看起来更像数字的东西。

  • 01:25:00 在此视频中,讲师展示了如何使用称为 U-Net 的神经网络来近似图像。问题是 U-Net 需要大量存储空间,这对于拥有大量 TPU 云的谷歌来说可能是个问题。

  • 01:30:00 该视频介绍了如何使用深度学习压缩图像。首先,图像通过跨两个卷积层的层进行压缩。重复此过程,直到图像缩小为 64x64x4 版本。接下来,图像被保存为神经网络层。最后,神经网络用于压缩不同尺寸的图像。

  • 01:35:00 该视频讨论了如何使用损失函数来教神经网络如何压缩图像,从而产生更小的文件。压缩算法效果很好,可以用来在两个人之间共享图像。

  • 01:40:00 该视频提供了有关如何使用潜在数据训练深度学习模型的教程。潜在数据是一种特殊类型的数据,不能直接观察到,用于训练深度学习模型。潜在是通过使用神经网络对图片的像素进行编码来创建的。编码过程创建图片的潜在表示。解码器使用这个潜在表示来生成原始图片。

  • 01:45:00 该视频解释了神经网络如何利用它知道原始图像是什么这一事实来学习更好地预测噪声。这很有用,因为例如,当输入数字 3 时,模型会说噪声是所有不代表数字 3 的东西。

  • 01:50:00 该视频解释了如何使用两个神经网络对文本和图像进行编码。第一个神经网络用于对文本进行编码,第二个神经网络用于对图像进行编码。目标是让两个网络针对给定的输入产生相似的输出。输出的相似性由输入特征和输出特征的点积决定。

  • 01:55:00 该视频介绍了如何创建 CLIP 文本编码器,这是一种机器学习模型,可以为相似的文本输入生成相似的嵌入。这很重要,因为它允许多模式文本识别和合成。

  • 02:00:00 在此视频中,讲师解释了如何使用深度学习算法训练机器学习模型。该模型使用一组潜在变量(代表数据)进行初始化,并使用解码器来理解原始数据。接下来,使用文本编码器为数据创建机器可读的标题。最后,U-Net 使用字幕作为输入进行训练,梯度(“得分函数”)用于调整训练数据中的噪声水平。

  • 02:05:00 在此视频中,作者介绍了深度学习算法的工作原理,以及它们如何尝试为潜在(未知)图像找到最佳猜测。作者还描述了如何调整算法的参数以改进结果。

  • 02:10:00 该视频讨论了微分方程求解器(例如优化器)如何使用与深度学习模型类似的想法。该视频讨论了如何使用感知损失和其他损失函数来提高深度学习模型的准确性。该视频提供了下一课的先睹为快,其中将解释深度学习管道的代码。

  • 02:15:00 该视频讨论了深度学习中的一些新研究方向,这些方向可能会提高技术的稳定性和传播。
Lesson 9: Deep Learning Foundations to Stable Diffusion, 2022
Lesson 9: Deep Learning Foundations to Stable Diffusion, 2022
  • 2022.10.19
  • www.youtube.com
(All lesson resources are available at http://course.fast.ai.) This is the first lesson of part 2 of Practical Deep Learning for Coders. It starts with a tut...
 

深度学习的挑战(Razvan Pascanu 博士 - DeepMind)



深度学习的挑战(Razvan Pascanu 博士 - DeepMind)

DeepMind 的 Razvan Pascanu 博士在此视频中讨论了深度学习中的几个挑战。他强调了适应性和从性能指标转移注意力的重要性,并建议深度学习系统中计算资源的限制实际上是有益的。此外,他探讨了持续学习中的挑战以及与之相关的机器学习子领域,包括规模和架构对深度学习模型性能的影响。 Pascanu 博士还讨论了随机梯度下降的作用、显式偏差的重要性,以及在深度学习模型中预训练和添加归纳偏差的概念。

DeepMind 的 Razvan Pascanu 博士讨论了深度学习中的遗忘问题以及模型如何从中恢复。虽然遗忘发生后一些知识可能仍然存在,但很难确定丢失了多少信息。 Pascanu 博士提到最近关于目标遗忘的论文如何关注数据隐私,但在这一领域需要更多的研究和关注。

  • 00:00:00 在本节中,Razvan Pascanu 博士讨论了他对适应在深度学习中的重要性的见解。尽管强调性能指标,Pascanu 强调了持续优化这种单一指标的局限性。固定系统在面对不可预测的环境变化时缺乏适应性,专注于一刀切的解决方案,在更复杂的场景中缺乏明确定义的性能指标,以及系统的扩展以单独克服有限的数据和计算资源等瓶颈是促使需要将重点转向深度学习适应性的一些问题。

  • 00:05:00 在本节中,Razvan Pascanu 博士讨论了仅关注深度学习性能的局限性,并建议探索可以持续适应变化的系统。他强调了在大型数据集上学习时的覆盖率和数据代表性问题,以及评估系统分布外泛化能力的挑战。 Pascanu 建议,考虑适应性可以改变视角,并有助于解决其中一些问题。他引用了 Thomas Griffiths 的论点,我们之所以无法理解 AlphaGo 的某些动作,是因为我们倾向于将问题分解为子目标,而代理只关心最终的表现。 Pascanu 总结说,转换观点可能无法解决所有问题,但可能会带来新的见解和方法。

  • 00:10:00 在本节中,Pascanu 博士讨论了限制对深度学习系统有益的想法。人类的认知局限性决定了我们的思维方式,而机器学习系统的计算局限性决定了它们的学习方式。如果我们将限制视为需要克服的障碍,我们可能会错过这些限制带来的好处。限制计算预算可以迫使系统找到组合解决方案,这可以带来更好的结果。 Pascanu 博士认为,我们不应只关注性能,还应考虑学习成本、推理成本和硬编码信息量。然而,在数据分布和数据点之间的关系方面仍然存在挑战需要克服,Pascanu 博士强调了探索类别理论等不同工具来应对这些挑战的重要性。

  • 00:15:00 在本节中,Razvan Pascanu-DeepMind 博士讨论了持续学习的重要性以及能够持续高效学习的系统的必要条件。他强调说,持续学习有多种形式,因此很难定义和查明每个具体问题。此外,持续学习的定义也会产生矛盾,根据所使用的任务和基准,一些问题变得更加明显。 Pascanu-DeepMind 博士建议,将持续学习作为基础的一种方法是关注连续半监督学习等实际问题,它具有实际应用,更容易看到是否正在取得进展。另一种方法是专注于强化学习。

  • 00:20:00 在本节中,Razvan Pascanu 博士讨论了强化学习 (RL) 中持续学习的挑战以及迄今为止为缓解该问题而开发的技术。由于 RL 中的数据是非平稳的,因此有必要处理持续学习以使函数逼近起作用。基于蛮力方法开发了多种技术,例如防止灾难性遗忘的回放缓冲区、星际争霸中的专家联盟和 AlphaGo 中的销售游戏。然而,这些方法可能会变得昂贵,并且总是需要降低这些成本。 Pascanu 提出了一篇有趣的论文,认为 RL 和监督学习的不同之处在于转移特征在 RL 系统中的帮助不大,重点应该放在控制数据质量和集中参与者和评论家上。

  • 00:25:00 在本节中,演讲者讨论了持续学习中的挑战,指出持续对齐的某些方面是监督学习无法模仿的。演讲者提到了一篇论文,其中列出了 RL 和监督学习之间的这些差异。此外,演讲者还讨论了如何将继续学习视为一个跟踪问题,而不是收敛到一个点。演讲者提到了在对新数据进行微调时发生的可塑性损失,以及这如何影响泛化。最后,演讲者讨论了神经网络中的信用分配以及如何为每个权重独立计算梯度,这可能会导致影响平均值的冲突投票。

  • 00:30:00 在视频的这一部分,Razvan Pascanu 博士谈到了动态学习,这类似于拔河游戏,每个示例都会对重量施加一个力,当达到平衡时,学习就会发生达到了这些力量之间。 ID 数据在这个过程中是必不可少的,因为它确保所有力量都存在。此外,学习间接传授知识,同时学习各种相关概念。建议可以改进学习动态、优化器和游戏自动化中间件,以创建更高效的学习过程,从更少的数据中获取更多的知识。

  • 00:35:00 在本节中,DeepMind 的 Razvan Pascanu 博士讨论了称为持续学习的机器学习子领域中的挑战,这涉及尝试向系统传授新事物,同时又不会忘记以前学过的知识。该领域未明确规定,基准未明确定义,人们对关注的内容存在分歧。一个问题是数据的质量以及学习和遗忘之间的权衡,这在很大程度上取决于基准的定义方式。目标是提出更自然的基准,但甚至连“自然”的定义都没有达成一致。

  • 00:40:00 在本节中,Razvan Pascanu 博士讨论了 AGI 系统的概念及其与人类智能的关系。他解释说,虽然构建一个类似于人类的 AGI 系统可能是为了便于解释,但没有必要。 AGI 学习中使用的子目标是有效的,有助于组合泛化,可以更快地学习新事物。 Pascanu 还讨论了深度学习模型的隐性偏差如何导致错误,以及如何使用显性偏差来改进模型。他举例说明了如何通过在极低曲率区域使用过度参数化系统来改进持续学习。

  • 00:45:00 在视频的这一部分,Razvan Pascanu 博士讨论了模型的大小和架构对其在深度学习中的性能的影响。他指出,规模本身就对系统遗忘的程度有重大影响,而选择正确的架构会产生巨大的影响。该领域通常会忽略架构选择的影响,并且经常不公平地比较架构。 Pascanu 博士还强调了优化在深度学习中的作用,并建议过度参数化会导致许多训练误差为零的解决方案。随着解的数量激增,最接近初始化的解收敛,系统仍然依赖于初始化条件。他提到了一些研究工作的例子,这些例子表明低表面可以具有任何结构并且可以任意复杂。最后,他解释说 res 网络之所以表现出色,是因为它使用跳跃连接来改变梯度在系统中的流动方式。

  • 00:50:00 在本节中,Razvan Pascanu 博士讨论了一些最近的结果,这些结果显示了随机梯度下降 (SGD) 中的隐式偏差以及显式偏差的重要性。关于 SGD,传统上认为 SGD 中的噪声有助于逃避尖锐的极小值,但事实证明,SGD 中使用的正则化器存在隐式偏差。此外,数据增强噪声是有害的,他们发现对不同数据增强的梯度进行平均可以减少这种噪声。此外,偏差非常重要,数据扩充中的轻微调整可以导致性能的巨大改进。他们还探讨了不同初始化的想法,以及它们如何影响解决问题所不可或缺的空间划分。最后,使用显式偏差(例如预训练)也显示出显着的改进。

  • 00:55:00 在本节中,Razvan Pascanu 博士讨论了预训练的概念以及在深度学习模型中添加归纳偏差。他解释说,预训练可以帮助确保信息可以在节点之间正确传输,并且可以导致专用设备的显着改进。此外,Pascanu 博士描述了一种独特的方法,通过塑造损失表面而不是添加正则项来添加归纳偏差,这可以帮助权重锁定为零并提高学习效率。他还解决了与灾难性遗忘相关的问题以及机器学习中分解问题的挑战。

  • 01:00:00 在本节中,Pascanu 博士讨论了深度学习中遗忘的概念以及模型如何从中恢复。他认为,即使模型忘记了某些事情,仍然有一些知识被隐藏,但很难确定实际丢失了多少知识。 Pascanu 博士提到即将发表的关于目标遗忘的论文,其中某些数据点从模型中删除以保护隐私,但他认为需要在该领域进行更多研究。
Challenges in Deep Learning (Dr Razvan Pascanu - DeepMind)
Challenges in Deep Learning (Dr Razvan Pascanu - DeepMind)
  • 2022.11.17
  • www.youtube.com
This talk will cover some of the most important open problems in Deep Learning. A big part of the talk will be focused on Continual Learning as one main open...
 

CS 198-126:2022 年秋季现代计算机视觉(加州大学伯克利分校)第 1 讲 - 机器学习简介



CS 198-126:第 1 讲 - 机器学习简介

在本次机器学习讲座中,讲师涵盖了广泛的主题,包括课程介绍、机器学习概述、不同类型的机器学习、机器学习管道、标记数据和损失函数。还讨论了偏差-方差权衡、过度拟合和欠拟合的概念。讲师强调了在机器学习过程中选择正确函数的重要性以及超参数在这个过程中的作用。机器学习的总体目标是准确预测新数据,而不仅仅是拟合训练数据。讲师鼓励学生上课并努力学习机器学习和深度学习。

  • 00:00:00 在这一部分,没有适当的内容可以总结,因为提供的文字记录摘录似乎是演讲者和听众之间关于房间内麦克风情况的对话。

  • 00:05:00 在本节中,我们将介绍 Jake 及其同事介绍的计算机视觉深度学习系列讲座。课程开始时,Jake 回顾了课程的后勤工作,并概述了他们将在第一堂课中讨论的内容,即机器学习的概述及其处理方法。尽管录音设备在技术上存在一些困难,但杰克仍然很高兴能教这门课,并首先介绍了自己和他的同事。

  • 00:10:00 在这一部分中,讲师介绍了自己和课程,旨在为之前没有太多接触材料的新生提供计算机视觉和深度学习的入门训练营。该课程将涵盖计算机视觉任务、从大型图像数据集学习、3D 视觉和生成艺术等主题。讲师强调课程应该是有趣和互动的,并为课程提供后勤保障,例如访问网站上的录制幻灯片和作业,以及使用 Ed stem 与学生和课程工作人员互动。教学大纲也可以在网站上找到,第一次测验将在下周末结束。

  • 00:15:00 在本节中,讲师介绍了机器学习 (ML)。他解释说,ML 是使用数据来弄清楚函数的外观而不是自己编写代码的过程。对于 ML,数据指导功能,讲师举例说明如何使用 ML 创建从图像中识别数字 7 的功能比尝试通过编码更容易。讲师解释说,ML 涉及模板创建,其中创建函数的结构并留下一些参数,这些参数将决定函数的行为方式,以及通过数据学习的参数。讨论了创建正确函数模板的重要性,因为它决定了 ML 模型的成功。

  • 00:20:00 在讲座的这一部分,演讲者解释说机器学习的关键是弄清楚模型将遵循的函数格式。这个函数有时被称为一类模型,它的某些部分是空白的,被称为参数,这是我们可以学习的值。演讲者强调,函数的选择对于获得准确的结果至关重要。演讲者还简要概述和分类了不同类型的机器学习,包括监督学习、非监督学习和强化学习,并介绍了与机器学习相关的词汇,包括函数、参数、权重、偏差、超参数和特征。

  • 00:25:00 在这一部分中,讲师解释了机器学习的过程,重点是 ML 管道。首先,必须定义问题、准备数据、选择模型和损失函数。还必须使用单热标记系统标记数据,以将其转换为模型可以识别的数字。讲师强调了良好数据的重要性,并指出糟糕的数据输入将导致同样糟糕的输出。此外,他还讨论了数据矢量化的重要性,确保所有特征都在相同的范围内并以正确的顺序表示。

  • 00:30:00 在本节中,讲师解释了如何为机器学习应用程序标记数据,以及为什么正确表示数据很重要。使用一个热标签,其中每个标签由一个向量表示,其中相应位置为 1,其他位置为 0。在训练机器学习模型时,定义模型和损失函数至关重要。该模型应针对特定问题和数据量身定制,并且可以测试不同的模型以查看哪个模型效果最好。损失函数衡量模型的有效性,较低的值是可取的。

  • 00:35:00 在本节中,讲师讨论了在机器学习中优化指标的重要性,并引入了损失函数的概念来衡量模型输出与正确标签之间的差异。均方误差作为损失函数的示例给出,用于计算模型输出与正确标签之间的距离。损失函数是一个超参数,需要事先选择。此外,讲师还谈到了训练阶段,算法使用损失函数为模型参数选择最佳值。此外,模型之前未见过的测试集用于评估模型的性能并确定模型对新数据的泛化能力。最后,强调了确保模型不仅记住训练数据而且很好地泛化到新数据的重要性。

  • 00:40:00 在本节中,偏差和方差权衡的概念被讨论为机器学习中出现在深度学习和所有其他 ML 类中的一个重要方面。偏差是指模型对某些预测的倾向,而方差是模型在不记住数据的情况下捕获数据复杂性的能力。给出了高偏差和高方差的例子,其中高偏差是模型的表现力不足以准确学习数据集的情况,而高方差是指过度拟合。理想的模型是在不记住数据的情况下捕获数据的复杂性,这被称为金发姑娘区。偏差-方差权衡是机器学习中的一个关键概念,用户应该知道,因为他们在参加的每门机器学习课程中都会遇到它。

  • 00:45:00 在本节中,演讲者讨论了机器学习模型中过度拟合和欠拟合的概念。机器学习的目标是准确地建模和预测新数据,而不仅仅是拟合训练数据。如果一个模型能够与训练数据过于接近地匹配但不能准确预测新数据,那么它就是过度拟合。另一方面,如果一个模型太简单并且不能捕捉数据中的模式,它就是欠拟合的。最好的方法是在足够适合训练数据与仍然能够泛化到新数据之间找到平衡。这涉及超参数调整的反复试验和适当损失函数的选择。

  • 00:50:00 在本节中,讲师介绍了机器学习模型中偏差和方差的概念。具有高偏差的模型在训练数据和测试数据之间具有相似的准确性,因为无论输入如何,它都会始终吐出相同的输出。另一方面,高方差模型与数据的拟合过于紧密,导致在对新数据进行测试时损失很大。讲师强调模型复杂性和泛化之间的权衡,在为特定任务选择模型时理解这一点很重要。最后,导师鼓励学生上课并努力学习机器学习和深度学习,即使这可能不是他们的首要任务。
CS 198-126: Lecture 1 - Intro to Machine Learning
CS 198-126: Lecture 1 - Intro to Machine Learning
  • 2022.12.03
  • www.youtube.com
Lecture 1 - Intro to Machine LearningCS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berkeley.e...
 

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



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

在这个关于深度学习简介的 YouTube 讲座中,讲师讨论了深度学习模型的基础知识以及如何使用梯度下降训练它们,涵盖了神经网络的不同构建块以及深度学习为何如此流行的技术。本讲座介绍了感知器和堆叠多个感知器以创建更复杂和精密的神经网络,并解释了如何通过矩阵乘法和最后的加法计算输出,中间层使用 ReLU 激活函数。演讲者介绍了 Softmax 函数和 ReLU 激活函数的使用,使用损失函数作为评估模型性能的指标,以及梯度下降优化的概念。最后,讲师讨论了深度学习的概念,以及大型神经网络如何在具有记忆数据的能力的情况下促进低损失。讲师还介绍了神经网络中超参数调整的概念,以提高其在特定数据集上的性能。他指出超参数没有通用值,并建议探索不同的选项,例如层数和激活函数。由于时间限制,讲座戛然而止,但讲师向学生保证,即将到来的测验不会太难,并且可以在 GreatScope 平台上进行。

  • 00:00:00 在这一部分中,讲师询问听众是否对上一课有任何疑问,特别是关于偏差-方差权衡和单热编码。他们简要介绍了探索性数据分析和 k 折交叉验证,并指出这些主题不会在课程中涉及太多。在开始关于深度学习的第二堂课之前,讲师详细说明了 k 折交叉验证的工作原理。

  • 00:05:00 在讲座的这一部分,讲师简要概述了学生可以学习的内容,包括深度学习模型的基础知识以及如何使用梯度下降训练它们。该讲座还涵盖了神经网络的不同构建模块以及深度学习为何如此流行的技术。在深入学习深度学习的细节之前,讲师回顾了一些基本的线性代数概念,例如向量点积和矩阵向量乘法。这些概念对于理解深度学习模型的内部工作原理很重要。讲师提供示例和符号,以帮助学生充分理解材料。

  • 00:10:00 在视频的这一部分,演讲者讨论了深度学习中的符号和索引,其中使用向量和矩阵来表示黑盒函数的参数。演讲者解释说矩阵中的每个元素都是一个参数,当在向量中进行索引时,它指的是单个标量。他们强调了对输入进行偏导数的简便性,并解释了神经网络背后的动机。

  • 00:15:00 在本节中,讲师讨论了深度学习可以解决的不同类型的问题,例如回归、分类和强化学习。目标是创建一个可用于各种任务的通用模型,类似于人脑的能力。为创建此模型,讲师介绍了感知器,这是一种类似于神经元的数学公式。感知器接收输入、对它们进行加权、相加,然后通过阶跃函数激活它们。目标是创建一个能够解决复杂问题的迷你大脑,例如对看起来很复杂的多项式进行非线性回归。

  • 00:20:00 在本节中,视频介绍了堆叠多个感知器以创建更复杂和精密的神经网络的概念。该视频展示了如何将感知器操作更紧凑地编写为输入和权重之间的点积以及偏置项。然后视频采用此操作并为多个感知器重复此操作以创建单层神经网络。该视频指出,可以根据手头的数据集和问题来学习每个感知器的权重。

  • 00:25:00 在本节中,讲师解释了点积如何计算感知器输出,其中每个感知器都有自己独特的权重和偏差。向量中的每个元素代表感知器输出,它是添加标量的点积。然后讲座介绍了一个玩具示例,要求听众转向他们的邻居并讨论数学以预测输出。

  • 00:30:00 在本节中,演讲者介绍了一个基本的神经网络,该网络由一个具有两个输入的输入层、一个具有三个节点的隐藏层和一个具有一个输出的输出层组成。演讲者演示了如何通过矩阵乘法和最后的加法计算输出,中间层使用 ReLU 激活函数。然后演讲者解释了如何压缩前向传递符号并解决了有关权重排序的问题。最后,演讲者简要介绍了使用神经网络进行分类。

  • 00:35:00 在讲座的这一部分,演讲者谈到了解释深度学习模型的输出。演讲者使用对数字进行分类并将标签表示为单热表示的示例。为了约束模型的输出,保证模型的输出可以解释为模型认为自己属于某一类的概率,演讲者在神经网络的最末端引入了softmax操作。 softmax 函数取所有输出值的指数,然后对结果进行归一化,确保所有元素都在 0 和 1 之间并且总和为 1。此函数保证模型永远不会具有完美的置信度,除非它几乎输出负无穷大每一个值,因此形成了深度学习中始终存在不确定性的模因。
     
  • 00:40:00 在本节中,讲师讨论了 Softmax 函数,该函数接受一个值向量并输出一个值向量,这些值的总和为 1 并且都大于零。如果想要将网络的输出解释为不同类别的概率,则在神经网络的末端使用此函数。该讲座还解释了添加 ReLU 激活函数(这会增加网络的复杂性)的原因是为了能够对复杂函数进行建模,而在没有 ReLU 的情况下,简单的矩阵乘法可能无法捕获这些函数。讲师还谈到了使用损失函数作为评估模型性能的指标,例如均方误差。最后引出身在山上欲下山脚却只见一脚的比喻来解释梯度下降优化的概念。

  • 00:45:00 在这一部分中,讲师介绍了优化中爬山的概念以及它如何应用于深度学习。神经网络是一个向量函数,最陡的方向就是向量函数的梯度。讲师解释说,可以使用多变量微积分计算出最陡上升的方向,其中采用多变量的任何函数相对于其输入的梯度将给出最陡的方向。在深度学习中,找到优化最小损失的最佳权重的问题非常困难,因此讲师建议我们只需将所有权重和偏差初始化为随机值,并在最速下降的方向上采取小步骤。通过持续评估,这个过程应该导致正确选择权重和偏差。

  • 00:50:00 在本节中,演讲者讨论了如何通过对所有单个参数求损失函数的偏导数来降低损失函数。演讲者还提到损失函数取决于所有参数,例如权重和偏差。为了更新这些权重和偏差,我们对那些以当前值评估的参数求损失函数的导数,并在最大变化的相反方向上迈出一小步,按学习率缩放。希望在更新之后,损失函数的值会显着下降。

  • 00:55:00 在本节中,讲师解释了如何逐步调整权重以减少一个示例的损失,以达到减少整个数据集损失的目标。取每个训练样例的梯度,取平均值时,这是可以使整个数据集的损失减少最大的步骤。为了提高计算效率,将其分块并只看称为批量梯度下降的小块。讲师详细介绍了激活函数和损失函数等网络构建块的过程,强调归根结底,重要的是损失函数量化了我们的表现。讲师还指出,没有具体的方法来为神经网络中的所有权重和偏差定义最佳值,因此使用了这些惰性方法。最后,如实证结果所示,解释了深度学习的概念,以及大型神经网络如何在记忆数据的能力下实现低损失。

  • 01:00:00 在本节中,讲师讨论了在神经网络中调整超参数以优化给定数据集性能的过程。他承认没有适用于所有数据集的固定超参数集,而是建议测试不同的参数值,例如层数、激活函数等。讲师不得不匆忙结束讲座并提到测验将很快发布,但它不会太具有挑战性并且将在很大范围内提供。
CS 198-126: Lecture 2 - Intro to Deep Learning, Part 1
CS 198-126: Lecture 2 - Intro to Deep Learning, Part 1
  • 2022.12.03
  • www.youtube.com
Lecture 2 - Intro to Deep Learning, Part 1CS 198-126: Modern Computer Vision and Deep LearningUniversity of California, BerkeleyPlease visit https://ml.berke...