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

 

第 16.3 讲——超参数的贝叶斯优化



第 16.3 讲——超参数的贝叶斯优化[机器学习神经网络]

在本视频中,我将讨论一些最近的工作,这些工作解决了如何确定神经网络中超参数的问题。这项工作中提出的方法利用不同类型的机器学习来帮助为超参数选择合适的值。这种方法不是手动调整超参数设置,而是采用机器学习来自动化该过程。该技术依赖于高斯过程,它在建模平滑函数方面很有效。尽管高斯过程传统上被认为不适用于语音和视觉等任务,但它们非常适合先验知识有限的领域,在这些领域中,相似的输入往往会产生相似的输出。

超参数,例如隐藏单元的数量、层数、权重惩罚和 dropout 的使用,在神经网络性能中起着至关重要的作用。找到正确的超参数组合可能具有挑战性,尤其是在手动探索空间时。高斯过程擅长识别数据趋势,并且可以有效地识别好的超参数集。由于难以正确设置超参数,许多研究人员对使用神经网络犹豫不决,因为超参数的错误值会使网络无效。网格搜索是一种常见的方法,涉及详尽地尝试所有可能的组合,这对于大量超参数来说是不可行的。

然而,一种更有效的方法涉及对超参数的组合进行随机抽样。通过这样做,避免了冗余实验,并且更多地关注具有重大影响的超参数。然而,随机组合有局限性,这就是机器学习发挥作用的地方。利用机器学习,我们可以模拟研究生选择超参数值的过程。我们不依赖于随机组合,而是检查迄今为止获得的结果并预测哪些组合可能产生良好的结果。该预测需要确定预期会提供有利结果的超参数空间区域。

为了构建预测模型,我们假设评估单个超参数设置需要大量计算资源,例如在海量数据集上训练大型神经网络,这可能需要几天时间。另一方面,构建一个模型来预测基于先前实验的超参数设置的性能在计算上不太密集。假设相似的输入导致相似的输出的高斯过程模型适用于此类预测。这些模型学习适当的尺度来衡量每个输入维度的相似性,使我们能够识别相似和不同的超参数值。

此外,高斯过程模型不仅可以预测实验的预期结果,还可以提供预测分布,包括方差。当预测与先前设置相似的新超参数设置的性能时,模型的预测是精确的并且具有低方差。相反,对于与任何先前实验显着不同的超参数设置,预测具有高方差。

使用高斯过程来确定下一个超参数设置的策略涉及选择一个设置,该设置有望比目前观察到的最佳设置产生实质性改进。遇到不良结果的风险是可以接受的,因为它不会取代获得的最佳设置。这种策略类似于对冲基金经理使用的方法,他们有很大的动机去冒险,因为没有明显的不利因素。通过遵循这一策略,我们可以就下一步要探索的超参数设置做出明智的决定。

该策略可以适用于并行运行多个实验,从而提高流程效率。作为人类,跟踪大量实验的结果并准确预测其结果具有挑战性。然而,高斯过程模型可以有效地处理这个任务,因为它们可以检测数据中的趋势和模式。最后,与人类相比,高斯过程模型更不容易产生偏差。在进行研究时,研究人员往往会比现有方法更努力地为他们的新方法寻找好的超参数设置。使用高斯过程模型消除了这种偏差,因为它们为所有被评估的模型平等地搜索好的超参数集。总之,高斯过程模型提供了一种强大而有效的方法来确定神经网络中的超参数。通过利用高斯过程的预测能力,我们可以自动化选择超参数值的过程,减少手动探索和猜测的需要。

在处理大量超参数时,像网格搜索这样的传统方法可能不切实际。随机抽样超参数组合是一种更有效的方法,但它仍然有局限性。通过结合机器学习,我们可以模拟人类研究人员的决策过程,并对哪些超参数组合可能产生良好结果做出更明智的预测。高斯过程模型特别适合这项任务。他们擅长识别数据趋势,并且可以有效地模拟超参数设置和性能结果之间的关系。这些模型不仅可以预测新超参数设置的预期性能,还可以提供预测分布,包括不确定性度量。这使我们能够评估预测的可靠性并做出更明智的决定。

使用高斯过程的策略涉及选择超参数设置,这些设置预计会比目前观察到的最佳设置产生实质性改进。通过计算风险并探索与之前实验显着不同的设置,我们有可能发现更好的配置。此外,高斯过程模型可以并行处理多个实验,使过程更加高效。他们可以检测数据中的趋势和模式,允许同时探索不同的超参数设置。使用高斯过程的另一个优势是它们能够最大限度地减少偏差。与已建立的方法相比,研究人员通常会投入更多精力为他们的新方法寻找好的超参数设置。高斯过程模型通过在所有正在评估的模型中平等地搜索最佳超参数集来消除这种偏差。

高斯过程模型提供了一种强大而有效的方法来确定神经网络中的超参数。通过利用它们的预测能力,我们可以使流程自动化,并就探索哪些超参数设置做出更明智的决策。这种方法减少了对人工探索的依赖,提高了神经网络研究中超参数调整的效率和有效性。

 

