一文了解目前最火爆的人工智能算法

我们每个人都正在经历人工智能对世界经济产生的巨大影响,我们也相信这一影响将继续持续下去。因为我们每天都在产生大规模的数据来帮助它增长。

这一切都归功于人工智能算法的进步,我们才能处理如此庞大的数据。在这篇博文中,你将了解不同的人工智能算法,以及它们如何被用来解决现实世界的问题。

以下是本文将涉及的主题:

  • 什么是人工智能?
  • 什么是机器学习?
  • 机器学习的类型
  • 使用人工智能算法解决的问题类型
  • 人工智能算法
    • 分类算法
    • 回归算法
    • 聚类算法
    • 集成学习算法

什么是人工智能?

简单地说,人工智能是一门让机器像人类一样思考和做决定的学科。

自从复杂的人工智能算法发展以来,它已经能够通过创造机器和机器人来实现这一点,这些机器和机器人应用于广泛的领域,包括农业、医疗保健、机器人、营销、商业分析等。

在我们进一步讨论之前,让我们先试着理解什么是机器学习,以及它与人工智能有什么关系。

什么是机器学习?

在计算机领域,算法通常指的是接受一些输入,并使用数学和逻辑产生输出的函数,在这里,输出的结果是算法的目标。而人工智能算法是根据输入和输出的关联性,去寻找“函数”,函数是它最终的目标。

这个让机器从数据中学习的过程就是我们所说的机器学习。

Artificial-Intelligence-Algorithm-Artificial-Intelligence

机器学习是人工智能的一个子领域,我们试图通过学习输入数据来引入人工智能。

机器学习的类型

机器学习可以通过以下方式完成:

  • 监督式学习
  • 无监督学习
  • 强化学习
  • 集成学习

让我们简单了解一下每种机器学习背后的思想。

什么是监督学习?

监督学习中,顾名思义,它包括让算法学习数据,同时为数据提供正确答案或标签。这本质上意味着要预测的类或值从一开始就为算法已知并定义良好。

什么是无监督学习?

另一类属于无监督学习(Unsupervised Learning),与有监督的方法不同,算法没有正确的答案或根本没有任何答案,它取决于算法的判断,将相似的数据聚集在一起并理解它。

什么是强化学习?

除了这两个突出的类,我们还有第三类,叫做强化学习。就像孩子们通常通过在做对的事情时奖励他们或在做错的事情时惩罚他们来“强化”某些想法和原则一样,在强化学习中,每一个正确的预测都会给算法奖励,从而提高准确率。

什么是集成学习?

虽然以上三个类全面地涵盖了大多数字段,但我们有时仍然会遇到必须提高模型性能的问题。在这种情况下,使用集成方法(稍后解释)来提高精度可能是有意义的。

现在让我们了解人工智能算法如何被用来解决不同类型的问题。

使用人工智能算法解决的问题类型

从本质上讲,每种类别的算法在给定未知输入的情况下执行相同的预测输出任务,然而,在选择正确的算法时,数据是关键驱动因素。

下面是机器学习问题的分类大纲和简要概述:

  • 分类
  • 回归
  • 聚类

下面的表格有效地区分了这些问题的每一类。

使用 AI 解决的问题类型 – 人工智能算法 – Python技术站

对于每一类任务,我们可以使用特定的算法。在下面的小节中,您将了解如何使用一类算法作为复杂问题的解决方案。

人工智能算法

如前所述,不同的人工智能算法可以用来解决一类问题。在下一节中,我们将看到分类、回归和聚类问题下的不同类型的算法。

分类算法

分类,顾名思义就是将因变量(我们试图预测的那个变量)划分为类,然后为给定的输入预测一个类的行为。它属于监督机器学习的范畴,首先数据集需要有类。
因此,当我们需要从一组固定的、预定义的结果中预测结果时,分类就会在任何地方发挥作用。

分类使用了一系列算法,下面列出了其中的一些:

  • 朴素贝叶斯
  • 决策树
  • 随机森林
  • 逻辑回归
  • 支持向量机
  • K近邻算法

让我们把它们分解一下,看看它们在应用中适合什么位置。

朴素贝叶斯

朴素贝叶斯算法遵循贝叶斯定理,不像这个列表中的所有其他算法,遵循概率方法。这本质上意味着,算法不是直接跳到数据中,而是为目标的每个类设置了一组先验概率。

