应我的朋友 Richaldo 的请求,在这篇文章中,我将解释机器学习算法的类型以及何时应该使用每种算法。我特别认为,了解机器学习算法的类型就像了解人工智能的大局一样,了解该领域正在做的所有事情的目标是什么,让你能够更好地分解一个问题。真正的问题并设计一个机器学习系统。
本文中经常使用的术语:
- 标记数据:由一组数据组成 训练示例, 其中每个示例都是 一对 由输入和期望的输出值(也称为 监控信号、标签等)
- 分类: 目标是预测离散值,例如{1,0}、{正确、错误}、{垃圾邮件、非垃圾邮件}。
- 回归: 目标是预测连续值,例如房价。
机器学习算法的类型
如何定义机器学习算法的类型有一些变化,但通常可以根据其目的将它们分为几类,主要类别如下:
- 监督学习
- 无监督学习
- 半监督学习
- 强化学习
监督学习
- 我喜欢用函数逼近的概念来思考监督学习,基本上我们训练一个算法,在这个过程的最后,我们选择最能描述输入数据的函数,这个函数对于给定的 X 做出最好的估计y(X -> y)。大多数时候,我们无法找出始终做出正确预测的真实函数,其他原因是该算法依赖于人类对计算机应该如何学习做出的假设,而这种假设引入了偏差,偏差是主题我将在另一篇文章中解释。
- 在这里,人类专家充当老师,我们向计算机提供包含输入/预测变量的训练数据,并向其显示正确的答案(输出),并且计算机应该能够从数据中学习模式。
- 监督学习算法尝试 模型目标预测输出和输入特征之间的关系和依赖关系 这样我们就可以根据从以前的数据集中学到的关系来预测新数据的输出值。
草稿
- 预测模型
- 我们已经标记了数据
- 监督学习问题的主要类型包括回归问题和分类问题
常用算法列表
- 最近的邻居
- 朴素贝叶斯
- 决策树
- 线性回归
- 支持向量机 (SVM)
- 神经网络
无监督学习
- 计算机使用未标记的数据进行训练。
- 这里根本没有老师,实际上计算机在学习数据模式后可能能够教你新东西,这些算法在人类专家不知道在数据中寻找什么的情况下特别有用。
- 是机器学习算法系列,主要用于 模式检测 和 描述性建模。然而, 没有输出类别或标签 在此基础上,算法可以尝试对关系进行建模。这些算法尝试使用输入数据的技术来 我的规则, 检测模式, 和 对数据点进行总结和分组 这有助于获得有意义的见解并向用户更好地描述数据。
草稿
- 描述性模型
- 无监督学习算法的主要类型包括 聚类算法和关联规则学习算法。
常用算法列表
- k-均值聚类、关联规则
半监督学习
在前两种类型中,要么数据集中的所有观察没有标签,要么所有观察都存在标签。半监督学习介于两者之间。在许多实际情况下,标记的成本相当高,因为它需要熟练的人类专家来做到这一点。因此,在大多数观察结果中缺乏标签但只有少数观察结果存在标签的情况下,半监督算法是模型构建的最佳候选者。这些方法利用了这样的想法:即使未标记数据的组成员身份未知,该数据也携带有关组参数的重要信息。
强化学习
该方法旨在利用从与环境的相互作用中收集的观察结果来采取行动,以最大化回报或最小化风险。强化学习算法(称为代理)以迭代方式不断从环境中学习。在此过程中,智能体从环境经验中学习,直到探索所有可能的状态。
右强化学习是一种 机器学习,因此也是一个分支 人工智能。它允许机器和软件代理自动确定特定上下文中的理想行为,以最大限度地提高其性能。代理需要简单的奖励反馈来学习其行为;这称为强化信号。
时间这里有许多不同的算法可以解决这个问题。事实上,强化学习是由特定类型的问题定义的,其所有解决方案都属于强化学习算法。在该问题中,智能体应该根据其当前状态决定最佳操作。当重复此步骤时,该问题称为 马尔可夫决策过程。
为了产生智能程序(也称为代理),强化学习要经历以下步骤:
- 输入状态由代理观察。
- 决策功能用于使代理执行某项操作。
- 执行动作后,代理会从环境中获得奖励或强化。
- 存储有关奖励的状态-动作对信息。
常用算法列表
- Q-学习
- 时间差 (TD)
- 深度对抗网络
用例:
的一些应用 强化学习算法 包括电脑棋盘游戏(国际象棋、围棋)、机械手和自动驾驶汽车。
最后的注释
可以使用不同的标准对机器学习算法的类型进行分类,但我认为使用学习任务非常适合可视化 ML 的大局,并且我相信根据您的问题和您手头的数据,您可以轻松决定是否要将使用监督学习、无监督学习或强化学习。在接下来的文章中,我将给出有关每种类型的机器学习算法的更多示例。
下面这张来自 en.proft.me 的图片可能会对您有所帮助。
进一步阅读
让我知道您对此的看法,如果您对您想在此处看到的主题有建议,请与我们联系。
最后一件事
如果您喜欢这些文章,请留下您的掌声👏推荐这篇文章,以便其他人可以看到。