16.4 进步的迷雾



第 16.4 讲——进步的迷雾 [机器学习的神经网络]

在这最后一段视频中,我很想对神经网络研究的未来做出预测。然而,我想解释一下为什么尝试长期预测是极其愚蠢的。我将用一个类比来说明这一点。

想象一下,您在晚上开车,并专注于前方汽车的尾灯。假设空气晴朗,您从这些尾灯接收到的光子数量会随着距离的平方反比 (1/d^2) 而减少。但是,如果有雾,行为就会改变。在短距离内,光子数量仍然下降为 1/d^2,因为雾在该范围内吸收的光不多。但是在更大的距离上,减少遵循指数函数 (e^(-d)),因为雾具有指数效应。它每单位距离吸收一小部分光子,随着距离的增加变得更加不透明。这意味着,在您的短程模型预测其可见的距离内,您面前的汽车可能会完全隐形。这种现象是造成人们在雾中开车撞到汽车后部造成事故的原因。

同样,包括机器学习和神经网络在内的技术发展通常呈指数级增长。在短期内,进展似乎相对缓慢且可预测。我们可以对不久的将来做出合理的猜测,比如下一代 iPhone 机型的功能。然而,当我们进一步展望长远的未来时,我们的预测能力就会遇到瓶颈,就像遇到雾一样。我们根本不知道 30 年后会发生什么,因为指数级进步会导致意想不到的变革性变化。

因此,机器学习和神经网络的长期未来仍然是一个谜。我们无法根据我们目前的知识来预测它。然而,在短期内,比如 3 到 10 年,我们可以做出相当准确的预测。在我看来,在未来五年左右的时间里,大型深度神经网络将继续取得非凡成就,这一点似乎很明显。

我想借此机会祝贺你们所有人坚持课程直到最后。我希望你喜欢它,祝你在期末考试中好运。

 

深度学习和神经网络的友好介绍



深度学习和神经网络的友好介绍

欢迎来到深度学习入门!我是 Luis Serrano,在 Udacity 工作。让我们从回答这个问题开始:什么是机器学习?

为了解释它,让我们考虑一个简单的例子。想象一下,我们有一个人和一个蛋糕,我们的目标是告诉人去拿蛋糕。我们可以通过一条指令轻松做到这一点:“去拿蛋糕。”人类理解并得到蛋糕。现在,让我们尝试用机器人解决同样的问题。这不是那么简单,因为我们需要给机器人一组指令。比如“右转走十步,左转走四步,然后拿到蛋糕”。此解决方案特定于此特定场景,不可推广。如果机器人处于不同的位置,我们将需要一套完全不同的指令。

为了以更通用的方式解决这个问题,我们可以使用机器学习。我们可以教计算机找出找到蛋糕的最佳方法,而不是提供明确的指令。为此,我们要求计算机计算到蛋糕的距离,然后朝距离最短的方向移动。计算机不断迭代,直到找到蛋糕。最小化错误或距离的概念是大多数机器学习问题的核心。我们定义一个误差度量,例如到蛋糕的距离或山的高度,然后使用梯度下降来最小化该误差。通过反复计算梯度并向误差最小的方向移动,我们可以找到各种问题的解决方案。

机器学习有很多应用,例如教计算机玩围棋或危险边缘等游戏、实现自动驾驶汽车、检测垃圾邮件、识别人脸等等。这些应用的核心是神经网络的概念,它构成了深度学习的基础。当我们想到神经网络时,我们可能会想象具有节点、边和层的复杂结构。但是,考虑它们的一种更简单的方法是将其作为划分数据的工具。就像一个孩子在沙子里玩耍并画一条线来分离红色和蓝色的贝壳一样,神经网络可以学习分离不同类型的数据点。

要训练神经网络,我们需要一个连续的误差函数。最小化错误数量是不合适的,因为它是一个离散函数。相反,我们使用错误函数将惩罚分配给错误分类的点。通过调整神经网络的参数,例如我们示例中直线的位置,我们可以最大限度地减少误差并找到最佳解决方案。这种称为逻辑回归的方法允许我们构建一个概率函数,将可能性分配给不同的数据点。靠近 50/50 线的点更有可能被分类为红色或蓝色,而距离更远的点则更有把握地被分类。

机器学习是关于最小化错误或距离以找到各种问题的最佳解决方案。神经网络提供了一种划分数据和进行分类的方法。通过使用连续误差函数和梯度下降,我们可以训练神经网络并将其应用于广泛的应用。

 

递归神经网络的友好介绍



递归神经网络的友好介绍

欢迎阅读递归神经网络的友好介绍!我是 Luis Serrano,是 Udacity 的机器学习讲师。感谢您对我以前的视频的所有反馈。我收到了很多建议,其中之一是关于循环神经网络的,这就是我决定制作这个视频的原因。