一旦输入数据,算法就会更新这些先验概率,形成所谓的后验概率。
因此,在需要预测输入是否属于给定的n个类列表或不属于其中任何一个类的情况下,这是非常有用的。这可以使用概率方法实现,主要是因为所有n个类抛出的概率都相当低。

让我们试着用一个例子来理解这一点,一个人在打高尔夫球,这取决于外界的天气等因素。

  • 我们首先尝试生成特定事件发生的频率,在这种情况下,我们试图找到打高尔夫球的人的频率,如果外面是晴天,雨天等等。

朴素贝叶斯 - 人工智能算法 - Python技术站

  • 使用这些频率,我们生成先验或初始概率(例如,阴天的概率是0.29,而播放的一般概率是0.64)。

  • 接下来,我们生成后验概率,我们试着回答诸如"外面是晴天,那个人去打高尔夫球的概率是多少? "

我们用贝叶斯公式,

P(Yes | Sunny) = P( Sunny | Yes) * P(Yes) / P (Sunny)
P (Sunny |Yes) = 3/9 = 0.33, P(Sunny) = 5/14 = 0.36, P( Yes)= 9/14 = 0.64

决策树

决策树本质上可以总结为类似流程图的树结构,其中每个外部节点表示对属性的测试,每个分支表示该测试的结果。叶节点包含实际预测的标签。我们从树的根开始,一直比较属性值,直到到达叶节点。

决策树—人工智能算法—Python技术站

我们在处理高维数据和在数据准备方面花费很少时间时使用这个分类器。然而,需要注意的是,它们往往会过拟合,而且即使训练数据中有细微的差别,它们也容易发生巨大的变化。

随机森林

可以把它想象成一个决策树集合,每个决策树都有一个数据属性的子集,并在这个子集的基础上进行预测。考虑了所有决策树的投票平均值,给出了答案。

使用随机森林的一个优点是,它缓解了在独立决策树中存在的过拟合问题,导致了一个更加健壮和准确的分类器。

随机森林 - 人工智能算法 -  Python技术站

正如我们在上图中看到的,我们有5棵决策树试图对一种颜色进行分类。这5棵决策树中的3棵预测蓝色,两棵有不同的输出,即绿色和红色。在本例中,我们取所有输出的平均值,将蓝色作为最高权重。

逻辑回归

这是一种主要用于二元分类任务的首选方法。“逻辑”一词来自这种分类方法中使用的 logit 函数。逻辑函数,也称为 S 形函数,是一条 S 形曲线,它可以采用任何实数值并将其映射到 0 和 1 之间,但永远不会恰好在这些限制范围内。

逻辑回归—人工智能算法—Python技术站

让我们假设你的弟弟正在努力进入研究生院,你想预测他是否会被他梦想中的学校录取。因此,根据他的CGPA和过去的数据,您可以使用逻辑回归预测结果。

逻辑回归允许您分析一组变量并预测分类结果。因为这里我们需要预测他是否会被学校录取,这是一个分类问题,所以逻辑回归是比较理想的。

逻辑回归用于预测房屋价值、保险行业客户终身价值等。

支持向量机

从某种意义上说,支持向量机是独一无二的,因为它会尝试使用尽可能远的两个类之间的边距对数据进行排序。这称为最大边距分离。

这里要注意的另一件事是,SVM 在绘制超平面时仅考虑支持向量,这与为此目的使用整个数据集的线性回归不同。这使得支持向量机在数据为高维的情况下非常有用。

让我们试着用一个例子来理解这一点。在下图中,我们必须将数据点分为两个不同的类别(正方形和三角形)。

支持向量机——人工智能算法——Python技术站

因此,您首先绘制一个随机超平面,然后检查超平面与每个类中最近的数据点之间的距离。这些最接近超平面的数据点称为支持向量。这就是名称的来源,支持向量机。

超平面是基于这些支持向量绘制的,最优超平面与每个支持向量的距离最大。超平面和支持向量之间的距离称为边界

综上所述,SVM利用超平面对数据进行分类,使超平面与支持向量之间的距离最大。

K近邻算法

KNN 是一种非参数(这里的非参数只是一个花哨的术语,本质上意味着 KNN 不对底层数据分布做出任何假设),惰性学习算法(这里的惰性意味着“训练”阶段相当短) .

其目的是使用分成几个类别的一整串数据点来预测新样本点的分类。

