我是机器学习的新手。我对机器学习模型如何记住它所学的内容感到困惑。以及它是如何学习的。
我知道机器学习的基本工作流程:首先是数据收集,然后是数据预处理,然后创建训练和测试数据集,然后训练 ML 学习算法。训练后,我们用测试数据测试模型的准确性。但我对算法是如何训练的以及它如何记住它所学的内容感到困惑。
我是机器学习的新手。我对机器学习模型如何记住它所学的内容感到困惑。以及它是如何学习的。
我知道机器学习的基本工作流程:首先是数据收集,然后是数据预处理,然后创建训练和测试数据集,然后训练 ML 学习算法。训练后,我们用测试数据测试模型的准确性。但我对算法是如何训练的以及它如何记住它所学的内容感到困惑。
ML 算法都会学习一组与您正在训练的任何模型相关的数字。对于神经网络,它是网络链接上的权重。对于回归,它是系数。等等。您可以存储这些数字并在以后使用(大多数 ML 库都有执行此操作的实用程序)。您可以使用系数对尚未训练模型的数据进行预测。
ML 算法使用某种优化来学习系数。它可能是梯度下降、随机梯度下降、xgboost 或许多优化算法中的任何一种。这些通常用于最小化成本函数。该成本函数的定义取决于模型。
欢迎来到数据科学 SE!由于给出了一个简短的答案,我将从一个类似的人类方法开始对这个问题进行更长的概述。但首先,Mitchell 对机器学习的正式定义:
“如果计算机程序在 T 中的任务上的性能(由 P 衡量)随着经验 E 而提高,则可以说计算机程序从经验 E 中学习某类任务 T 和性能度量 P。”
这实质上是说:“做某事,弄错了,*执行魔术*,再试一次,重复直到开心”
它没有详细说明魔法部分……我想这就是您感兴趣的内容。嗯,机器学习(和人工智能)中这种魔法的主要灵感之一是人类——以及我们如何学习。我们通常遵循“边做边学”这句话。让我们用一个愚蠢的人类例子开始:
目标:你想从罐子里得到一块饼干
脚步:
在上面的这个例子中,第 1 步和第 2 步听起来像是强化学习……迭代地学习如何完成一项任务,探索各种可能性。第 3 步和第 4 步最类似于图像分类……分类和标记图像(cookie 的类型)。
比较学习的主要步骤——首先是人脑视图,然后是机器学习等价于第二点:
初始化
正在做
学习
我们通常将梯度下降(更多帮助)作为训练模型的一种方式——帮助它学习。它被称为梯度下降 ,因为我们想象模型的错误/成本就像我们想要下降的一座小山,即我们想要到达它的底部:
这条曲线显示了计算误差、更新权重和重复的迭代过程如何降低误差/成本的梯度。我们以小步骤迭代地执行此操作。模型的权重存储在阶段之间 - 权重在迭代之间是持久的。一旦模型满意,测量小/可接受的错误,我们就完成了训练,可以使用该保留测试数据集来验证模型的性能。
梯度下降(例如反向传播)才是真正发生学习的地方。它们是我们更新权重的方法。他们基本上关闭了从 (1) 得到一个错误——我们有多不高兴——到 (2) 能够以某种方式稍微调整这些权重以使我们下次更好地完成该任务的循环。这实际上等同于从现有权重中添加或减去少量。使用学习率参数控制我们添加/减去的确切数量。如果它很大,我们会加/减大量 - 所以学习速度很快。但这有其自身的问题 - 我们无法始终如一地学习并且可能完全迷失,所以它通常是一个很小的数字 ~ 0.001。
我们在神经网络中开始使用的权重通常只是随机数。我们要求模型执行一项任务,然后使用带有误差的梯度下降来缓慢地改进那些具有微小变化的随机权重。最后,我们将这些权重保存到计算机的磁盘中。它们是简单十进制数的智能组合。
要深入了解机器学习及其含义,在最高级别上,您可能需要阅读这样的文章。
我建议阅读Michael Nielsen 的电子书作为一个很好的直观介绍 - 是一个很好的起点。