让我们从一个简单的例子开始。想象一下,你有一个完美的室友,他会做三种食物:苹果派、汉堡和鸡肉。他的烹饪决定取决于天气。如果天气晴朗,他会做苹果派,如果下雨,他会做汉堡。我们可以使用一个简单的神经网络对这种情况进行建模,其中输入是天气(晴天或雨天),输出是相应的食物(苹果派或汉堡)。

为了表示食物和天气,我们使用向量。苹果派的食物向量是 [1 0 0],汉堡是 [0 1 0],鸡肉是 [0 0 1]。晴天的天气矢量是 [1 0],下雨的天气矢量是 [0 1]。我们可以使用矩阵乘法映射这些向量,其中输入向量乘以矩阵以获得输出向量。

现在让我们考虑一个更复杂的问题。我们完美的室友仍然按顺序做饭(苹果派、汉堡、鸡肉),但现在他的决定取决于他前一天做了什么。这称为递归神经网络。每天的输出成为第二天的输入。我们可以使用矩阵和向量运算来表示这个网络。

例如,如果前一天的食物是苹果派,而今天的天气是下雨,我们使用食物矩阵和天气矩阵来计算输出。食物矩阵采用前一个食物向量并返回连接的当前和下一个食物向量。天气矩阵采用天气向量并指示我们是否应该烹饪当天或第二天的食物。通过将这两个矩阵的结果相加,我们就可以确定室友第二天要做什么菜。

这种方法结合了前两个例子,其中室友的烹饪决定是基于天气和前一天的食物。矩阵和向量运算帮助我们计算循环神经网络的输出。

递归神经网络是强大的模型,可以通过考虑先前的输入来处理顺序数据。它们在各种应用中都很有用,例如自然语言处理和时间序列分析。我希望这篇介绍能让您对递归神经网络有一个很好的理解。

 

生成对抗网络 (GAN) 的友好介绍



生成对抗网络 (GAN) 的友好介绍

大家好,我是 Luis Serrano,这个视频是关于生成对抗网络 (GAN) 的。 GAN 由 Ian Goodfellow 开发,是机器学习领域的一项重大进步,具有众多应用。 GAN 最引人入胜的应用之一是人脸生成。你可以在网站“thispersondoesnotexist.com”上看到这一点,其中所有人物图像都是由神经网络生成的。

在本视频中,我们将学习如何使用 GAN 以简单的方式生成人脸。即使您不喜欢编写代码,该视频也会为您提供直觉和方程式。我们将编写一对生成简单图像的单层神经网络,您可以在 GitHub 上找到代码。

让我解释一下 GAN 是什么。 GAN 由两个相互竞争的神经网络、一个生成器和一个鉴别器组成。生成器试图创建假图像,而鉴别器试图区分真实图像和假图像。当鉴别器捕捉到生成器时,生成器会改进其图像,直到它可以生成一个完美的图像来愚弄鉴别器。为了训练 GAN,我们使用一组真实图像和一组由生成器生成的假图像。鉴别器学习从假图像中识别真实图像,而生成器学习欺骗鉴别器将其图像分类为真实图像。

在本视频中,我们将使用 Python 构建一对简单的 GAN,无需任何深度学习包。我们的任务是在一个名为“Slanted Land”的世界中生成面孔,在这个世界中,每个人都显得拉长并且以 45 度角行走。 Slanted Land 的世界技术有限,包括显示黑白图像的 2x2 像素屏幕。我们将创建一层神经网络来生成 Slanted Land 中人们的面孔。

鉴别器网络分析图像的像素值以区分人脸和非人脸。我们可以通过比较左上角和右下角与其他两个角的值来确定图像是否是人脸。面部将具有更高的价值差异,而非面部或嘈杂的图像将具有更低的差异。通过应用阈值,我们可以将图像分类为人脸或非人脸。生成器网络通过为左上角和右下角分配较高的值以及为右上角和左下角分配较低的值来创建面孔。通过应用 sigmoid 函数,我们可以获得概率并生成图像的像素值。生成器网络旨在始终生成人脸,而不管输入值如何。为了训练神经网络,我们需要定义一个误差函数。我们使用对数损失,即负自然对数,来衡量预测输出与期望输出之间的误差。误差函数通过称为反向传播的过程帮助网络提高权重并减少误差。

反向传播涉及计算误差相对于权重的导数,并相应地调整权重以最小化误差。迭代地重复此过程以训练生成器和鉴别器网络。通过使用适当的误差函数和反向传播训练生成器和鉴别器网络,我们可以在 Slanted Land 中生成逼真的人脸。生成器学习创建类似于人脸的图像,而鉴别器学习区分真实人脸和生成的人脸。