以下几点概述了该算法的一般工作原理:

  • 指定一个正整数 N 以及一个新样本
  • 我们选择数据库中最接近新样本的 N 个条目
  • 我们找到这些条目的最常见分类
  • 这是我们给新样本的分类

但是,使用 KNN 也有一些缺点。这些缺点主要围绕着这样一个事实,即 KNN 致力于存储整个数据集并将新点与现有点进行比较。这意味着存储空间随着我们训练集的增加而增加。这也意味着估计时间的增加与训练点的数量成正比。

现在让我们了解如何使用回归算法来解决回归问题。

回归算法

在回归问题中,输出是一个连续的量。这意味着我们可以在目标变量是连续变量的情况下使用回归算法。它属于监督机器学习的范畴,首先数据集需要有标签。

线性回归

线性回归是最简单有效的回归算法。它被用来衡量真实的质量(房子的成本,电话的数量,所有的交易等等),鉴于一致的变量。在这里,我们通过拟合最佳直线来建立自由因子和病房因子之间的联系。这条最佳拟合线被称为回归线,用直接条件Y= a *X + b表示。

线性回归 - 人工智能算法 -  Python技术站

让我们在这里举一个简单的例子来理解线性回归。

考虑一下,您面临的挑战是仅通过观察来估计一个陌生人的体重。如果手头没有其他值,这可能看起来是一项相当困难的任务,但是根据您过去的经验,您知道一般来说,与相同身材的矮个子相比,身高越高的人越重。这实际上是线性回归!

但是,线性回归最适用于涉及少量维度的方法。此外,并非每个问题都是线性可分的。

线性回归的一些最流行的应用是金融投资组合预测、薪资预测、房地产预测和到达 ETA 的交通

现在让我们讨论如何使用 K 均值算法解决聚类问题。在此之前,让我们了解什么是聚类。

聚类算法

聚类背后的基本思想是根据特征相似性将输入分配到两个或多个集群中。它属于无监督机器学习类别,其中算法在没有任何指导(标记数据集)的情况下从数据中学习模式和有用的见解。

例如,可以使用 K-Means 聚类等无监督学习算法,根据兴趣、年龄、地理位置等将观众聚类到相似的组中。

K-均值聚类

K-means 可能是最简单的无监督学习方法。这里的想法是将相似的数据点聚集在一起,并以集群的形式将它们绑定在一起。它通过计算数据点组的质心来实现。

为了进行有效的聚类,k-均值 评估每个点与聚类质心之间的距离。根据数据点和质心之间的距离,数据被分配到最近的集群。聚类的目标是确定一组未标记数据中的内在分组。

K-均值 – 人工智能算法 – Python技术站

K-means 中的“K”代表形成的簇数。集群的数量(基本上是您的新数据实例可以归入的类的数量)由用户决定。

K-means 主要用于数据集具有不同且彼此分离良好的点的情况,否则,聚类不会相距很远,从而导致它们不准确。此外,在数据集包含大量异常值或数据集是非线性的情况下,应避免使用 K-means。

集成学习算法

集成学习算法
在数据丰富且预测精度很重要的情况下,增强算法就会出现。

考虑这种情况,您有一个在数据集上训练的决策树以及已经执行的一大堆超参数调整,但是,最终的准确性仍然比您想要的略有偏差。在这种情况下,虽然看起来你已经没有什么可以尝试的了,但集成学习可以帮上忙。

集成学习——人工智能算法——Python技术站

在这种情况下,您可以通过两种不同的方式使用集成学习来提高准确性。假设您的决策树在一组输入测试值上失败了,您现在要做的是训练一个新的决策树模型,并为您之前的模型所遇到的那些输入测试值赋予更高的权重。这也称为Boosting,其中我们的初始树可以正式表述为弱学习器,该模型引起的错误为更好更强的模型铺平了道路。

解决这个问题的另一种方法是一次简单地训练一大堆树(这可以相当快地以并行方式完成),然后从每棵树中获取输出并将它们取平均。所以这样,如果在训练 10 棵树之后,假设 6 棵树对输入回复肯定,而 4 棵树回复否定,那么您认为的输出是积极的。这正式称为Bagging。

它们用于减少监督学习技术中的偏差和方差。有许多可用的增强算法,下面讨论其中的一些:

梯度提升

梯度提升是一种提升算法,当我们处理大量数据以进行具有高预测能力的预测时使用。它结合了多个弱预测器或平均预测器来构建强预测器。这些增强算法被大量用于改进数据科学竞赛中的模型。

