博舍

人工智能常见算法简介 简述各种人工智能算法的特点及应用场合

人工智能常见算法简介

人工智能的三大基石—算法、数据和计算能力,算法作为其中之一,是非常重要的,那么人工智能都会涉及哪些算法呢?不同算法适用于哪些场景呢?

一、按照模型训练方式不同可以分为监督学习(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修炼手册》作者:张竞宇

人工智能的历史、现状和未来

如同蒸汽时代的蒸汽机、电气时代的发电机、信息时代的计算机和互联网,人工智能正成为推动人类进入智能时代的决定性力量。全球产业界充分认识到人工智能技术引领新一轮产业变革的重大意义,纷纷转型发展,抢滩布局人工智能创新生态。世界主要发达国家均把发展人工智能作为提升国家竞争力、维护国家安全的重大战略,力图在国际科技竞争中掌握主导权。习近平总书记在十九届中央政治局第九次集体学习时深刻指出,加快发展新一代人工智能是事关我国能否抓住新一轮科技革命和产业变革机遇的战略问题。错失一个机遇,就有可能错过整整一个时代。新一轮科技革命与产业变革已曙光可见,在这场关乎前途命运的大赛场上,我们必须抢抓机遇、奋起直追、力争超越。

概念与历程

了解人工智能向何处去,首先要知道人工智能从何处来。1956年夏,麦卡锡、明斯基等科学家在美国达特茅斯学院开会研讨“如何用机器模拟人的智能”,首次提出“人工智能(ArtificialIntelligence,简称AI)”这一概念,标志着人工智能学科的诞生。

人工智能是研究开发能够模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的一门新的技术科学,研究目的是促使智能机器会听(语音识别、机器翻译等)、会看(图像识别、文字识别等)、会说(语音合成、人机对话等)、会思考(人机对弈、定理证明等)、会学习(机器学习、知识表示等)、会行动(机器人、自动驾驶汽车等)。

人工智能充满未知的探索道路曲折起伏。如何描述人工智能自1956年以来60余年的发展历程,学术界可谓仁者见仁、智者见智。我们将人工智能的发展历程划分为以下6个阶段:

一是起步发展期:1956年—20世纪60年代初。人工智能概念提出后,相继取得了一批令人瞩目的研究成果,如机器定理证明、跳棋程序等,掀起人工智能发展的第一个高潮。

二是反思发展期:20世纪60年代—70年代初。人工智能发展初期的突破性进展大大提升了人们对人工智能的期望,人们开始尝试更具挑战性的任务,并提出了一些不切实际的研发目标。然而,接二连三的失败和预期目标的落空(例如,无法用机器证明两个连续函数之和还是连续函数、机器翻译闹出笑话等),使人工智能的发展走入低谷。

三是应用发展期:20世纪70年代初—80年代中。20世纪70年代出现的专家系统模拟人类专家的知识和经验解决特定领域的问题,实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专门知识的重大突破。专家系统在医疗、化学、地质等领域取得成功,推动人工智能走入应用发展的新高潮。

四是低迷发展期:20世纪80年代中—90年代中。随着人工智能的应用规模不断扩大,专家系统存在的应用领域狭窄、缺乏常识性知识、知识获取困难、推理方法单一、缺乏分布式功能、难以与现有数据库兼容等问题逐渐暴露出来。

五是稳步发展期:20世纪90年代中—2010年。由于网络技术特别是互联网技术的发展,加速了人工智能的创新研究,促使人工智能技术进一步走向实用化。1997年国际商业机器公司(简称IBM)深蓝超级计算机战胜了国际象棋世界冠军卡斯帕罗夫,2008年IBM提出“智慧地球”的概念。以上都是这一时期的标志性事件。

六是蓬勃发展期:2011年至今。随着大数据、云计算、互联网、物联网等信息技术的发展,泛在感知数据和图形处理器等计算平台推动以深度神经网络为代表的人工智能技术飞速发展,大幅跨越了科学与应用之间的“技术鸿沟”,诸如图像分类、语音识别、知识问答、人机对弈、无人驾驶等人工智能技术实现了从“不能用、不好用”到“可以用”的技术突破,迎来爆发式增长的新高潮。

现状与影响

对于人工智能的发展现状,社会上存在一些“炒作”。比如说,认为人工智能系统的智能水平即将全面超越人类水平、30年内机器人将统治世界、人类将成为人工智能的奴隶,等等。这些有意无意的“炒作”和错误认识会给人工智能的发展带来不利影响。因此,制定人工智能发展的战略、方针和政策,首先要准确把握人工智能技术和产业发展的现状。

专用人工智能取得重要突破。从可应用性看,人工智能大体可分为专用人工智能和通用人工智能。面向特定任务(比如下围棋)的专用人工智能系统由于任务单一、需求明确、应用边界清晰、领域知识丰富、建模相对简单,形成了人工智能领域的单点突破,在局部智能水平的单项测试中可以超越人类智能。人工智能的近期进展主要集中在专用智能领域。例如,阿尔法狗(AlphaGo)在围棋比赛中战胜人类冠军,人工智能程序在大规模图像识别和人脸识别中达到了超越人类的水平,人工智能系统诊断皮肤癌达到专业医生水平。

通用人工智能尚处于起步阶段。人的大脑是一个通用的智能系统,能举一反三、融会贯通,可处理视觉、听觉、判断、推理、学习、思考、规划、设计等各类问题,可谓“一脑万用”。真正意义上完备的人工智能系统应该是一个通用的智能系统。目前,虽然专用人工智能领域已取得突破性进展,但是通用人工智能领域的研究与应用仍然任重而道远,人工智能总体发展水平仍处于起步阶段。当前的人工智能系统在信息感知、机器学习等“浅层智能”方面进步显著,但是在概念抽象和推理决策等“深层智能”方面的能力还很薄弱。总体上看,目前的人工智能系统可谓有智能没智慧、有智商没情商、会计算不会“算计”、有专才而无通才。因此,人工智能依旧存在明显的局限性,依然还有很多“不能”,与人类智慧还相差甚远。

人工智能创新创业如火如荼。全球产业界充分认识到人工智能技术引领新一轮产业变革的重大意义,纷纷调整发展战略。比如,谷歌在其2017年年度开发者大会上明确提出发展战略从“移动优先”转向“人工智能优先”,微软2017财年年报首次将人工智能作为公司发展愿景。人工智能领域处于创新创业的前沿。麦肯锡公司报告指出,2016年全球人工智能研发投入超300亿美元并处于高速增长阶段;全球知名风投调研机构CBInsights报告显示,2017年全球新成立人工智能创业公司1100家,人工智能领域共获得投资152亿美元,同比增长141%。

创新生态布局成为人工智能产业发展的战略高地。信息技术和产业的发展史,就是新老信息产业巨头抢滩布局信息产业创新生态的更替史。例如,传统信息产业代表企业有微软、英特尔、IBM、甲骨文等,互联网和移动互联网时代信息产业代表企业有谷歌、苹果、脸书、亚马逊、阿里巴巴、腾讯、百度等。人工智能创新生态包括纵向的数据平台、开源算法、计算芯片、基础软件、图形处理器等技术生态系统和横向的智能制造、智能医疗、智能安防、智能零售、智能家居等商业和应用生态系统。目前智能科技时代的信息产业格局还没有形成垄断,因此全球科技产业巨头都在积极推动人工智能技术生态的研发布局,全力抢占人工智能相关产业的制高点。

人工智能的社会影响日益凸显。一方面,人工智能作为新一轮科技革命和产业变革的核心力量,正在推动传统产业升级换代,驱动“无人经济”快速发展,在智能交通、智能家居、智能医疗等民生领域产生积极正面影响。另一方面,个人信息和隐私保护、人工智能创作内容的知识产权、人工智能系统可能存在的歧视和偏见、无人驾驶系统的交通法规、脑机接口和人机共生的科技伦理等问题已经显现出来,需要抓紧提供解决方案。

趋势与展望

经过60多年的发展,人工智能在算法、算力(计算能力)和算料(数据)等“三算”方面取得了重要突破,正处于从“不能用”到“可以用”的技术拐点,但是距离“很好用”还有诸多瓶颈。那么在可以预见的未来,人工智能发展将会出现怎样的趋势与特征呢?

从专用智能向通用智能发展。如何实现从专用人工智能向通用人工智能的跨越式发展,既是下一代人工智能发展的必然趋势,也是研究与应用领域的重大挑战。2016年10月,美国国家科学技术委员会发布《国家人工智能研究与发展战略计划》,提出在美国的人工智能中长期发展策略中要着重研究通用人工智能。阿尔法狗系统开发团队创始人戴密斯·哈萨比斯提出朝着“创造解决世界上一切问题的通用人工智能”这一目标前进。微软在2017年成立了通用人工智能实验室,众多感知、学习、推理、自然语言理解等方面的科学家参与其中。

从人工智能向人机混合智能发展。借鉴脑科学和认知科学的研究成果是人工智能的一个重要研究方向。人机混合智能旨在将人的作用或认知模型引入到人工智能系统中,提升人工智能系统的性能,使人工智能成为人类智能的自然延伸和拓展,通过人机协同更加高效地解决复杂问题。在我国新一代人工智能规划和美国脑计划中,人机混合智能都是重要的研发方向。

从“人工+智能”向自主智能系统发展。当前人工智能领域的大量研究集中在深度学习,但是深度学习的局限是需要大量人工干预,比如人工设计深度神经网络模型、人工设定应用场景、人工采集和标注大量训练数据、用户需要人工适配智能系统等,非常费时费力。因此,科研人员开始关注减少人工干预的自主智能方法,提高机器智能对环境的自主学习能力。例如阿尔法狗系统的后续版本阿尔法元从零开始,通过自我对弈强化学习实现围棋、国际象棋、日本将棋的“通用棋类人工智能”。在人工智能系统的自动化设计方面,2017年谷歌提出的自动化学习系统(AutoML)试图通过自动创建机器学习系统降低人员成本。

人工智能将加速与其他学科领域交叉渗透。人工智能本身是一门综合性的前沿学科和高度交叉的复合型学科,研究范畴广泛而又异常复杂,其发展需要与计算机科学、数学、认知科学、神经科学和社会科学等学科深度融合。随着超分辨率光学成像、光遗传学调控、透明脑、体细胞克隆等技术的突破,脑与认知科学的发展开启了新时代,能够大规模、更精细解析智力的神经环路基础和机制,人工智能将进入生物启发的智能阶段,依赖于生物学、脑科学、生命科学和心理学等学科的发现,将机理变为可计算的模型,同时人工智能也会促进脑科学、认知科学、生命科学甚至化学、物理、天文学等传统科学的发展。

人工智能产业将蓬勃发展。随着人工智能技术的进一步成熟以及政府和产业界投入的日益增长,人工智能应用的云端化将不断加速,全球人工智能产业规模在未来10年将进入高速增长期。例如,2016年9月,咨询公司埃森哲发布报告指出,人工智能技术的应用将为经济发展注入新动力,可在现有基础上将劳动生产率提高40%;到2035年,美、日、英、德、法等12个发达国家的年均经济增长率可以翻一番。2018年麦肯锡公司的研究报告预测,到2030年,约70%的公司将采用至少一种形式的人工智能,人工智能新增经济规模将达到13万亿美元。

人工智能将推动人类进入普惠型智能社会。“人工智能+X”的创新模式将随着技术和产业的发展日趋成熟,对生产力和产业结构产生革命性影响,并推动人类进入普惠型智能社会。2017年国际数据公司IDC在《信息流引领人工智能新时代》白皮书中指出,未来5年人工智能将提升各行业运转效率。我国经济社会转型升级对人工智能有重大需求,在消费场景和行业应用的需求牵引下,需要打破人工智能的感知瓶颈、交互瓶颈和决策瓶颈,促进人工智能技术与社会各行各业的融合提升,建设若干标杆性的应用场景创新,实现低成本、高效益、广范围的普惠型智能社会。

人工智能领域的国际竞争将日益激烈。当前,人工智能领域的国际竞赛已经拉开帷幕,并且将日趋白热化。2018年4月,欧盟委员会计划2018—2020年在人工智能领域投资240亿美元;法国总统在2018年5月宣布《法国人工智能战略》,目的是迎接人工智能发展的新时代,使法国成为人工智能强国;2018年6月,日本《未来投资战略2018》重点推动物联网建设和人工智能的应用。世界军事强国也已逐步形成以加速发展智能化武器装备为核心的竞争态势,例如美国特朗普政府发布的首份《国防战略》报告即谋求通过人工智能等技术创新保持军事优势,确保美国打赢未来战争;俄罗斯2017年提出军工拥抱“智能化”,让导弹和无人机这样的“传统”兵器威力倍增。

人工智能的社会学将提上议程。为了确保人工智能的健康可持续发展,使其发展成果造福于民,需要从社会学的角度系统全面地研究人工智能对人类社会的影响,制定完善人工智能法律法规,规避可能的风险。2017年9月,联合国犯罪和司法研究所(UNICRI)决定在海牙成立第一个联合国人工智能和机器人中心,规范人工智能的发展。美国白宫多次组织人工智能领域法律法规问题的研讨会、咨询会。特斯拉等产业巨头牵头成立OpenAI等机构,旨在“以有利于整个人类的方式促进和发展友好的人工智能”。

态势与思考

当前,我国人工智能发展的总体态势良好。但是我们也要清醒看到,我国人工智能发展存在过热和泡沫化风险,特别在基础研究、技术体系、应用生态、创新人才、法律规范等方面仍然存在不少值得重视的问题。总体而言,我国人工智能发展现状可以用“高度重视,态势喜人,差距不小,前景看好”来概括。

高度重视。党中央、国务院高度重视并大力支持发展人工智能。习近平总书记在党的十九大、2018年两院院士大会、全国网络安全和信息化工作会议、十九届中央政治局第九次集体学习等场合多次强调要加快推进新一代人工智能的发展。2017年7月,国务院发布《新一代人工智能发展规划》,将新一代人工智能放在国家战略层面进行部署,描绘了面向2030年的我国人工智能发展路线图,旨在构筑人工智能先发优势,把握新一轮科技革命战略主动。国家发改委、工信部、科技部、教育部等国家部委和北京、上海、广东、江苏、浙江等地方政府都推出了发展人工智能的鼓励政策。

态势喜人。据清华大学发布的《中国人工智能发展报告2018》统计,我国已成为全球人工智能投融资规模最大的国家,我国人工智能企业在人脸识别、语音识别、安防监控、智能音箱、智能家居等人工智能应用领域处于国际前列。根据2017年爱思唯尔文献数据库统计结果,我国在人工智能领域发表的论文数量已居世界第一。近两年,中国科学院大学、清华大学、北京大学等高校纷纷成立人工智能学院,2015年开始的中国人工智能大会已连续成功召开四届并且规模不断扩大。总体来说,我国人工智能领域的创新创业、教育科研活动非常活跃。

差距不小。目前我国在人工智能前沿理论创新方面总体上尚处于“跟跑”地位,大部分创新偏重于技术应用,在基础研究、原创成果、顶尖人才、技术生态、基础平台、标准规范等方面距离世界领先水平还存在明显差距。在全球人工智能人才700强中,中国虽然入选人数名列第二,但远远低于约占总量一半的美国。2018年市场研究顾问公司CompassIntelligence对全球100多家人工智能计算芯片企业进行了排名,我国没有一家企业进入前十。另外,我国人工智能开源社区和技术生态布局相对滞后,技术平台建设力度有待加强,国际影响力有待提高。我国参与制定人工智能国际标准的积极性和力度不够,国内标准制定和实施也较为滞后。我国对人工智能可能产生的社会影响还缺少深度分析,制定完善人工智能相关法律法规的进程需要加快。

前景看好。我国发展人工智能具有市场规模、应用场景、数据资源、人力资源、智能手机普及、资金投入、国家政策支持等多方面的综合优势,人工智能发展前景看好。全球顶尖管理咨询公司埃森哲于2017年发布的《人工智能:助力中国经济增长》报告显示,到2035年人工智能有望推动中国劳动生产率提高27%。我国发布的《新一代人工智能发展规划》提出,到2030年人工智能核心产业规模超过1万亿元,带动相关产业规模超过10万亿元。在我国未来的发展征程中,“智能红利”将有望弥补人口红利的不足。

当前是我国加强人工智能布局、收获人工智能红利、引领智能时代的重大历史机遇期,如何在人工智能蓬勃发展的浪潮中选择好中国路径、抢抓中国机遇、展现中国智慧等,需要深入思考。

树立理性务实的发展理念。任何事物的发展不可能一直处于高位,有高潮必有低谷,这是客观规律。实现机器在任意现实环境的自主智能和通用智能,仍然需要中长期理论和技术积累,并且人工智能对工业、交通、医疗等传统领域的渗透和融合是个长期过程,很难一蹴而就。因此,发展人工智能要充分考虑到人工智能技术的局限性,充分认识到人工智能重塑传统产业的长期性和艰巨性,理性分析人工智能发展需求,理性设定人工智能发展目标,理性选择人工智能发展路径,务实推进人工智能发展举措,只有这样才能确保人工智能健康可持续发展。

重视固本强基的原创研究。人工智能前沿基础理论是人工智能技术突破、行业革新、产业化推进的基石。面临发展的临界点,要想取得最终的话语权,必须在人工智能基础理论和前沿技术方面取得重大突破。我们要按照习近平总书记提出的支持科学家勇闯人工智能科技前沿“无人区”的要求,努力在人工智能发展方向和理论、方法、工具、系统等方面取得变革性、颠覆性突破,形成具有国际影响力的人工智能原创理论体系,为构建我国自主可控的人工智能技术创新生态提供领先跨越的理论支撑。

构建自主可控的创新生态。我国人工智能开源社区和技术创新生态布局相对滞后,技术平台建设力度有待加强。我们要以问题为导向,主攻关键核心技术,加快建立新一代人工智能关键共性技术体系,全面增强人工智能科技创新能力,确保人工智能关键核心技术牢牢掌握在自己手里。要着力防范人工智能时代“空心化”风险,系统布局并重点发展人工智能领域的“新核高基”:“新”指新型开放创新生态,如产学研融合等;“核”指核心关键技术与器件,如先进机器学习技术、鲁棒模式识别技术、低功耗智能计算芯片等;“高”指高端综合应用系统与平台,如机器学习软硬件平台、大型数据平台等;“基”指具有重大原创意义和技术带动性的基础理论与方法,如脑机接口、类脑智能等。同时,我们要重视人工智能技术标准的建设、产品性能与系统安全的测试。特别是我国在人工智能技术应用方面走在世界前列,在人工智能国际标准制定方面应当掌握话语权,并通过实施标准加速人工智能驱动经济社会转型升级的进程。

推动共担共享的全球治理。目前看,发达国家通过人工智能技术创新掌控了产业链上游资源,难以逾越的技术鸿沟和产业壁垒有可能进一步拉大发达国家和发展中国家的生产力发展水平差距。在发展中国家中,我国有望成为全球人工智能竞争中的领跑者,应布局构建开放共享、质优价廉、普惠全球的人工智能技术和应用平台,配合“一带一路”建设,让“智能红利”助推共建人类命运共同体。

(作者:中央人民政府驻香港特别行政区联络办公室副主任、中国科学院院士)

简述算法的定义和特点。

1.算法定义:算法是规则的有限集合,是为了解决特定问题而规定的一系列操作。2.算法特点(特性):(1)有限性(有穷性):每个步骤都能在有限时间完成的。(与数学中的有穷无穷性有点区别,比如一个算法20年完成,在数学定义中视为有限,但在计算机算法中有点不切实际视为无限)(2)确定性:对于每种情况下执行的操作,在算法中都有确定的规定,使算法的执行者或阅读者都能明确含义如何执行。(3)可行性:算法中所有操作必须足够基本都可以通过已经实现的资本操作运算有限次实现。(4)输入性:可以有零个输入,多个输入。(5)输出性:必须要有输出。

人工智能学习笔记:基本遗传算法及其改进算法

文章目录1引言2基本思想及发展历史3基本遗传算法详细步骤3.1编码3.2初始群体设定3.3设计适应度函数3.4遗传操作3.4.1选择3.4.2交叉3.4.3变异4基本遗传算法总结5遗传算法改进5.1双倍体遗传算法5.2双种群遗传算法5.3自适应遗传算法6参考文献1引言

  本次学习报告主要介绍基本遗传算法的详细过程以及三种遗传算法的改进算法,旨在回顾和整理这一学期习得的部分知识。在撰写报告的过程中,会在其中增加一些个人的思考,这些思考主要基于过去所学的知识,目的在于寻找知识与知识之间的联系。由于本人能力所限,如有不当之处,恳请读者指正并提出宝贵的意见。

2基本思想及发展历史

  遗传算法来源于达尔文进化论和群体遗传学,由美国的Holland教授于1975年首先提出。遗传算法既是经典的启发式算法,同时也是非确定性的拟自然算法,它为复杂系统的优化提供了一种新思路,对于诸多NP-Hard问题,遗传算法都有不错的表现。简而言之,我发现,遗传算法参考了生物遗传过程,并用于解决最优化的问题。实际上,这里的“生物遗传”就是高中生物所学的基因学问题。有趣的是,我们目前学到的某些算法均参考了生物学的相关知识,比如西瓜书第五章所介绍的BP神经网络。在链式法则和参数寻优过程中,连接权重w和阈值θ的计算对应正是我们高中所学的神经元部分知识,这可能也体现了跨学科思维。

图1神经元结构

  又比如我在看过赵军团队的《知识图谱》后,利用放缩的思想,发现整个知识图谱的构建过程,可能类似于学生做英语阅读理解的思维过程。在此举一个可能不太恰当的例子,我在阅读之前需要找定位词(命名实体识别),并且尽可能找到关键词之间的关系(关系抽取),之后在回到原文中找到相关段落句子,并根据一些表达情感的定语做适当的推理得到答案(知识推理),以此类推,当做完整篇文章之后,我也对这片文章的脉络有了一个初步的认知,并在脑中建立起对应的框架。

图2知识图谱生命周期

  说回遗传算法,它主要借用生物进化中“适者生存”的规律。在遗传算法中,染色体对应的是数据或数组,通常是由一维的串结构数据来表示的。遗传算法处理的是染色体,或者称为基因型个体。一定数量的个体组成了群体。群体中个体的数量称为种群的大小,也叫种群的规模。各个个体对环境的适应程度叫适应度。适应度大的个体被选择进行遗传操作产生新个体,体现了生物遗传中适者生存的原理。选择两个染色体进行交叉产生一组新的染色体的过程,类似生物遗传中的婚配。编码的某一个分量发生变化的过程,类似于生物遗传中的变异。  遗传算法包含两个数据转换操作,一个是从表现型到基因型的转换,将搜索空间中的参数或解转换成遗传空间中的染色体或个体,这个过程称为编码。另一个是从基因型到表现型的转换,即将个体转换成搜索空间中的参数,这个过程称为解码。图3是总结的遗传算法模拟生物遗传过程的相关环节。

图3模拟生物进程总结

  表1是整理的遗传算法发展历史。

表1遗传算法发展历史时间人名研究成果1965年Holland首次提出人工遗传操作的重要性1967年Bagley提出选择、交叉和变异操作;引入适应度定标概念;首次提出遗传算法自我调整概念,即引入交叉和变异的概率1971年Hollstien第一个把遗传算法用于函数优化1975年Holland系统阐述遗传算法基本理论和方法,并提出模式理论3基本遗传算法详细步骤

  图4是总结的一次迭代的遗传算法流程,接下来将围绕该图进行算法步骤阐述。

图4基本遗传算法流程总结3.1编码

  由于遗传算法不能直接处理问题空间的参数,因此,必须通过编码将要求解的问题表示成遗传空间的染色体或个体。该部分操作类似于自然语言处理中,词表示成词向量,这样我们就可以在特征空间中处理自然语言。对一个具体的应用问题如何编码是应用遗传算法的首要问题,也是遗传算法应用的难点。实际上,还不存在一种通用的编码方法,特殊的问题往往采用特殊的方法。图5是常见的编码方法的总结。

图5编码方法总结

  其中,位串编码是将问题空间的参数编码为一维排列的染色体的方法,称为一维染色体编码方法。一维染色体编码中最常用的符号集是二值符号集{0,1},即采用二进制编码。实际上,整理之后发现,其余的方法都是在解决二进制编码的不足之处。  比如,二进制编码的缺点有二:一是相邻整数的二进制编码可能具有较大的Hamming距离(例如,15和16的二进制表示为01111和10000,因此算法从15改进到16必须改变所有的位),这种缺陷造成了Hamming悬崖,降低了遗传算子的搜索效率;二是在求解高维优化问题时,二进制编码将非常长,从而使得算法的搜索效率很低。  针对缺点一,可以采用Gray编码,也就是说将二进制编码通过一次异或变换进行转换,这样会克服二进制编码的Hamming悬崖。针对缺点二,可以采用实数编码,即用若干实数表示一个个体,然后在实数空间上进行遗传操作。

3.2初始群体设定

  由于遗传算法是对群体进行操作的,所以,必须为遗传操作准备一个由若干初始解组成的初始群体。群体设定主要包括两个方面:初始种群的产生和种群规模的确定。

图6群体设定步骤总结

  初始种群的个体是随机产生的,但最好采用如下策略设定:一是根据问题固有知识,设法把我最优解所占空间在整个空间中的分布范围,然后,在此分布范围内设定初始群体;二是先随机产生一定数目的个体,然后从中挑选最好的个体(类似于种子实体)加入到初始群体中,这种过程不断迭代,直到初始群体中个体数目达到了预先确定的规模。针对于策略二这种反复迭代的描述,我认为类似于Bootstrapping策略。  种群规模影响遗传优化的结果和效率。当种群规模太小时,遗传算法的优化性能一般不会太好,容易陷入局部最优解。实际上,在学习完整个算法后,我发现针对于算法优化的一个关键环节就是在于如何“跳出”局部最优,进而“逼近”全局最优。这就让我联想到BP神经网络关于参数寻优部分的三种“跳出”策略,也可以说是启发式搜索策略。图7是总结的“跳出”策略。

图7“跳出”策略

  而种群规模太大也会带来弊端:一是群体越大,其适应度评估次数增加,所以计算量也增加,从而影响算法效率;二是群体中个体生存下来的概率大多采用和适应度成比例的方法,当群体中个体非常多时,少量适应度很高的个体会被选择而生存下来,但大多数个体却被淘汰,这会影响配对库的形成,从而影响交叉操作。

3.3设计适应度函数

  遗传算法遵循自然界优胜劣汰的原则,在进化搜索中基本不用外部信息,而是用适应度值表示个体的优劣,作为遗传操作的依据。适应度函数是用来区分群体中的个体好坏的标准,是算法演化过程的驱动力,是进行自然选择的唯一依据。

图8适应度函数设计方法

  一般而言,适应度函数是由目标函数变换得到的。最直观的方法就是将待求解优化问题的目标函数作为适应度函数。  在遗传算法中,将所有妨碍适应度值高的个体产生,从而影响遗传算法正常工作的问题统称为欺骗问题。比如,如果群体中出现超级个体,即该个体的适应值大大超过群体的平均适应值,则按照适应值比例进行选择时,该个体很快就会在群体中占有绝对的比例,从而导致算法较早地收敛到一个局部最优点,这一现象称为过早收敛。这就是一种欺骗问题。  对适应度函数值域的某种映射变换称为适应度函数的尺度变换(定标)。尺度变换分为线性变换和非线性变换,这里重点介绍线性变换。  设原适应度函数为f,定标后的适应度函数为f’,则线性变换可采用下式表示为

f‘=af+bf^`=af+bf‘=af+b

  系数a和b可以有多种途径设定,但要满足两个条件:

①变换后的适应度的平均值要等于原适应度平均值,以保证适应度为平均值的个体在下一代的期望复制数为1;②变换后适应度函数的最大值要等于原适应度函数平均值的指定倍数(相当于最小公倍数),以控制适应度最大的个体在下一代中的复制数。

favg=afavg+bCmultfavg=afmax+bf_{avg}=af_{avg}+b\C_{mult}f_{avg}=af_{max}+bfavg​=afavg​+bCmult​favg​=afmax​+b

  根据上述条件得出的推导公式,通过简单的联立方程组求解即可得出线性变换的系数a和b。  线性变换法变换了适应度之间的差距,保持了种群的多样性。如果种群里某些个体适应度远远低于平均值时,甚至出现负数,为满足最小适应度非负的条件,可以满足进行如下变换:

favg=afavg+b0=afmin+bf_{avg}=af_{avg}+b\0=af_{min}+bfavg​=afavg​+b0=afmin​+b

  这是我根据书上结果反推得出的推导公式。通过简单的计算即可得出适应值非负条件下的系数a和b。与基础条件不同之处在于将可能为负值的变换后的适应度置为0.

3.4遗传操作3.4.1选择

  选择操作也称为复制操作是从当前群体中按照一定概率选出优良的个体,使他们有机会作为父代繁殖下一代子孙。判断个体优良与否的准则是各个个体的适应度值。  在遗传算法中,哪个个体被选择进行交叉是按照概率进行的。适应度大的个体被选择的概率大,但不是说一定能够被选上。同样,适应度小的个体被选择的概率小,但也可能被选上。这体现了遗传算法的随机性的特点。  适应度比例方法非常容易理解,就是按个体适应度在整个种群总适应度的所占比例分配概率。而排序方法根据适应度大小顺序对群体中个体进行排序,然后把事先设计好的概率按排序分配给个体,作为各自的选择概率。选择概率仅仅取决于个体在种群中的序位,而不是实际的适应度值。

图9选择流程及方法总结表2选择个体方法总结选择个体方法概述轮盘赌选择先按个体的选择概率产生一个轮盘,轮盘每个区的角度与个体的选择概率成比例,然后产生一个随机数,它落入转盘的哪个区域就选择相应的个体交叉锦标赛选择从群体中随机选择k个个体,将其中适应度最高的个体保存到下一代。这一过程反复执行,直到保存到下一代的个体数达到预先设定的数量为止最佳个体保存方法把群体中适应度最高的一个或者多个个体不进行交叉而直接复制到下一代中,保证遗传算法终止时候得到的最后结果一定是历代出现过的最高适应度的个体3.4.2交叉

  当两个生物体配对或者复制时,它们的染色体相互混合,产生一个由双方基因组成的全新的染色体组。这一过程称为重组或者交叉。这里的交叉操作就是高中生物中的AB和Ab进行交配产生新的基因型的过程。

图10交叉算子总结

  简单描述部分匹配交叉PMX。先依据均匀随机分布产生两个交叉点,定义两点之间的区域为一匹配区域,并使用位置交换操作交换两个父串的匹配区域。现在举例说明:

A=984|567|132B=871|239|546

  首先交换A和B的两个匹配区域,得到

A=984|239|132B=871|567|546

  显然,根据出现的重复任务,这就是非法调度。解决方法是将匹配区域外出现的重复任务,按照匹配区域内的位置映射关系进行交换,进而使排列成为可行调度。进一步解释,根据匹配区域的位置位置映射关系,即“2-5、3-6、9-7”,先对A中出现的重复任务“2、3”和“9”进行替换(不存在顺序关系,“3,2”也是重复的),即替换成“5,6,7”,然后将替换掉的字符“2,3,9”补到对应的B中所出现空缺的位置。最后结果即为

A=784|239|165B=891|567|243

  实验表明交叉概率通常取值为0.7左右是理想的。每次从群体中选择两个染色体,同时生成0和1之间的一个随机数,然后根据这个随机数确定这两个染色体是否需要交叉。如果随机数低于交叉概率,就进行交叉。

3.4.3变异

  对于变异操作,可以理解为高中生物中的加一段染色体或者替换染色体中的某一基因段等操作。在遗传算法中,变异是将个体编码的一些位进行随机变化。变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。变异操作是按位进行的,即把某一位的内容进行变异。变异概率是在一个染色体中按位进行变化的概率。主要的变异方法如图11所示。

图11变异算子总结

  在遗传算法中,变异属于辅助性的搜索操作(在做高中生物时,变异也属于题目需要特别提示的内容,并非必须)。变异概率一般不能大,以防止群体中重要的、单一的基因可能被丢失。实际上,变异概率太大将使得遗传算法趋于纯粹的随机搜索。

4基本遗传算法总结

  图12为基本遗传算法的流程图。遗传算法是一个利用随机技术来指导对一个编码的参数空间进行高效率搜索的方法,而不是无方向的随机搜索。许多传统搜索方法都是单解搜索方法,遗传算法采用群体搜索策略,即采用同时处理群体中多个个体的方法,同时对搜索空间中的多个解进行评估,从而使遗传算法具有较好的全局搜索性能,减少了陷于局部优解的风险,但不能保证每次都得到全局最优解。显而易见,遗传算法本身十分易于并行化。  在基本遗传算法中,基本上不用搜索空间的知识或其他辅助信息,而仅仅用适应度函数值来评估个体,并在此基础上进行遗传操作,使种群中个体之间进行信息交换。特别是遗传算法的适应度函数不仅不受连续可微的约束,而且其定义域也可以任意设定。对适应度函数的唯一要求就是能够算出可以比较的正值。

图12基本遗传算法流程图5遗传算法改进

  接下来的遗传算法改进,实际上就是针对与图12的基本遗传算法流程进行改进。下面将简述三种改进算法在哪一环节进行了改进。

5.1双倍体遗传算法

  上文阐述的基本遗传算法属于单倍体遗传,每个基因型由一条染色体(也就是基因型AB,分别只有一个等位基因A和B)。显然,大多数动物和高级植物都采用双倍体遗传(也就是AaBb),即每个基因型由一对染色体决定。这势必会出现显隐性遗传问题。  那具体在图12的哪一部分作出调整呢?须知双倍体遗传算法采用显性遗传,并且提供了一种记忆以前有用的基因块功能。  进一步而言,在选择操作中,按照显性染色体的选择概率将个体复制到下一代群体中;同时,在交叉操作中,两个体的显性染色体和隐形染色体分别进行交叉操作;在变异操作中,显性染色体按照正常的变异概率执行操作,隐形染色体按照较大的概率进行操作。  与基本遗传算法的一个显著区别在于,执行完上述操作后,会再增加一个显隐性重排操作,因为每一轮迭代之后,并不能确定显性和隐性的在下一轮划分,有了显隐性重排操作,增加了算法的随机性,也提高了隐性染色体里优良基因的存活概率。具体来说,个体中适应度较大的染色体设定为下一轮的显性染色体,适应度较小的染色体设定为下一轮的隐性染色体。

5.2双种群遗传算法

  双种群遗传算法意在突破平衡态——长时间进化后某些特征处于相对优势的状态,实际上,这再次体现出算法在接近全力“逼近”全局最优,是一个具有优秀扩展性的启发式搜索算法。  对比图12,主要区别在于双种群同时进行图中操作,但在执行完上述操作后,增加一步杂交操作,即交换种群之间优秀个体所携带的遗传信息,以打破种群内的平衡态以达到更高的平衡态,有利于算法跳出局部最优。  杂交算子,具体来说,设种群A和种群B,当两种群均完成了选择、交叉和变异操作后,产生一个随机数num,随机选择A中num个个体与A中最优个体,随机选择B中num个个体与B中最优个体,交换两者,打破平衡态。“产生随机数num”又一次体现了算法的随机性。

5.3自适应遗传算法

  自适应遗传算法的改进关键点在于交叉概率和变异概率,使两概率能随适应度变化自动改变。这样即可保证算法可以跳出局部最优情况,也可以利于优良个体的生存。所以,自适应遗传算法在保持群体多样性的同时,保证遗传算法的收敛性。  对比图12,区别在于交叉算子中,要使用自适应公式计算交叉概率,然后产生随机数,如果小于计算后的概率,那么交叉该对染色体对;同理,在变异算子中,也使用自适应公式计算变异概率,并产生随机数,若小于计算后的概率,那么变异该染色体。

6参考文献王万良.人工智能导论(第4版)[M]:高等教育出版社,2017.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