本概述提供了 GAN 的一般概念以及它们如何生成人脸。在视频中,我们将深入研究概念并逐步演示编码过程。无论您是想编写代码还是获得直觉和理解,该视频都对您很有价值。因此,在这种情况下,鉴别器的误差将是 1 的负对数减去预测值。我们使用反向传播计算该误差相对于鉴别器权重的梯度,然后更新鉴别器的权重以最小化该误差。接下来,让我们考虑一下生成器。生成器的目标是生成鉴别器分类为真人或人脸的图像。换句话说,生成器想愚弄鉴别器使其生成的图像输出高概率。因此,生成器的误差是鉴别器对生成图像的预测的负对数。

同样,我们使用反向传播计算此误差相对于生成器权重的梯度,并更新生成器的权重以最小化此误差。生成器学习调整其权重,以生成类似于真实人脸的图像,并增加鉴别器将其分类为人脸的概率。我们多次重复这个过程,交替训练判别器和生成器。每次迭代都有助于两个网络提高性能。鉴别器在区分真假图像方面变得更好,而生成器在生成可以欺骗鉴别器的真实图像方面变得更好。

这种训练生成器和鉴别器的迭代过程使 GAN 变得强大。他们通过相互竞争来学习生成高度逼真和连贯的样本。生成器学习创建更有说服力的图像,而鉴别器变得更善于检测假图像。通过足够的训练,GAN 可以生成类似于真实数据的图像、文本、音乐甚至视频。

GAN 由一个生成器和一个鉴别器组成,它们以类似游戏的方式相互竞争。生成器生成假样本,鉴别器试图区分真假样本。通过这种对抗过程和使用适当误差函数的训练,GAN 学会生成高质量和真实的数据。

 

受限玻尔兹曼机 (RBM) - 友好介绍



受限玻尔兹曼机 (RBM) - 友好介绍

大家好,我是 Luis Serrano,这个视频是关于受限玻尔兹曼机 (RBM) 的。 RBM 是用于监督学习、降维和生成机器学习的强大算法。

让我们从一个谜开始。街对面有一所房子,有时会有人来参观。我们观察到三个人 Ayesha、Beto 和 Cameron 经常来,但并不总是一起来。有时只有 Ayesha 出现,有时是 Beto 或 Cameron,有时不止一个人来,包括他们都没有出现的日子。我们调查这个模式,发现他们彼此不认识,所以我们需要为他们的出现寻找另一个原因。

我们发现房子里有宠物,一只名叫笛卡尔的狗和一只名叫欧拉的猫。 Ayesha 和 Cameron 喜欢狗,所以当 Descartes 在场时它们会出现。另一方面,贝托对狗过敏,但喜欢猫,所以他只在阿伊莎在场的时候出现。我们分配分数来表示他们的偏好,正分表示喜欢,负分表示不喜欢。现在我们想计算出不同情况发生的可能性。我们为每个场景分配分数并将其转换为概率。一种方法是使用 softmax 函数将分数转换为概率,确保较高的分数对应较高的概率。

我们构建了一个具有可见层和隐藏层的受限玻尔兹曼机 (RBM)。可见层代表观察到的数据(人),隐藏层代表未观察到的数据(宠物)。 RBM 由通过权重连接的节点组成,并为每个连接分配分数。为了训练 RBM,我们需要找到与我们从数据中获得的概率相匹配的权重。我们希望 RBM 将高概率分配给 Ayesha 和 Cameron 或只有 Beto 出现的场景,而将低概率分配给其他场景。通过调整权重,我们可以影响 RBM 分配的概率。目标是使 RBM 与观察到的数据保持一致并模拟所需的概率。

为了达到我们想要的概率,我们需要调整 RBM 中的权重。权重决定了可见层和隐藏层之间的每个连接的影响。通过更新权重,我们可以增加某些场景的概率并降低其他场景的概率。为了更新权重,我们使用了一种称为对比散度的技术。它涉及比较 RBM 几次迭代前后可见层状态的概率。权重更新基于这两组概率之间的差异。在训练过程中,我们反复将训练数据呈现给 RBM 并调整权重以最大化观测数据的概率。这个过程被称为无监督学习,因为我们没有训练数据的明确标签。

训练后,RBM 可用于通过从学习到的概率分布中采样来生成新数据。我们可以生成与训练数据中观察到的场景相似的场景。为了训练我们的模型,我们使用 RBM(受限玻尔兹曼机)并遵循增加和减少概率的过程。我们没有考虑所有可能的场景,而是随机选择一个场景并增加其概率,同时降低随机选择场景的概率。我们多次重复这个过程,逐渐调整概率以适应我们想要的结果。对于每个数据点,我们选择一个扩展它的场景并增加它的概率,同时随机选择另一个场景并降低它的概率。我们对整个数据集继续这个过程,多次循环。由此产生的概率与我们的数据非常吻合,匹配不同场景的发生。

为了修改概率,我们调整了 RBM 的权重。我们专注于与所需场景相对应的特定顶点和边。通过增加或减少权重,我们可以影响这些场景的概率。抽样是一个挑战,因为我们想根据各自的概率来选择场景。我们引入独立采样,我们只考虑连接到所需场景的相关顶点和边。通过使用 sigmoid 函数计算概率,我们可以随机选择概率与其权重成正比的场景。为了选择与给定数据点一致的场景,我们关注相关参与者及其联系,忽略不相关的参与者。我们根据权重计算概率,并使用 sigmoid 函数将它们转换为概率。这使我们能够随机选择一个具有反映其权重的概率的场景。

