解开神秘的面纱,人工智能算法到底是什么
许多同学问我关于算法的问题。事实上,只要banco出生,他就应该在开发或面试中被询问。例如,排序是算法之一。让我向你解释什么是算法,什么是人工智能算法。今天就来解开神秘的面纱。算法到底是什么?算法是对问题解决方案的准确和完整的描述,也是解决问题的一系列清晰的指令。该算法是描述解决问题的策略机制的系统方法。换句话说,对于特定的标准输入,可以在有限的时间内获得所需的输出。如果一个算法有缺陷或不适合某个问题,执行该算法不会解决问题。不同的算法可能使用不同的时间、空间或效率来完成相同的任务。算法的优缺点可以通过空间复杂度和时间复杂度来衡量。谈到算法,你可能会想到程序。在计算机出现的早期,我们试图将人类知识,如计算,输入计算机,然后通过程序解决问题,我们通常称之为算法。我们可以说现在是计算机时代,神经网络算法已经全面改变了我们的生活。该算法首先表达人类逻辑,通常可以用数学公式或某种符号语言来表达。然后我们通过晶体管的精确操作来表达这种逻辑,然后帮助人类工作。
为了准确理解算法是什么,一个非常典型的例子,排序是一个非常经典的算法。数字以混乱的方式堆积起来。我们必须把它们从大到小排列。然后,我们将指定一个过程,让这个数据串进来,然后整齐地从大到小,这是一个算法。我们能做什么?有无数种方法。最简单的方法是将每个数据从左到右与相邻的数据进行比较。每次遇到比自己大的数据时,都会向右移动一个网格。当你遇到比你小的数据时,你不会移动。然后您继续比较较小的数据,最小的数据最终会下沉。然后你处理剩余的数据并来回循环,你就可以从小到大成长。当然,我们可以发明无数的过程来实现这一点,比如插入方法、堆排序等等。但在所有条件都相同的情况下,这是一个可以自动实现的过程,每个步骤都按照一定的规则进行,以获得所需的结果。我们可以看到,算法自动化了人类的逻辑过程。原理几乎相同,可以说是一个简单的气泡算法,目前许多人工智能算法框架都使用了这一原理。此外,该算法不一定是程序。通过给定的规则和自动化过程,可以获得结果。只要是这种情况,不管有没有电脑都可以被视为一种算法。例如,生物进化可以被视为一种巨大的遗传进化算法。起初有一堆原始细胞。然后你指定一个过程,在这个过程中细胞可以通过遗传产生相同的新细胞。这个过程会有错误和突变。然后自然环境可以选择有利的突变。只要有足够的迭代,这个算法的结果就是所有复杂的生命类型。感兴趣的老铁可以阅读我的文章(如果女娲创造人类是真的,那么我们在训练人工智能模型时会重复这个过程吗?一些社会现象,如自由市场对经济的调控,也可以被视为算法。你可以回去自己想想。人工智能的生活是可以预测的,但是还有很长的路要走。我一直说未来是人工智能的时代,但是离我们多远是一个容易忽视的问题,或者是一个媒体或一些组织可以避免的问题。通用人工智能是未来发展的主流。没问题,但没人能保证需要多长时间。事实上,我们仍处于“oinai”的早期。然而,从目前的研究方向和认知来看,我们可以预见未来的一些生活场景。工厂都由机器人操作,任何高风险的位置都被机器人取代。我们只需要通过程序来控制这些机器人,并且每天用很短的时间工作来休息和享受。下班后躺在车里,一时间自动驾驶技术又成熟了,通过定位自动到你想去的任何地方。随着智能家居的普及,日本女性的智能管家在你到家的那一刻欢迎你回家,询问你是想洗澡还是吃饭,然后通过智能控制自动控制家用电器的运行。你所需要做的就是躺下来享受它带给你的服务。同时,智能手镯会通过你的血流速度和心跳来评估你的身体状况,甚至预测你的隐患会给你带来多长时间的疾病,并根据分析消除这些隐患。如果您有互联网问题,也可以咨询我,谢谢!如果你也想一起学习人工智能,欢迎留言交流。
人工智能常见算法简介
人工智能的三大基石—算法、数据和计算能力,算法作为其中之一,是非常重要的,那么人工智能都会涉及哪些算法呢?不同算法适用于哪些场景呢?
一、按照模型训练方式不同可以分为监督学习(SupervisedLearning),无监督学习(UnsupervisedLearning)、半监督学习(Semi-supervisedLearning)和强化学习(ReinforcementLearning)四大类。
常见的监督学习算法包含以下几类:(1)人工神经网络(ArtificialNeuralNetwork)类:反向传播(Backpropagation)、波尔兹曼机(BoltzmannMachine)、卷积神经网络(ConvolutionalNeuralNetwork)、Hopfield网络(hopfieldNetwork)、多层感知器(MultilyerPerceptron)、径向基函数网络(RadialBasisFunctionNetwork,RBFN)、受限波尔兹曼机(RestrictedBoltzmannMachine)、回归神经网络(RecurrentNeuralNetwork,RNN)、自组织映射(Self-organizingMap,SOM)、尖峰神经网络(SpikingNeuralNetwork)等。(2)贝叶斯类(Bayesin):朴素贝叶斯(NaiveBayes)、高斯贝叶斯(GaussianNaiveBayes)、多项朴素贝叶斯(MultinomialNaiveBayes)、平均-依赖性评估(AveragedOne-DependenceEstimators,AODE)贝叶斯信念网络(BayesianBeliefNetwork,BBN)、贝叶斯网络(BayesianNetwork,BN)等。(3)决策树(DecisionTree)类:分类和回归树(ClassificationandRegressionTree,CART)、迭代Dichotomiser3(IterativeDichotomiser3,ID3),C4.5算法(C4.5Algorithm)、C5.0算法(C5.0Algorithm)、卡方自动交互检测(Chi-squaredAutomaticInteractionDetection,CHAID)、决策残端(DecisionStump)、ID3算法(ID3Algorithm)、随机森林(RandomForest)、SLIQ(SupervisedLearninginQuest)等。(4)线性分类器(LinearClassifier)类:Fisher的线性判别(Fisher’sLinearDiscriminant)线性回归(LinearRegression)、逻辑回归(LogisticRegression)、多项逻辑回归(MultionmialLogisticRegression)、朴素贝叶斯分类器(NaiveBayesClassifier)、感知(Perception)、支持向量机(SupportVectorMachine)等。
常见的无监督学习类算法包括:(1)人工神经网络(ArtificialNeuralNetwork)类:生成对抗网络(GenerativeAdversarialNetworks,GAN),前馈神经网络(FeedforwardNeuralNetwork)、逻辑学习机(LogicLearningMachine)、自组织映射(Self-organizingMap)等。(2)关联规则学习(AssociationRuleLearning)类:先验算法(AprioriAlgorithm)、Eclat算法(EclatAlgorithm)、FP-Growth算法等。(3)分层聚类算法(HierarchicalClustering):单连锁聚类(Single-linkageClustering),概念聚类(ConceptualClustering)等。(4)聚类分析(Clusteranalysis):BIRCH算法、DBSCAN算法,期望最大化(Expectation-maximization,EM)、模糊聚类(FuzzyClustering)、K-means算法、K均值聚类(K-meansClustering)、K-medians聚类、均值漂移算法(Mean-shift)、OPTICS算法等。(5)异常检测(Anomalydetection)类:K最邻近(K-nearestNeighbor,KNN)算法,局部异常因子算法(LocalOutlierFactor,LOF)等。
常见的半监督学习类算法包含:生成模型(GenerativeModels)、低密度分离(Low-densitySeparation)、基于图形的方法(Graph-basedMethods)、联合训练(Co-training)等。
常见的强化学习类算法包含:Q学习(Q-learning)、状态-行动-奖励-状态-行动(State-Action-Reward-State-Action,SARSA)、DQN(DeepQNetwork)、策略梯度算法(PolicyGradients)、基于模型强化学习(ModelBasedRL)、时序差分学习(TemporalDifferentLearning)等。
常见的深度学习类算法包含:深度信念网络(DeepBeliefMachines)、深度卷积神经网络(DeepConvolutionalNeuralNetworks)、深度递归神经网络(DeepRecurrentNeuralNetwork)、分层时间记忆(HierarchicalTemporalMemory,HTM)、深度波尔兹曼机(DeepBoltzmannMachine,DBM)、栈式自动编码器(StackedAutoencoder)、生成对抗网络(GenerativeAdversarialNetworks)等。
二、按照解决任务的不同来分类,粗略可以分为二分类算法(Two-classClassification)、多分类算法(Multi-classClassification)、回归算法(Regression)、聚类算法(Clustering)和异常检测(AnomalyDetection)五种。1.二分类(Two-classClassification)(1)二分类支持向量机(Two-classSVM):适用于数据特征较多、线性模型的场景。(2)二分类平均感知器(Two-classAveragePerceptron):适用于训练时间短、线性模型的场景。(3)二分类逻辑回归(Two-classLogisticRegression):适用于训练时间短、线性模型的场景。(4)二分类贝叶斯点机(Two-classBayesPointMachine):适用于训练时间短、线性模型的场景。(5)二分类决策森林(Two-classDecisionForest):适用于训练时间短、精准的场景。(6)二分类提升决策树(Two-classBoostedDecisionTree):适用于训练时间短、精准度高、内存占用量大的场景(7)二分类决策丛林(Two-classDecisionJungle):适用于训练时间短、精确度高、内存占用量小的场景。(8)二分类局部深度支持向量机(Two-classLocallyDeepSVM):适用于数据特征较多的场景。(9)二分类神经网络(Two-classNeuralNetwork):适用于精准度高、训练时间较长的场景。
解决多分类问题通常适用三种解决方案:第一种,从数据集和适用方法入手,利用二分类器解决多分类问题;第二种,直接使用具备多分类能力的多分类器;第三种,将二分类器改进成为多分类器今儿解决多分类问题。常用的算法:(1)多分类逻辑回归(MulticlassLogisticRegression):适用训练时间短、线性模型的场景。(2)多分类神经网络(MulticlassNeuralNetwork):适用于精准度高、训练时间较长的场景。(3)多分类决策森林(MulticlassDecisionForest):适用于精准度高,训练时间短的场景。(4)多分类决策丛林(MulticlassDecisionJungle):适用于精准度高,内存占用较小的场景。(5)“一对多”多分类(One-vs-allMulticlass):取决于二分类器效果。
回归回归问题通常被用来预测具体的数值而非分类。除了返回的结果不同,其他方法与分类问题类似。我们将定量输出,或者连续变量预测称为回归;将定性输出,或者离散变量预测称为分类。长巾的算法有:(1)排序回归(OrdinalRegression):适用于对数据进行分类排序的场景。(2)泊松回归(PoissionRegression):适用于预测事件次数的场景。(3)快速森林分位数回归(FastForestQuantileRegression):适用于预测分布的场景。(4)线性回归(LinearRegression):适用于训练时间短、线性模型的场景。(5)贝叶斯线性回归(BayesianLinearRegression):适用于线性模型,训练数据量较少的场景。(6)神经网络回归(NeuralNetworkRegression):适用于精准度高、训练时间较长的场景。(7)决策森林回归(DecisionForestRegression):适用于精准度高、训练时间短的场景。(8)提升决策树回归(BoostedDecisionTreeRegression):适用于精确度高、训练时间短、内存占用较大的场景。
聚类聚类的目标是发现数据的潜在规律和结构。聚类通常被用做描述和衡量不同数据源间的相似性,并把数据源分类到不同的簇中。(1)层次聚类(HierarchicalClustering):适用于训练时间短、大数据量的场景。(2)K-means算法:适用于精准度高、训练时间短的场景。(3)模糊聚类FCM算法(FuzzyC-means,FCM):适用于精确度高、训练时间短的场景。(4)SOM神经网络(Self-organizingFeatureMap,SOM):适用于运行时间较长的场景。异常检测异常检测是指对数据中存在的不正常或非典型的分体进行检测和标志,有时也称为偏差检测。异常检测看起来和监督学习问题非常相似,都是分类问题。都是对样本的标签进行预测和判断,但是实际上两者的区别非常大,因为异常检测中的正样本(异常点)非常小。常用的算法有:(1)一分类支持向量机(One-classSVM):适用于数据特征较多的场景。(2)基于PCA的异常检测(PCA-basedAnomalyDetection):适用于训练时间短的场景。
常见的迁移学习类算法包含:归纳式迁移学习(InductiveTransferLearning)、直推式迁移学习(TransductiveTransferLearning)、无监督式迁移学习(UnsupervisedTransferLearning)、传递式迁移学习(TransitiveTransferLearning)等。
算法的适用场景:需要考虑的因素有:(1)数据量的大小、数据质量和数据本身的特点(2)机器学习要解决的具体业务场景中问题的本质是什么?(3)可以接受的计算时间是什么?(4)算法精度要求有多高?
有了算法,有了被训练的数据(经过预处理过的数据),那么多次训练(考验计算能力的时候到了)后,经过模型评估和算法人员调参后,会获得训练模型。当新的数据输入后,那么我们的训练模型就会给出结果。业务要求的最基础的功能就算实现了。
互联网产品自动化运维是趋势,因为互联网需要快速响应的特性,决定了我们对问题要快速响应、快速修复。人工智能产品也不例外。AI+自动化运维是如何工作的呢?
参考:《人工智能产品经理–AI时代PM修炼手册》作者:张竞宇