已知人工智能算法有哪些已经存在那么通过这个算法可以为我们予以创造出来什么,并为我们人类可以解决哪些问题?

当前位置: &
2,661 次阅读 -
作为一个推荐系统业余爱好者,在机器学习领域的鄙视链中,我感觉一直地位不高,时常被搞NLP CV语音等高科技技术的朋友鄙视。
最近甚至被人问,推荐算法开源包多如牛毛,我们为什么还要专门的推荐算法工程师?(难道想要辞退我!?惊)
不得不说,我想吐槽这个观点很久了。事实上搞推荐的工作不等于 import IBCF 或者 import time SVD++ import tensor啊摔!
于是找回帐号打开N年不用的博客,写一篇随想,其中含有大量主观臆断以及学术错误,尽量不中英夹杂术语之外的英文,如果有不同意见,欢迎回复指正。
说实在现在推荐包太多了,单机小规模实验的R包recommenderlab;慢的不行但是能够hadoop扩展的mahout;C++的eigen也给大家指明了一条矩阵运算的活路;matlab里各种memory based、model based、learning to rank算法包更是漫天飞;拿到风投的graphlab更是打出了号称五行代码动手写推荐系统的口号,还附带各种FM模型以及一健运行deep learning的套餐供大家玩耍;想要自己感受DIY的快乐,还有libFM;嫌慢可以使用SVDfeature简化套餐,还支持多线程硬盘计算,2G笔记本就可以建模2T数据。
(五行实现一个推荐系统,你怕不怕)
那做一个推荐系统,看来确实不需要专门的推荐算法工程师了,import xx即可。
事实上并不是这样,其问题在于几个方面:1.业务转化数学问题 2.数据特性定义active function 3.根据业务定义合理损失函数 4.损失函数求解调优 5.计算量太大的离线算法优化和线上算法优化。
我们可以看到,一个完整的推荐系统项目不能靠import xx实现的至少有上述几点。能够把这5点走通玩好,才是老板养这样几个工资万儿八千天天看起来成天只会看动画无所事事的推荐算法工程师的原因。
1.业务转化数学问题
一般一个项目启动都是老板说,我们公司的现在电话销售(app下载、商品销售、淘宝客收入等等)挺不错的,但是推荐栏的那个IBCF算法太搓,或者人工运营太累,你们能不能搞个推荐提高下转化率?
和做学术以及竞赛不一样,我们并不知道有哪些数据,也不知道要做成什么形式,推荐位放在哪,UI怎么搞比较好,这些都是需要和业务方一起磋商定稿的。
以电话销售为例,我们需要给电话销售人员一个列表,告诉他你今天给这样几个人推销这样几个商品会比较好。然后开工了,我们需要跟业务人员在一起商量,到底用什么数据能够完整的体现一个销售人员给特定的客户推销什么商品会成功?以此为依据决定收集什么样的数据,而非一般书籍里讲述的,仅仅使用用户商品矩阵这么清爽明快的事情。
以这个特定问题为例,我们需要的是销售人员数据,用户数据,商品数据,用户商品交互数据,销售人员商品交互数据,销售人员用户交互数据。其中用户商品交互数据中的很小一块便是很多开源包可用的UI矩阵。
数据收集来了之后对数据做统计,消除特殊活动以及广告引流等影响,搞定缺失值、默认值、异常值等问题。里面还经常会遇到一些机器学习的子问题要处理,比如垃圾用户怎么排除(基于强规则弱规则构造特征做一个小分类器之类的)。
填完这些坑,往往半个月一个月过去了,还非常辛苦(我的感觉是:程序员来自地球,业务人员来自火星)。。。。
2.数据特性定义active function
继续拿上面那个问题说事,数据清洗好该构造特征定义active function了。
active function是我随便叫的,或者叫model equation?总之我们如果假设特征相互独立,那么就是 y=wx 这种;如果认为特征集之间会有交互,我们有两种方法,第一种是做一个 low rank 假设,比如 SVD 的 y=pq这种形式,就是对于用户商品交互特征进行建模;另外一种就是写成y=wij*xi*xj这种形式。前面一种是 factorization models 的搞法,后面一种是 用rf或者gbrt的交叉特征的搞法。
对于我们这个问题来看,销售人员特征、用户特征、商品特征这种就属于wx这种形式;而销售人员商品交互特征、用户商品交互特征、销售人员用户交互特征这种就属于y=sq+sp+pq(销售s,用户p,商品q)这种形式。
所以整体来看我们问题的定义下来,active function应该为y = wx + sq + sp + pq的形式。顺便一说,考虑到时间因素,还要再加上好几个t的项(如果采用pairwise interaction tensor的形式的话)。
定义好形式就可以抽取特征了,然后按照 categorical variables以及noncategorical variables的形式整理好,这时候就可以开心用包啦!
打个比方,libFM就提供了一个建模的通用式子
分别是bias,独立特征以及交互特征,一般人常说的IBCF,SVD等都是这个式子的特殊形式而已。
顺便这里说下,现在搞推荐的,一般两种流派,一种是用MF的,一种是用LR,RF,GBRT上高维特征的,经常吵的劝都劝不动。
我觉得这个只是数据特性的两种active function定义的倾向而已。
前者考虑到不同categorical variable的交互。对于wij,我们经常是很难观测到行为的,比如用户i给电影j的行为,已经观测到才能估计wij,但是这表示他已经看了电影了,那推电影j就没意义了,所以我们使用pi*qj来近似wij。
后者一般不考虑categorical variable的交互,或者他们能观测到wij对应的xi*xj的行为,所以直接用分类回归模型求解wij而无需使用low rank假设。比如说天猫商品推荐,用户想买一个商品,经常会有点击搜索行为,这种xi*xj就是可观测的了,所以直接上rf或者gbrt就是合理的。其active function的通式为这个:
所以一句话,没有所谓推荐算法哪家强,只有合适的应用场景对应的合适的active function,然后影响到我们是用MF还是LR RF这种。观测不到或者观测很少用前者,反之用后者。或者两个都上,做ensamble(有计算资源,就是这么任性)。
3.根据业务定义合理损失函数
这又是一个比较有争议的话题,不过也是推荐从业人员的工作核心所在,大概要忙活一下午?
一般的损失函数有三种,1.回归 2.分类 3.排序
比如说:,
说实在,我干活从来不用前面那种,只有竞赛明确指明排行榜按照RMSE排序才会用前者。因为我们经常要做的是top-N的排序,对于用户给商品打分估计准了,但是转化率提不上去没用,因为用户只考虑买还是不买,很多研究也指出RMSE跟转化率和top-N不是很搭。
说到损失函数不得不说最近很火的learning to rank,其损失函数是MRR这种直接优化排序的,相比AUC等考虑全局排序或者甚至只是point wise的分类系列损失函数,从理论上来说更加合理。其损失函数是个非凸损失函数,我们一般把其近似为凸函数求解(实际上还是有点坑)。
然后我们要考虑损失函数是否带权,以及正则的问题。带权主要是比如一个商品推成功了赚5毛,一个商品推成功了赚50,天壤之别,这就要结合业务来定义了。正则一般上L2,比如这种
另外很多人觉得损失函数定义成怎样对结果影响不大,我觉得吧,还是很有影响的吧摔。
4.损失函数求解调优
在给定对数据的观测下定义优化问题求解优化问题一直是机器学习的主旋律,俗话说,数据挖坑一身功力全在调优(并不是)。
我们一般要选择一个科学的适合现状的方法,还有搞好超参数。
拿常用的推荐系统优化方法来说,SGD,ALS以及MCMC一般的算法包都会提供。以LibFM为例对比三种方法:
可以看到,新手用MCMC inference最好。在推荐的问题中,一般只需要调两个超参数就好,factor的dimension k以及对factor初始化的高斯分布的std。k一般从小的着手,5啊8啊都是不错的做第一次调参的选择,太大容易过拟合。std对结果影响很大。不过好在也比较好调,一般选择0.1 0.2 0.5 1.0这种,而且我们一般在迭代的初期就可以通过观测training error的方式就可以确定了,甚至比常用的开源包的实现方式(从train里抠一部分做holdout set做观测)还好。
如果是高手,可以挑战SGD,SGD的参数除了MCMC的那几个,还有几个非常不好调的参数,有正则项的lambda以及学习速率。正则项没办法,只能靠grid search。学习速率更坑,高了不收敛,低了跑的慢,具体什么速率好只有上帝知道。(最好是0.0127这种,不要是10的倍数,我瞎说的)。
总之,这块也是一个具有挑战性和技术性的不能自动化的工作。
5.计算量太大的离线算法优化和线上算法优化
算法一般分好几个部分,一般有线下部分和线上部分,比如很多做法是线下选离线商品池子,线上CTR预估。这样就涉及到大量的离线评测和线上算法架构。
一般的公司项目的数据量都是单节点运算支撑不起的。百万级有行为用户和几十万的商品都是很常见的,小规模也有几万,所以要离线评测一般需要并行和分布式。这些也是很难自动化的。
对于数据的预处理和特征的构造,一般都是数据并行,规模不是特别大的log或者不是太多冗余的文本,python脚本nohup也是个不错的选择,或者用hadoop写MR。模型的算法并行看情况,一般的MF类型模型可以O(kN)求解,单机写的性能高点小时级别还是可以出结果的(比如SVDfeature这种),或者公司有条件上MPI,自己写spark也可以,但是没有看到成熟的成功案例?还有用graphlab这种性能也是不错的。
线上的话架构等模型定下来做LR这种,有实时的特征(最近30个点击这种),也有离线算好的,一般会对用户大体离线算个离线池子,这样线上压力小,storm都是不错的选择,反正不需要实时训练,数据增量记录好一天甚至一周一迭代就好。
当然要上线要经历九九八十一难,某厂一个产品离线到AB test上线到最后,存活率不足1%,还要根据线上结果咔嚓掉一半,这些也是工程师要经历的磨难。
所以说了这么多,就是说,报告老板,当推荐算法开源包多如牛毛,我们还要专门的推荐算法工程师的!有好多事情可做的!(于是我的饭碗保住了,又可以愉快看动画片在B站自由飞翔了)
很多地方写了后面忘记前面,大家有什么想法快来交流,相互提高,邮件交流(我近期兴趣点在于如何有效利用外源数据提高推荐效果以及learning to rank调优这块)
文章出处:
注:转载文章均来自于公开网络,仅供学习使用,不会用于任何商业用途,如果侵犯到原作者的权益,请您与我们联系删除或者授权事宜,联系邮箱:contact@dataunion.org。转载数盟网站文章请注明原文章作者,否则产生的任何版权纠纷与数盟无关。
相关文章!
不用想啦,马上 发表自已的想法.
做最棒的数据科学家联盟
扫描二维码,加微信公众号
联系我们:遗传算法在游戏人工智能中的应用概述--《信息化建设》2015年10期
遗传算法在游戏人工智能中的应用概述
【摘要】:现代计算机游戏经过多年发展,在视觉方面以及达到真实感绘制,学术研究领域对于真实感及非真实感图形学的研究已经过多年的探索,并成功应用于游戏研发领域。具有动态适应环境变化和自我学习能力的人工智能已经成为游戏设计的趋势,也是对传统工程学方法下游戏人工智能的突破和变革,能够实现传统游戏人工智能方法所无法实现的复杂自主角色行为。
【作者单位】:
【关键词】:
【分类号】:TP18【正文快照】:
一、研究背景:目前在具有自学习能力的游戏人工智能研发领域已经取得很多成功的商业化产品,例如《魔兽世界》游戏的研发已经将人工神经网络应用于角色人工智能方面,用模拟法实现游戏角色的AI,用大量神经元构成的网络系统实现较为复杂的角色自我学习能力,在商业领域大获成功。
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【相似文献】
中国期刊全文数据库
孙瑞祥,屈梁生;[J];自动化学报;2000年04期
李海民,吴成柯;[J];西安电子科技大学学报;2000年01期
蔡良伟,雍正正,吴清华;[J];系统工程与电子技术;2000年06期
万杰,关志华;[J];河北工业大学成人教育学院学报;2000年04期
李逢高;[J];湖北工学院学报;2000年03期
徐耀群,沈继红,丁建利;[J];黑龙江商学院学报(自然科学版);2000年02期
王晓丽,孙萍;[J];吉林建筑工程学院学报;2000年03期
周增国,杨吉新;[J];计算机与现代化;2000年02期
武庄,何新贵;[J];系统工程理论方法应用;2000年01期
杨振强,王常虹,庄显义;[J];电子科学学刊;2000年01期
中国重要会议论文全文数据库
李玮;史红梅;余祖俊;;[A];第三届中国智能计算大会论文集[C];2009年
娄小芳;邹逢兴;高政;曾令李;欧微;;[A];2009中国控制与决策会议论文集(2)[C];2009年
仲崇霞;徐月青;杨军;;[A];2009全国时间频率学术会议论文集[C];2009年
梁向阳;何奉道;;[A];1999年中国神经网络与信号处理学术会议论文集[C];1999年
陈岑;王贵成;逄玉俊;;[A];2009全国虚拟仪器大会论文集(二)[C];2009年
廖勇;王飞;;[A];第四届中国智能计算大会论文集[C];2010年
周文举;费敏锐;;[A];2010中国仪器仪表学术、产业大会(论文集1)[C];2010年
张会福;陈然;;[A];2009年全国开放式分布与并行计算机学术会议论文集(上册)[C];2009年
韩娟;;[A];第三届河南省汽车工程科技学术研讨会论文集[C];2006年
庞国仲;王元西;;[A];'2000系统仿真技术及其应用学术交流会论文集[C];2000年
中国博士学位论文全文数据库
李航;[D];天津大学;2007年
周辉仁;[D];天津大学;2008年
郝国生;[D];中国矿业大学;2009年
侯格贤;[D];西安电子科技大学;1998年
马国田;[D];西安电子科技大学;1998年
石玉;[D];南京航空航天大学;2002年
明亮;[D];西安电子科技大学;2006年
姚志红;[D];上海大学;2007年
袁丽华;[D];南京航空航天大学;2009年
李军华;[D];南京航空航天大学;2009年
中国硕士学位论文全文数据库
王亚利;[D];西安电子科技大学;2008年
李燕培;[D];西安理工大学;2008年
江中央;[D];中南大学;2008年
金芬;[D];苏州大学;2008年
谷克;[D];长安大学;2008年
李艳娇;[D];吉林大学;2009年
任巍;[D];吉林大学;2009年
王赫;[D];东北电力大学;2009年
叶晋;[D];东华大学;2009年
于惠;[D];山东师范大学;2009年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备74号人工智能、模式识别领域最终是否会被一种本质、通用的算法主导? - AF知识网
人工智能、模式识别领域最终是否会被一种本质、通用的算法主导?
更新时间: 编辑:admin
很有意思的观点。之前有从这个角度思考过这个问题,稍微说一下自己的想法吧。"General Purpose AI"一直是每个研究AI人的梦想。但是到目前为止都没有任何“阶段性”的研究成果清晰地指向机器主动思考的可能性。这个结论有两个互相纠缠的前提,即这个问题“有一个正确的答案”,和“主动思考有明确的定义”。 题主你的问题大概是前者,即“有没有一个算法,或系统,或一个理论体系可以直接或间接的指向机器主动思考的可能性"。以下为我的答案:______________________________简洁的答案:据我所知,这个问题所对应的命题尚未有证明或证伪。(以及很多reference懒得贴了)______________________________不那么简洁的答案:考跪了midterm来答题。大堆的AI史话略过不表。根据我的理解现在AI的大方向(approach)分四种,而这四种方式分别代表了现在人们对人类大脑运作方式的不同理解。首先是楼主所提到的模式识别。模式识别大体来讲就是统计学习(Statistical Learning)。由很多很多很多的数据来对一个现实世界或虚构的系统建模。这个系统可以非常非常简单,比如观察一个伪随机数生成器(pseudo-random number generator)。一个简单的机器学习程序可以很快的从取得的随机数中找到模式并建成一个数值分布(gaussian, poisson, chi-square, etc)。这个系统也可以非常复杂,比如基于机器学习的天气与灾害预报。在一个不仅看似混沌(chaotic)而且真的很混沌的系统里寻找模式对于现代计算机几乎是不可能完成的任务,不过还是有人在坚持不懈地做这件事情而且赚了很多很多钱发了很多很多paper... (问题不是这样的算法有没有,而是算法的速度能有多快。强人工智能的算法当然有,我们人类不就是通过这样的算法产生的吗?你搞个足够大的容器,装上宇宙中能找到的各种元素,搅一搅,然后找个安全的地方放着,让大自然这台计算机去运算,几十亿年之后说不定就会从里面爬出个智能生物来!但是这样的算法是一个平凡解,耗时太长,并且最终得到的东西还不一定是能服务与人类的(很可能就进化出一个吃人的怪物,能进化出乖乖帮人识别语音,老老实实替人开车的生物的可能性即使有也是极小的。)。因此,其实人类真正需要的是这样一种算法:能加速智能体产生的速度,同时又要保证产生的智能体能像奴隶一样服务于人类。算法要加速只有一种方法,那就是给它注入各种先验信息。人类在宇宙中进化了几百亿年,积累了大量的常识和知识。将这些知识中的一部分加入到算法数据中,“智能”甚至能在普通PC上很快的出现。神经网络,遗传算法,统计学习等等就是这样的derivation。但是算法一旦被注入了先验知识就会出现偏执,并失去通用性。就像一块钻石被打磨成了钻戒之后就很难再做成吊坠。所以吧,这是一个tradeoff的问题,不要一味的追求通用性,越通用的算法潜力越大,但是速度越慢;越具体的算法潜力越小,但是速度越快。===========================关于神经网络,遗传算法,统计学习等各种算法再说几句:这些算法本身就是带偏执的,当应用这些模型到具体问题时,你再在此基础之上添加更多问题相关的偏执。本身就是带偏执的,意味着对于某个模型,无论你怎么用它(即给它加入任何问题相关 的偏执),总有一些问题是这个模型注定解决不了的,这是这个模型自身的局限性。最近我正在构建一种全新的算法,它的优势就在于模型本身是不带任何偏执的,所有的偏执都由用户根据具体的问题加进去。这样的算法自身局限性为0,可以应用于任何机器学习或人工智能问题,从模拟一个原子到模拟一个人。不过正如上面所说的,会有tradeoff问题。你不知道力学还可以有另外一个理解方式吧,叫做拉格朗日力学。一样的事实,本来就可以有不同的理解,从不同的理解推出来的结果也完全一样。而它们也没有统一到一起。你读一下费恩曼写的《物理定律的本性》这本书就知道这种现象的确存在了。SVM,神经网络,遗传算法似乎本质上有很大的相同。首先他们都是搜索算法,要搜索到一个最优解,而且都是启发式搜索算法。神经网络和SVM更相似,SVM不就是最优化的perceptron+kernel么?本来这些算法就都是有联系的,也是相似的。你看不到相似性是因为你没有这方面的研究而已。。人工智能和模式识别相比,就象真人与相片之间的差距。我所认为的人工智能是人类采用非自然方法实现自我意识这种,在这个层面上,我认为存在一套通用的算法以及内在机制而实现人工智能。今天太晚了,我没耐性回答,只想打个比方:幼儿园里的小朋友就是身怀一套通用算法及内丰机制的人,长大以后,他们各自发展出不同的专长和本领……这套通用的玩意是什么呢?是学习、知识归纳、知识再学习、逻辑、多道推演互相观察、互相演进、多角度、多目的敲打事实等等的基本逻辑能力是的没错。不过不能理解成算法,最多理解成元算法。具体在我搞定之前也不会说。我只能报以呵呵了,人工智能领域早就走进了死胡同,像你这种以外行身份热情进入的人最后都会感觉上当了,顶着个人工智能的名,其实搞的还是数学处理,各有各的用处,但凡是用数学方程处理信息的理论最后都不可能实现智能,难道你觉得人的大脑是一个方程式吗?
或许你还想知道这些
Copyright (C) 2014
All Rights Reserved.
网站内容均转载网络,内容仅供参考,不能作为依据。遗传算法在人工智能领域中的应用-牛bb文章网
遗传算法在人工智能领域中的应用
本文话题:,
摘要:该文介绍了遗传算法的基本概念、基本遗传算法的特点和基本遗传算法的求解步骤,同时也介绍了遗传算法在机器学习、并行处理、人工生命以及遗传算法与进化规则及进化策略的结合的发展动向,最后讨论了基于遗传算法的人工神经网络学习中的应用研究,具体论述了遗传算法在学习神经网络权重和学习神经网络拓扑结构的应用方法。关键字:遗传算法;机器学习;人工生命;人工神经网络;神经网络拓扑结构中图分类号:TP183文献标识码:A编号:08)27-2040-03The Application of Genetic Algorithm to the Artificial IntelligenceWANG Hui(Xinjiang Petroleum Institute, Urumqi 830000, China)Abstract: In this paper the author introduces the basic conception of genetic algorithm(GA for short),the feature of GA and the calculation steps. We can also get a general idea of the development in the machine learning, Parallel Processing, artificial Life, and the integration of evolutionary rules and strategies. At last, the application of GA to artificial neural networks is discussed, especially the application of GA to the study of neural networks weight and the neural network topology.Key words:artifi neural network topology1 遗传算法简介遗传算法是模仿生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,与传统数学模型截然不同,它为那些难以找到传统数学模型的难题找出了一个解决方法。遗传算法借鉴了生物科学中达尔文的物竞天择、适者生存的进化准则,1975年,Michigan大学Holland教授根据这一规律首次提出了遗传算法(genetic algorithm,简称GA),其基本思想是力求充分模仿这一自然寻优过程的随机性、鲁棒性和全局性。这是一种新型的全局优化搜索算法,因为其直接对结构对象进行操作,不存在求导和函数连续性的限定等数学问题,鲁棒性强、随机性、全局性以及适于并行处理,已广泛应用于神经网络、计算机科学、优化调度、运输问题、组合优化、机器学习、信号处理、自适应控制和人工生命等领域,并且遗传算法在实际应用中也取得了巨大成功。2 基本遗传算法遗传算法的工作过程本质上就是模拟生物的进化过程。首先,要规定一种编码方法,使得你的问题的任何一个潜在可行解都能表示成为一个“数字”染色体。然后,创建一个由随机的染色体组成的初始群体(每个染色体代表了一个不同的候选解),并在一段时期中,以培育适应性最强的个体的办法,让它们进化,在此期间,染色体的某些位置上要加入少量的变异。遗传算法是一种基于空间搜索的算法,它的求解可以看成是最优化过程。遗传算法的最大优点就是,你不需要知道怎么去解决一个问题,你需要知道的仅仅是用什么样的方式对可行解进行编码,使得它能被遗传算法机制所利用。遗传算法并不能保证所得到的解是最优解,但可以将误差控制在容许的范围内。遗传算法具有以下特点:1) 遗传算法是对参数集合的编码而非针对参数本身进行优化;2) 遗传算法是从问题解的编码组开始而非从单个解开始搜索;3) 遗传算法利用目标函数的适应度这一信息而非利用导数或其他辅助信息来指导搜索;4) 遗传算法利用选择、交叉、变异等算子而不是利用确定性规则进行随机操作。那么下面对基本遗传算法给出一个求解步骤:1) 定义一个目标函数;2) 将可行解群体在一定的约束条件下初始化,每一个可行解用一个向量x来编码,称为一条染色体,向量的分量代表基因,它对应可行解的某一决策变量;3) 计算群体中每条染色体xi(i=1,2,…,n)所对应的目标函数值,并以此计算适应值Fi,按Fi的大小来评价该可行解的好坏;4) 以优胜劣汰的机制,将适应值差的染色体淘汰掉,对幸存的染色体根据其适应值的好坏,按概率随机选择,进行繁殖,形成新的群体;5) 通过杂交和变异的操作,产生子代。杂交是随机选择两条染色体(双亲),将某一点或多点的基因互换而产生两个新个体,变异是基因中的某一点或多点发生突变;6) 对子代群体重复步骤(3)~(5)的操作,进行新一轮遗传进化过程,直到迭代收敛(适应值趋稳定)即找到了最优解或准最优解。3 遗传算法的发展动向GA在应用方面的取得了较丰硕的成果,其主要应用领域在于函数优化,机器人学,设计,组合优化,信号处理,人工生命等,此外遗传算法还有几个引人注目的新动向。3.1 基于GA的机器学习这一新的研究方向把GA从历史离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新的机器学习算法,这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望,GA作为一种搜索算法从一开始就与机器学习有密切联系。分类器系统是第一个基于GA的机器学习系统。基于GA的概念学习是近几年机器学习领域的一个较为引人注目的研究方向。还有一些嵌入领域知识的基于GA的机器学习的研究。3.2 并行处理的GA并行处理的GA的研究不仅是GA本身的发展,而且对于新一代智能计算机体现结构的研究都是十分重要的,GA在操作上具有高度的并行性,许多研究人员都正在搜索在并行机上高效执行GA的策略。近几年也发表了不少这方面的论文,研究表明,只要通过保持多个群体和恰当地控制群体间的相互作用来模拟并执行过程,即使不使用并行计算机,我们也能提高算法的执行效率。在并行GA的研究方面,一些并行GA可以分为两类:一是粗粒度并行GA,它主要开发群体间的并行性,如Coboon分析了在并行计算机上解图划分问题的多群体GA的性能;另一类是细粒度并行GA,它主要开始一个群体中的并行性,如Kosak将群体中的每个个体映射到一个连接机的处理单元上,并指出了这种方法对网络图设计问题的有效性。3.3 GA与人工生命的渗透人工生命是用计算机、机械等人工媒体模拟或构造出的具有自然生物系统特有行为的人造系统。人工生命与GA有密切的关系,基于遗传算法的进化模型是研究人工生命现象的重要理论基础,虽然人工生命的研究尚处于启蒙阶段,但遗传算法已在其进化模型、学习模型、行为模型、自组织模型等方面显示出了初步的应用能力,并且必将得到更为深入的应用和发展。人工生命与遗传算法相辅相成,遗传算法为人工生命的研究提供了一个有效的工具,人工生命的研究也必将促进遗传算法的进一步发展。3.4 GA与进化规则及进化策略的结合GA,进化规则及进化策略是进化计算的三个主要分支,这三种典型的进化算法都以自然界中生物的进化过程为自适应全局优化搜索过程的借鉴对象,所以三者之间有较大的相似性,但三种算法又是从不完全相同的角度出发来模拟生物的进化过程,分别是依据不同的生物进化背景,不同的生物进化机制而开发出来的,所以又有差异。但在进化计算领域内更重要的工作是生物的进化机制,构造性能更加优良且适应性更加广泛的进化算法。4 基于遗传算法优化神经网络的应用研究神经网络和遗传算法目标相近而方法各异。因此,将这两种方法相互结合,必能达到取长补短的作用。近年来,在这方面已经取得了不少研究成果,形成了以遗传算法与神经网络相结合的进化神经网络(ENN)。遗传算法在神经网络中的应用主要是用遗传算法学习神经网络的权重和学习神经网络的拓扑结构两个部分。4.1 遗传算法学习神经网络的权重而最主要的是学习神经网络的权重,也就是用遗传算法来取代一些传统的学习算法 。目前广泛研究的前馈网络中采用的是Rumel hart等人推广的误差反向传播(BP)算法,BP算法具有简单和可塑的优点,但是BP算法是基于梯度的方法,这种方法的收敛速度慢,且常受局部极小点的困扰,采用遗传算法则可把神经网络的结构优化和权值学习合并起来一起求解,克服了BP算法的缺陷,是神经网络权值学习的有效方法。遗传算法学习神经网络权值的算法步骤如下:1) 随机产生一组分布,采用某种编码方案对该组中的每个权值(或阈值)进行编码,进而构造出一个个码链(每个码链代表网络的一种权值分布),在网络结构和学习算法已定的前提下,该码链就对应一个权值和阈值取特定值的一个神经网络;2) 对所产生的神经网络计算它的误差函数,从而确定其适应度函数值,误差与适应度成反比关系;3) 选择若干适应度函数值最大的个体,直接遗传给下一代(精英保护策略);4) 利用交叉和变异等遗传操作算子对当前一代群体进行处理,产生下一代(新一代)群体;5) 重复步骤2~4,使初始确定的一组权值分布得到不断的进化,直到训练目标得到满足或者迭代次数达到预设目标为止。4.2 遗传算法学习神经网络的拓扑结构神经网络结构包括网络的拓扑结构(连接方式)和接点转移函数两方面。利用遗传算法设计神经网络可根据某些性能评价准则如学习速度,泛化能力或结构复杂程度等搜索结构空间中满足问题要求的最佳结构。利用遗传算法设计神经网络的关键问题之一仍然是如何选取编码方案。遗传算法学习神经网络结构的算法步骤如下: 1) 随机产生若干个不同结构的神经网络,对每个结构编码,每个码链对应一个网络结构,N个码链构成种群。2) 利用多种不同的初始连接权值分别对每个网络进行训练。3) 计算在每个对应码链下神经网络的误差函数,利用误差函数或其他策略(如网络的泛化能力或结构复杂度)确定每个个体的适应度函数。4) 选择若干适应度函数值最大的个体构成父本。5) 利用交叉,变异等遗传操作算子对当前一代群体进行处理,产生新一代群体。6) 重复上述2)-5)步骤,直到群体中的某个个体(对应一个网络结构)能满足要求为止。5 结束语遗传算法作为一种新型的全局优化搜索算法,由于其直接对结构对象进行操作,不存在求导和函数连续性的限定,又具有鲁棒性强、随机性、全局性以及适于并行处理的优点,在人工神经网络的应用上展现了它的独特魅力与优势,但同时,它在理论和应用技术上也存在着许多不足和缺陷,比如相对鲜明的生物基础,其数学基础显得极为薄弱,尤其是缺乏深刻且具有普遍意义的理论分析。随着理论研究的深入,可以肯定,作为一种高效并行的全局搜索方法,遗传算法以其特有的算法特点使其在许多实际问题中的应用会越来越广;同时,广泛的数学方法和强大的计算机模拟工具的出现,必将使遗传算法的研究取得长足的进展。参考文献:[1] 蔡自兴. 人工智能及其应用[M]. 3版.北京:清华大学出版社,2003.[2] 王风琴. 基于遗传算法的神经网络优化[J].燕山大学学报,):234-239.[3] 陈国良. 遗传算法及其应用[M].北京:人民邮电出版社,1999.[4] 陈颖琪. 进化计算与神经网络的结合[J].红外与激光工程,1999,(4):8-11,35.[5] Kretnovich v.Qmtana C and Puentes O.Genetnc Algorithms-What Fitness Scaling is Optimal. Ctberm and System 1993.24.[6] S W Mathfoud.Genetic drift in sharing methods. 0-/94.1994 IEEE[7] V Petrochs.S Kazarns. Varying quality function Gengentic algorithms and the cutting problem. 0-/94.1994 IEEE [8] 杨旭东,张彤. 遗传算法应用于系统在线识别研究[J].哈尔滨工业大学学报, ):102-104.[9] Pham D T,Jin G. Genetic algorithms using gradient-like ren reduction operator. Electronics Letters. 1995 .31.[10] Nover D,Baskaran S,Scbuster P. Understanding genetic algorithms dynamics using harvesting strategies. Physics D 79, 1994.[11] Kao T, Hwang S Y. A genetic algorithm with sruptive selection[J]. IEEE Transcations on System, Man. And Cybernetris-Part B: Cybernetics 1996,26.[12] Arabas J. Michalewicz Z and Mulawka J. GAVaPS-a Genetic Algorithms with Varying Population Size[C].Proc O the 1st IEEE on Evolutonary Computation IEEE,1994.[13] Liu Li, Chen Xueyun. Reconfiguration of distribution networks based on fuzzy genetic algorithms[J]. proceedings of Chinese Society of the CSEE, ):44-49.分享: >
延伸阅读:

我要回帖

更多关于 人工智能算法 的文章

 

随机推荐