为了选择一个完全随机的场景,我们通过在分布中采取随机步骤来近似它,类似于探索不同的可能性。虽然它可能不是完全随机场景的完美表示,但它可以作为一个近似值。这个过程使我们能够训练 RBM 并调整概率以匹配我们期望的结果,有效地建模我们的数据。

受限玻尔兹曼机已成功应用于各种任务,例如协同过滤、降维和特征学习。它们还被用作更复杂的深度学习模型的构建块,例如深度信念网络。

受限玻尔兹曼机是机器学习中使用的强大算法。它们涉及一个可见层和一个通过权重连接的隐藏层。通过训练调整权重,RBM 可以学习训练数据的概率分布并生成新的数据样本。 RBM 在各个领域都有应用,是深度学习模型的重要组成部分。

 

深度强化学习、Q 网络和策略梯度的友好介绍



深度强化学习、Q 网络和策略梯度的友好介绍

大家好,我是 Luis Serrano,这是对深度强化学习和策略梯度的友好介绍。强化学习在自动驾驶汽车、机器人以及围棋、国际象棋和 Atari 游戏等复杂游戏中都有应用。强化学习和预测机器学习之间的主要区别在于,在强化学习中,我们有一个与环境交互的代理,收集奖励和惩罚以创建数据,而预测机器学习依赖于现有数据来训练模型。在本视频中,我们将介绍马尔可夫决策过程 (MDP)、贝尔曼方程以及神经网络如何通过 Q 网络和策略梯度协助强化学习等重要概念。

让我们从一个使用名为 Grid World 的 MDP 的强化学习示例开始。在 Grid World 中,我们有一个代表宇宙的网格,我们的代理被描绘成一个圆圈。网格包含特殊方块,包括有钱的方块和带有导致游戏结束的龙的方块。代理的目标是通过在网格中移动、收集奖励或惩罚来最大化点数。我们可以使用 Bellman 方程确定智能体的最佳策略,该方程根据相邻状态的最大值计算每个状态的值。然后我们可以推导出一个策略,该策略向智能体提供关于最大化点数的最佳路径的说明。

为了提高政策的效率,我们引入了奖励和折扣因素。奖励代表采取步骤时获得或失去的点数,折扣因子说明未来奖励与即时奖励相比的价值。通过考虑奖励和折扣因子,我们可以调整状态值并相应地更新贝尔曼方程。通过迭代和更新值,我们可以收敛到每个状态的最优值,并确定将代理引导到最高点的策略。

通过理解贝尔曼方程并使用奖励和折扣因子,我们可以解决 MDP 并找到强化学习的最佳策略。左侧表示代理应该向右移动以找到最佳值。该策略指示智能体以 1 的概率向右移动,以 0 的概率向其他方向移动。相比之下,随机策略会强烈支持向右移动,但仍会根据获得的奖励给其他方向一个机会.例如,右侧的随机策略优先考虑右侧的状态,因为它具有最高的值,而左侧的状态由于其得分低而具有最低的优先级。然而,概率仍然是非零的,允许代理探索空间,即使它并不总是获得最好的奖励。

现在,让我们讨论一下神经网络在这个过程中的作用。我们可以使用神经网络从几个状态收集信息,而不是让代理重复访问所有状态,这很昂贵。神经网络可以了解到具有相似坐标的状态应该具有相似的值。我们使用价值网络,输入是一个点的坐标,输出是那个点的分数。同样,我们可以使用策略网络来近似每个状态的策略。策略网络将坐标作为输入并输出四个数字,分别代表向上、向右、向下和向左移动的概率。为了训练价值网络,我们强制它满足 Bellman 方程,该方程将一个状态的值与其相邻状态相关联。我们使用神经网络在相邻状态的值并调整中间的值以满足方程。通过基于贝尔曼方程反复更新神经网络,我们可以逼近所有状态的值。

对于策略网络,我们通过采用基于当前策略的路径并用相应的增益标记每个动作来训练它。我们创建一个包含增益、坐标和动作的数据集,并将其提供给策略网络。然后我们鼓励或阻止网络根据收益采取某些行动。通过用不同的路径重复这个过程,我们可以随着时间的推移改进策略网络。我们使用神经网络来近似国家的价值观和政策。价值网络帮助我们估计每个状态的价值,而政策网络指导代理人的行动。训练涉及根据贝尔曼方程和基于路径的标记反复更新网络。

