机器学习算法分类
机器学习是计算机理论和计算电子学的未来。在过去十年中,机器学习、深度学习和人工智能的进步改变了计算能力的使用方式。将来,开发人员可能不会编写特定的用户定义程序。相反,他们将编造算法让计算机独立执行分配的任务。计算机、微控制器和专用处理器将不会运行预定义的软件/固件例程。相反,它们将成为观察、学习和自主完成有价值任务的实时机器。
机器学习和人工智能旨在使计算机和微控制器成为具有类似人类认知能力的自主机器。机器学习作为狭义的人工智能,现在被广泛应用于所有平台和应用程序,包括网络服务器、桌面应用程序、移动应用程序和嵌入式系统。
我们已经讨论过,要开始机器学习,需要选择一种编程语言。我们还讨论了每种编程语言在一个或另一个业务领域中也占主导地位。然而,编程语言的选择仍然无关紧要,因为无论选择何种编程语言或语言特定的工具、包或框架,机器学习问题和算法的概念仍然是基本的。Python 是初学者最友好的编程语言,可以帮助初学者开始使用机器学习和深度学习解决方案。Python 在语法上很简单,并且拥有经过时间考验的工具和框架来解决任何机器学习问题。Pythonic 机器学习甚至可以应用于运行在微型计算机和微控制器上的简单设备。
下一步是学习使用所选编程语言的工具、库和框架进行机器学习。这些工具和包通常与准备数据集、获取数据集(从传感器数据、在线数据流、CSV 文件或数据库)、清理数据(称为数据整理)、归纳和规范化数据集、数据可视化以及最终应用学习数据有关到机器学习模型,该模型可能遵循一种或多种机器学习算法。
在本文中,我们将讨论对各种机器学习算法进行分类,这样可以更轻松地选择特定算法或推导出适用于给定问题的算法列表。ML 算法的分类在任何方面都不是基础的。它是一种任意分类,经常随着新算法的发明和机器学习技术的进一步发展而改变。尽管如此,分类有助于广泛理解各种算法,并更清楚地了解它们对不同机器学习问题的适用性。
广泛分类机器学习算法最广泛的分类是基于机器学习技术完成的。这也可以作为算法的基本分类,因为几乎所有种类的算法本质上都属于以下四种机器学习技术之一。
监督学习
无监督学习
半监督学习
强化学习
在监督学习中,机器有望提供已知结果。训练数据已经提供了预定义的标签或结果。该算法必须识别引用预定义标签/结果的训练数据之间的匹配特征或共同特征。训练后,将相同的特征/属性与标签未知数据进行比较。
例如,可以为微型计算机提供温度、光照和湿度的传感器数据集。然后,可以对其进行建模以预测白天或黑夜或估计一天中的时间。在这种情况下,与典型的嵌入式程序例程相比,机器学习模型更有可能提出传感器故障和传感器变化,因为机器可以通过严格的监督学习过程自主处理错误的输入数据。经过全面的测试和验证过程后,模型被认为是可部署的
监督学习通常解决的两个最常见的学习问题是分类和回归。分类处理使用预定义标签标记输入数据。回归处理基于训练数据和已知结果之间的学习相关性来推导未知输入数据的结果。导出的结果是数值或结果。
一些属于监督学习的常见机器学习算法包括 K 最近邻、随机森林、逻辑回归、决策树和反向传播神经网络。
在无监督学习中,机器预计会产生未知的结果。机器暴露于未标记的原始数据样本,它必须推断出输入数据中存在的结构。这通常是通过提取相似性或去除冗余来在数学上完成的。机器学习的结果不是类别/标签或数字输出;相反,输出是通过对相似的数据样本进行分组或识别奇数样本来提供的。
通过无监督学习解决的一些常见问题是聚类、关联规则挖掘和降维。属于无监督学习的一些常见机器学习算法包括 K-均值聚类、Apriori 算法、KNN、层次聚类、奇异值分解、异常检测、主成分分析、神经网络和独立成分分析。
在半监督学习中,机器使用标记的数据集进行训练,然后暴露于未知数据样本,以推导属于同一类的数据之间的共同特征/关联。或者,机器首先在未标记的数据上进行训练以派生出自己的类别,然后通过提供标记的数据集来改进训练。在这两种情况下,机器都必须预测预期结果(类别或数值)以及推断输入数据中的固有模式。半监督学习也处理与监督学习相同的问题(即分类和回归),尽管半监督学习的结果有望更好。
属于半监督学习的一些常见机器学习算法包括连续性假设、生成模型、拉普拉斯正则化、聚类假设、启发式方法、低密度分离、离散正则化、标签传播、二次准则和流形假设。
在强化学习中,开发了一个称为代理的系统以在特定环境中进行交互,以便其执行某些任务的性能从交互中得到提高。代理从一组预定义的初始策略、规则或策略开始,然后暴露于特定环境以观察环境及其当前状态。基于对环境的感知,它选择最佳策略/策略并执行操作。为响应每个动作,代理会以奖励或惩罚的形式从环境中获得反馈。它使用惩罚/奖励来更新其策略/策略,并再次与环境交互以重复操作。
属于强化学习的一些常见机器学习算法包括 Q-Learning (State-Action-Reward-State)、SARSA (
State-Action-Reward-State-Action)、Lambda Q-Learning、Lambda SARSA、Deep Q Network , NAF (Normalized Advantage Functions), DDPG (Deep Determinant Policy Gradient), TD3 (Twin Delayed Deep Deterministic Policy Gradient), PPO (Proximal Policy Optimization), A3C (Asynchronous Advantage Actor-Critic Algorithm), SAC (Soft Actor Critic),和 TRPO(Trust Religion Policy Optimization)。
基于学习技术的 ML 算法分类可以根据它们的功能或相似性进行筛选,给出可用于特定学习问题的可能算法列表。为特定问题选择特定算法的其余部分取决于入围算法的内在细节和工作原理,以及开发人员自己对哪种算法最适合给定问题的判断。机器学习算法可以根据功能或相似性入围如下。
贝叶斯算法这些是专门应用贝叶斯定理解决监督学习问题(即分类或回归)的算法。属于这一类别的一些算法包括朴素贝叶斯、平均单相关估计器 (AODE)、高斯朴素贝叶斯、多项朴素贝叶斯、贝叶斯网络 (BN) 和贝叶斯信念网络 (BNN)。
回归算法的重点是根据输入数据导出数值输出。机器根据已知结果的数据进行训练。训练完成后,机器会尝试通过冗余测量结果预测中的错误来改善结果。回归基本上是一个机器学习问题和统计方法,也是一种算法。属于此类的一些算法包括线性回归、逐步回归、逻辑回归、普通最小二乘回归、局部估计散点图平滑 (LOSS) 和多元自适应回归样条 (MARS)。
基于实例的算法通常用于解决分类问题。样本训练数据存储在数据库中,通过使用各种相似性度量,将输入数据样本与存储的实例进行比较。当存储的实例被标记时,那些与给定实例最匹配的实例被分配到与输入数据样本相同的类。这也称为基于记忆的学习。属于此类的一些算法包括 K 最近邻 (KNN)、自组织映射 (SOM)、学习向量量化 (LVQ)、支持向量机 (SVM) 和局部加权学习 (LWL)。
正则化算法类似于回归算法,尽管它们有根据模型的复杂性对模型进行惩罚的规定。这样的算法在概括结果方面非常出色。属于此类的一些常见算法包括最小绝对收缩和选择算子 (LASSO)、最小角度回归 (LARS)、岭回归和弹性网络。
在决策树算法中,匹配输入数据的特定和明确定义的属性以最终得出决策。这些算法非常快速且高度准确,因为决策是根据明确定义的参数逐步做出的。这些算法用于机器人分类和回归问题。属于此类的一些常见算法包括决策树桩、条件决策树、分类和回归树 (CART)、M5、C4.5、C5.0、迭代二分法 3 (ID3) 和卡方自动交互检测(柴德)。
聚类算法通常旨在解决分类问题。然而,这些算法经过调整以处理未标记的数据。他们专注于提取数据样本的固有模式,并将数据样本分组到不同的类中。属于此类的一些常见算法包括 K-Means、K-Medians、层次聚类和期望最大化 (EM)。
降维算法类似于聚类算法。不同之处在于这些算法不会尝试在不同的标签下对数据进行分类。相反,这些算法专注于探索内在模式,以简化和总结数据点。这些算法用于解决分类和回归问题。属于此类的一些常见算法包括 Sammon 映射、主成分分析 (PCA)、主成分回归 (PCR)、投影追踪、偏最小二乘回归 (PLSR)、多维缩放、线性判别分析 (LDA)、二次方判别分析 (QDA)、混合判别分析 (MDA) 和灵活判别分析 (FDA)。
这些算法侧重于推导控制数据变量之间关系的规则。最流行的关联规则学习算法是 Eclat 算法和 Apriori 算法。
这些算法基于人工神经网络 (ANN) 的使用,用于解决分类和回归问题。人工神经网络是由多层组成的数据结构,其中包括输入层、输出层和一个或多个隐藏层。隐藏层操纵输入数据以导出数据样本的有用表示。在多个隐藏层中调整表示,直到在输入数据和输出值之间建立适当的关联。基本的 ANN 算法包括感知器、反向传播、Hopfield 网络、多层感知器、随机梯度下降和径向基函数网络。实际上,有数百种这样的算法。ANN 的灵感来自于生物神经网络的功能,并且具有相似的结构。
深度学习算法也使用人工神经网络;但是,它们不同于传统的基于 ANN 的算法。深度学习算法经过调整以执行大量简单计算。这些算法通常处理模拟数据,例如图像、视频、文本和传感器值。一些流行的深度学习算法包括卷积神经网络 (CNN)、递归神经网络 (RNN)、深度信念网络 (DBN)、长短期记忆网络 (LSTM)、深度玻尔兹曼机 (DBM) 和堆叠自动编码器。
在这些算法中,多个模型被独立训练,并将它们的结果组合起来得出最终结果。它们非常强大,因为多个模型被仔细组合以最大限度地提高整体准确性和性能。属于此类别的一些算法包括随机 Forrest、梯度提升机 (GBM)、加权平均混合、自举聚合或装袋、梯度提升回归树 (GBRT)、堆叠、AdaBoost 和提升。
有数百种算法可用,选择一种机器学习算法来解决给定问题可能是一项艰巨的任务。通过首先了解机器学习的性质或机器学习技术,选择变得更简单。可以通过列出所需功能或任务的算法来进一步细化对适当算法的搜索。从那里开始,必须考虑适用性、优点、缺点和可用资源以选择正确的算法。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。