在这里,我们考虑一个“最优”或最佳模型,因此本质上我们的模型与那个“最优”模型有一定距离。我们现在要做的是,使用梯度数学并尝试使我们的模型更接近最佳空间。

XGBoost

由于其极高的预测能力,XGBoost 是提高准确性的首选算法之一,因为它同时包含线性和树学习算法,使其比大多数提升技术快 10 倍。

它是黑客马拉松的圣杯算法,难怪 CERN 在模型中使用它对大型强子对撞机的信号进行分类。

至此,我们的人工智能算法博客就结束了。如果您想了解有关人工智能的更多信息,可以阅读这些博客:

  1. 深入理解什么是人工智能,以及它能解决什么问题
  2. 人工智能导论:关于人工智能你需要知道的一切
  3. 人工智能的3大发展阶段和类别!
  4. 人工智能、机器学习、深度学习有什么区别?

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文了解目前最火爆的人工智能算法 - Python技术站

(0)
上一篇 2022年11月22日 下午9:41
下一篇 2022年11月29日 下午9:11

相关文章

  • Pytorch设立计算图并自动计算

    本博文参考七月在线pytorch课程1.numpy和pytorch实现梯度下降法 使用numpy实现简单神经网络 import numpy as np N, D_in, H, D_out = 64, 1000, 100, 10 # 随机创建一些训练数据 x = np.random.randn(N, D_in) y = np.random.randn(N, D…

    PyTorch 2023年4月8日
    00
  • Tensorflow-gpu搭建CUDA 10.0与cuDNN等版本问题

    首先看一下CUDA版本与linux下所用显卡驱动版本的关系和windows下所用显卡驱动的版本 ,参考如下:https://blog.csdn.net/weixin_42718092/article/details/86016973这篇文章列出的是官网给出的对应版本关系。 自己这两天一直在搭建Tensorflow-gpu这样一个环境。tensorflow-g…

    tensorflow 2023年4月8日
    00
  • TensorFlow for python学习使用

    TensorFlow 是由 Google Brain 团队为深度神经网络(DNN)开发的功能强大的开源软件库。当前流行的深度学习框架,从中能够清楚地看到 TensorFlow 的领先地位:   二、Ubuntu16.04下安装tensorFlow pip3 install tensorflow   参考文章: ubuntu16.04下安装&配置ana…

    2023年4月8日
    00
  • 源码编译安装pytorch debug版本

    根据官网指示安装 pytorch安装指南:https://github.com/pytorch/pytorch conda 安装对应的包: https://anaconda.org/anaconda/ (这个网站可以搜索包的源) 如果按照官网提供的export cmake_path方式不成功,推荐在~/.bashrc中添加cmake的路径 eg:export…

    PyTorch 2023年4月8日
    00
  • tensorflow softmax_cross_entropy_with_logits函数

    1、softmax_cross_entropy_with_logits tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 解释:这个函数的作用是计算 logits 经 softmax 函数激活之后的交叉熵。 对于每个独立的分类任务,这个函数是去度量概率误差。比如,在 CIFA…

    2023年4月5日
    00
  • TensorFlow 在android上的Demo(1)

    转载时请注明出处: 修雨轩陈 系统环境说明: ———————————— 操作系统 : ubunt 14.03 _ x86_64 操作系统 内存: 8GB 硬盘 500G ———————————— 一、编译TensorFlow在android上的Demo 1.1 搭…

    2023年4月8日
    00
  • 用纯Python实现循环神经网络RNN向前传播过程(吴恩达DeepLearning.ai作业)

    Google TensorFlow程序员点赞的文章!   前言 目录:     – 向量表示以及它的维度     – rnn cell     – rnn 向前传播   重点关注:     – 如何把数据向量化的,它们的维度是怎么来的     – 一共其实就是两步: 单个单元的rnn计算,拉通来的rnn计算 ​ 在看本文前,可以先看看这篇文章回忆一下: 吴恩…

    2023年4月8日
    00
  • Faster R-CNN – 目标检测详解

    转载自:https://blog.csdn.net/zziahgf/article/details/79311275 原文:目标检测 – Faster R-CNN 详解[译] – AIUAI 原文: Faster R-CNN: Down the rabbit hole of modern object detection – 2018.01.18作者:Jav…

    2023年4月8日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

评论列表(1条)

合作推广
合作推广
分享本页
返回顶部