现在我们有了每个状态的值和相应的策略,我们可以使用它们在游戏中做出决策。该政策根据我们计算的值告诉我们每个州应采取的最佳行动。例如,如果代理处于某个状态并且想知道要采取什么操作,它只需查看策略并遵循指向具有最高值的相邻状态的箭头。这确保代理采用最佳路径来最大化其奖励。就我们的网格世界游戏而言,该策略可以指导代理避开障碍物并尽快到达具有最高奖励的终端状态。通过遵循该策略,代理可以在网格世界中导航并收集积分,同时避免负面奖励。

强化学习算法,例如 Q 学习或策略梯度,可用于为更复杂的环境找到最佳策略和值。这些算法利用马尔可夫决策过程和贝尔曼方程的概念来迭代更新值并随着时间的推移改进策略。神经网络也可以用来处理大而复杂的状态空间。 Q 网络和策略梯度方法利用神经网络来近似值或策略函数,从而在强化学习任务中实现更高效和有效的学习。

通过结合强化学习算法和神经网络,我们可以解决具有挑战性的问题,例如自动驾驶汽车、机器人技术和复杂的游戏玩法。这些技术具有广泛的应用,并不断推动人工智能领域的发展。

强化学习涉及训练代理人通过与环境交互并收集奖励来在环境中做出决策。代理使用从 Bellman 方程获得的值和策略来导航环境并最大化其奖励。神经网络可用于处理强化学习中更复杂的问题。

 

机器学习的友好介绍



机器学习的友好介绍

您好,欢迎来到机器学习的世界。今天,我们将探讨什么是机器学习。在这个世界上,我们有人类和计算机,他们之间的一个关键区别是他们的学习方式。人类从过去的经验中学习,而计算机需要编程并遵循指令。然而,我们也可以教计算机从经验中学习吗?答案是肯定的,这就是机器学习的用武之地。在计算机领域,过去的经验被称为数据。

在接下来的几分钟内,我将向您展示几个示例,演示我们如何教计算机从以前的数据中学习。令人兴奋的是,这些算法非常简单,机器学习无所畏惧。让我们深入研究我们的第一个例子。假设我们正在研究房地产市场,我们的任务是根据房屋的大小来预测其价格。我们收集了各种房屋的数据,包括它们的大小和价格。通过将此数据绘制在图表上,x 轴代表以平方英尺为单位的房屋面积,y 轴代表以美元为单位的价格,我们可以直观地看到两者之间的关系。我们注意到数据点大致形成一条线。

使用称为线性回归的方法,我们可以绘制一条最适合数据点的线。这条线代表我们预测给定房屋大小的房屋价格的最佳猜测。通过检查图表,我们可以通过识别线上的对应点来估算中型房屋的价格。线性回归允许我们通过最小化直线和数据点之间的误差来找到最佳拟合直线。线性回归只是机器学习算法的一个例子。当数据形成线性关系时,比较简单有效。然而,我们可以使用类似的方法来拟合其他类型的数据,例如曲线、圆或更高阶多项式,具体取决于问题的性质。

现在,让我们转到另一个示例。假设我们要构建一个垃圾邮件检测系统。我们收集了以前电子邮件的数据,包括它们是否被标记为垃圾邮件。通过分析这些数据,我们可以识别可能表明电子邮件是否为垃圾邮件的特征。例如,我们可能会发现包含“便宜”一词的电子邮件通常被标记为垃圾邮件。使用朴素贝叶斯算法,我们可以将概率与这些特征相关联。在这种情况下,如果一封电子邮件包含“廉价”一词,我们会发现 80% 的此类电子邮件被标记为垃圾邮件。通过组合多个特征及其相关概率,我们可以创建一个分类器,根据其特征预测电子邮件是否为垃圾邮件。

继续我们的下一个示例,假设我们在 App Store 或 Google Play 中工作,我们的目标是向用户推荐应用程序。我们可以收集有关用户、他们的特征以及他们下载的应用程序的数据。通过分析这些数据,我们可以构建一个决策树来指导我们的建议。决策树由基于用户特征的问题组成,从而推荐特定的应用程序。例如,我们可能会询问用户是否小于 20 岁。根据答案,我们可以推荐特定的应用。如果用户年龄较大,我们可以提出不同的问题,例如他们的性别,以进一步完善我们的推荐。决策树帮助我们根据用户属性做出个性化的应用推荐。

最后,让我们考虑一下大学的招生办公室。他们试图根据两条信息来确定录取哪些学生:入学考试成绩和学生的成绩。通过分析以前被录取和被拒绝的学生的数据,我们可以创建一个逻辑回归模型。

使用逻辑回归,我们可以画一条线来分隔接受和拒绝学生的数据点。这条线代表决定一个学生是被录取还是被拒绝的决策边界。逻辑回归模型根据高考成绩和成绩计算录取概率。一旦确定了决策边界,就可以通过在图表上绘制入学考试分数和成绩来评估新生。如果点落在决策边界之上,模型预测入场;如果低于该值,则该模型预测会被拒绝。这些只是机器学习算法的几个例子,以及它们如何应用于各个领域。机器学习允许计算机从数据中学习并做出预测或决策,而无需针对每种情况进行明确编程。它支持自动化、模式识别以及处理复杂和大规模数据的能力。

重要的是要注意机器学习需要数据来学习。数据的质量和相关性对模型的准确性和有效性起着重要作用。此外,机器学习模型需要在具有代表性的数据集上进行训练和验证,以确保它们的普遍性。

机器学习是一个快速发展的领域,拥有众多的算法、技术和应用程序。研究人员和从业者不断探索新方法并突破可能的界限。随着技术的进步和更多数据的可用,机器学习有望对各个行业和我们生活的方方面面产生越来越重要的影响。

 

机器学习:测试和错误指标



机器学习:测试和错误指标

大家好,欢迎来到本教程,了解机器学习测试和错误指标。我叫 Luis Serrano,我在优达学城工作,教授机器学习。那是我的照片。今天,我们将关注两个问题:第一,我的模型做得怎么样?一旦我们弄清楚了,我们如何根据这些指标改进它?让我们深入研究并查看一些数据。我们有蓝点和红点,我们想训练一个模型来分离它们。我们最简单的模型是线性模型,它是将数据切割成蓝色和红色的一条线。它犯了一些错误,但总体上是好的。我们还考虑使用更高阶多项式的更复杂模型。这个模型在分离点方面做得更好,但是两者之间哪个模型更好呢?

要回答这个问题,我们需要使用测试。我们没有使用所有的点进行训练,而是将它们分成训练集和测试集。训练点用于训练模型,而测试点用于评估模型的性能。在我们的例子中,线性模型在测试集上犯了一个错误,而多项式模型犯了两个错误。因此,线性模型在测试集上表现更好,因为它具有更好的泛化能力。

在测试方面,有一些重要的规则需要遵循。第一条黄金法则是永远不要将测试数据用于训练。将您的测试数据分开,仅将其用于评估。第二条规则是确保你的朋友也不要使用他们的测试数据进行训练。最后,第三条规则强调永远不要使用您的测试数据进行训练。避免意外滥用测试数据至关重要。

虽然看起来我们将数据分成训练集和测试集是在浪费数据,但有一种方法可以解决这个问题。我们可以将数据分成 k 个相等的集合,通常使用一种称为 k 折交叉验证的技术。数据的每一部分都用于训练和测试,最后对结果进行平均。这种方法使我们能够更好地利用数据,同时仍然评估模型的性能。

现在让我们讨论帮助我们评估模型运行情况的指标。一个常见的指标是准确性,它衡量模型正确分类的实例数与实例总数的比值。但是,如信用卡欺诈检测、医疗诊断和垃圾邮件分类的示例所示,仅准确性可能并不总是最佳指标。在这些情况下,假阴性和假阳性具有不同的含义。

为了更有效地评估模型,我们使用混淆矩阵。该矩阵呈现四种可能性:真阳性、真阴性、假阳性和假阴性。根据与实际数据相比的模型预测,这些中的每一个都代表不同的结果。例如,在医学诊断中,假阴性意味着病人被归类为健康人,这比假阳性更糟糕。同样,在垃圾邮件分类中,误报意味着将非垃圾邮件标记为垃圾邮件,这比误报更糟糕。

通过考虑误报和漏报的具体背景和后果,我们可以选择合适的指标来评估我们的模型。准确率本身可能无法捕捉全貌,其他指标(如准确率、召回率和 F1 分数)可以提供对模型性能的更多见解。

我们可以将这两个分数合二为一吗?一种结合精确度和召回率分数的简单方法是取它们的平均值。让我们计算提供的精度和召回分数的平均值。在左侧,精度为 69.5,在右侧,精度为 66.95。取这两个分数的平均值,我们得到 68.225。但是,此平均值可能无法提供足够的信息,并且可能与准确性没有显着差异。为了理解这个平均分数的含义,让我们考虑一个涉及信用卡欺诈检测的极端例子。

在示例中,我们有两个模型:一个将所有交易分类为良好交易,另一个将所有交易分类为欺诈交易。让我们计算两个模型的精度和召回率。

对于将所有交易分类为良好的模型,精度为 100%(因为所有分类为不良的交易实际上都是好的),召回率为 0%(因为没有发现欺诈交易)。如果我们取准确率和召回率的平均值,我们将得到 50%。然而,给一个表现不佳的模型打这么高的分数似乎并不合适。同样,对于将所有交易分类为欺诈的模型,精度为 0.16%(在所有交易中正确分类 472 笔),召回率为 100%(因为所有欺诈交易都被捕获)。同样,准确率和召回率的平均值约为 50%,这并不能准确反映模型的不良性能。

为了克服这个限制,我们可以使用另一种称为调和平均数的平均值,也称为 F1 分数。使用公式 2 *(精度 * 召回率)/(精度 + 召回率)计算调和平均值。 F1 分数提供了一种更平衡的表示,尤其是当一个指标(精度或召回率)与另一个指标有显着差异时。

对于医学模型,精度为 55.7,召回率为 83.3。使用调和平均公式计算 F1 分数,我们得到 66.76%。对于垃圾邮件检测模型,精度为 76.9,召回率为 37。F1 分数为 49.96%。对于线性模型,精度为 75,召回率为 85.7。 F1 分数为 80%。

在信用卡欺诈模型的情况下,如果我们更愿意捕获所有欺诈交易,我们会优先召回。因此,在这种情况下,一个好的指标应该更接近召回率而不是精确率。

测试和错误指标对于评估和改进机器学习模型至关重要。遵循测试的黄金法则、选择适当的指标并考虑误报和漏报的后果有助于我们对模型做出明智的决策。

可以使用 F1 分数将精度和召回率组合成一个分数,它采用两个指标的调和平均值。这提供了更平衡的评估,并且在一个指标与另一个指标明显不同时特别有用。

 

10分钟内的ROC(接受者操作特征)曲线!



10分钟内的ROC(接受者操作特征)曲线!

问候!我是 Luis Serrano,在本视频中,我们将讨论接受者操作特征 (ROC) 曲线。 ROC 曲线广泛用于评估机器学习模型和做出重要决策。

让我们从包含蓝点和红点的数据集开始,其中蓝点标记为正,红点标记为负。我们将构建一个适合该数据集的机器学习模型。例如,考虑这一行。请注意,线条的蓝色一侧将该侧的每个点分类为蓝色或正,而红色侧将该侧的点分类为红色或负。但是,该模型会犯一些错误。一个例子是位于蓝色区域的红点,这是一种误报。另一个例子是红色区域中线下方的蓝色点,这是假阴性。要更好地理解误报和漏报,请查看我关于机器学习测试和错误指标的其他视频。

现在,让我们考虑同一类型模型的两个不同示例。左边的模型是医学模型,正点代表生病,负点代表健康。另一方面,右边的模型是垃圾邮件检测模型,其中正点是垃圾邮件,负点是非垃圾邮件或“火腿”邮件。

在医学模型中,当健康人被诊断为生病时会出现假阳性,从而导致不必要的检查。当病人被诊断为健康时会发生假阴性,导致没有治疗。在这种情况下,假阴性被认为是更糟糕的,因为将健康人送去接受额外检测比将病人不经治疗送回家更好。因此,我们的目标是修改模型以减少假阴性。

在垃圾邮件检测模型中,误报是被归类为垃圾邮件并发送到垃圾邮件文件夹的良好“火腿”电子邮件。漏报是将垃圾邮件错误地归类为“火腿”并发送到收件箱。在这里,误报被认为是更糟糕的,因为在收件箱中偶尔收到垃圾邮件比被标记为垃圾邮件的重要电子邮件更受欢迎。因此,我们专注于减少该模型中的误报。

这两个模型代表了极端,大多数模型介于两者之间,容忍一些误报或漏报。但是,分配给每种错误类型的重要性可能会有所不同。因此,对于每一类模型,我们都需要确定最佳点来设置分类阈值。

在本视频中,我将向您展示一种有助于做出此类决定的有用方法。我们将考虑由这条线表示的假设数据集。我们的模型将是这条线的平行翻译。对于每个模型,我们将记录正确分类的红色和蓝色点的数量。

我们从底部的线开始,所有蓝点都被正确分类,而红点都没有被正确分类。这给了我们 0 个正确的红点和 5 个正确的蓝点。我们绘制这些值并移动线一次覆盖一个点,记录正确的分类。这个过程一直持续到最后。最后,我们总是有 5 个正确的蓝色点和 0 个正确的红色点。我们绘制这些点并计算曲线下的面积。在这种情况下,面积是 25 个正方形中的 21 个,导致曲线下面积为 0.84。面积介于 0 和 1 之间,值越大表示模型性能越好。我们可以使用此 ROC 曲线来对我们的模型做出决策。一个好的模型将由曲线上的一个点表示,几乎没有误报和漏报。根据我们的具体要求,例如最小化医学模型中的假阴性或垃圾邮件检测模型中的假阳性,我们可以选择曲线上的相应点。

或者,我们可以将数据点视为模型分配的分数介于 0 和 1 之间。通过应用阈值,我们可以将这些分数转换为离散预测。我们调整阈值并观察模型在不同级别的表现。此过程创建 ROC 曲线。选择曲线上的一个点可以帮助我们为我们的预测选择一个合适的阈值。此外,值得注意的是,曲线下面积小于 0.5 并不表示模型较差。事实上,它仍然可以是一个很好的模型。例如,面积为 0 的模型对应于犯了所有错误的模型,但如果我们翻转预测,它几乎和没有错误的模型一样好。因此,面积低于 0.5 的模型仍然有效。

感谢您的关注!如果您喜欢这个视频,请订阅更多内容。请随意点赞、分享和评论,尤其是如果您对未来的视频有任何建议。您也可以通过 Twitter @LuisLikesMath 与我联系。查看 Luis Serrano Academy,了解有关视频、书籍和课程的更多信息。下个视频见!