﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-thinktalk-随笔分类-AI</title><link>http://www.blogjava.net/ThinkingTalking/category/24011.html</link><description>Do what I can do!</description><language>zh-cn</language><lastBuildDate>Thu, 18 Oct 2007 09:26:45 GMT</lastBuildDate><pubDate>Thu, 18 Oct 2007 09:26:45 GMT</pubDate><ttl>60</ttl><item><title>遗传算法</title><link>http://www.blogjava.net/ThinkingTalking/archive/2007/10/15/153119.html</link><dc:creator>ThinkingTalking</dc:creator><author>ThinkingTalking</author><pubDate>Mon, 15 Oct 2007 14:46:00 GMT</pubDate><guid>http://www.blogjava.net/ThinkingTalking/archive/2007/10/15/153119.html</guid><wfw:comment>http://www.blogjava.net/ThinkingTalking/comments/153119.html</wfw:comment><comments>http://www.blogjava.net/ThinkingTalking/archive/2007/10/15/153119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ThinkingTalking/comments/commentRss/153119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ThinkingTalking/services/trackbacks/153119.html</trackback:ping><description><![CDATA[<a href="http://blog.csdn.net/leeshaoqun/archive/2006/07/16/928699.aspx">http://blog.csdn.net/leeshaoqun/archive/2006/07/16/928699.aspx</a>
<img src ="http://www.blogjava.net/ThinkingTalking/aggbug/153119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ThinkingTalking/" target="_blank">ThinkingTalking</a> 2007-10-15 22:46 <a href="http://www.blogjava.net/ThinkingTalking/archive/2007/10/15/153119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>电脑围棋中的人工智能技术</title><link>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129547.html</link><dc:creator>ThinkingTalking</dc:creator><author>ThinkingTalking</author><pubDate>Wed, 11 Jul 2007 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129547.html</guid><wfw:comment>http://www.blogjava.net/ThinkingTalking/comments/129547.html</wfw:comment><comments>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ThinkingTalking/comments/commentRss/129547.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ThinkingTalking/services/trackbacks/129547.html</trackback:ping><description><![CDATA[摘要 <br><br><br>本文通过研究几个最出色的电脑围棋程序，从认知科学的角度介绍了电脑围棋，并特别针对电脑围棋编程人员（或有意投身于此的程序员）揭示围棋作为一个认知科学研究领域的日益增长的重要性。对手谈，Go4++，Many&nbsp;Faces&nbsp;of&nbsp;Go，Go&nbsp;Intellect&nbsp;和Explorer几个目前最优秀的电脑围棋程序，我们概括了它们用到的人工智能技术，必须面对的关键性挑战和博弈树搜索中牵涉的问题，以此揭示为什么计算机国际象棋技术不能被很好的移植到围棋领域。 <br><br><br>1．&nbsp;挑战围棋的程序 <br>作为正规游戏之一的围棋领域，过去即便是应付一般的人类棋手计算机也难以有所作为。几个一年一度的电脑围棋赛事，如FOST杯赛为第一名提供2，000，000日元奖金，台湾的应氏基金为第一个能在分先七番棋中击败顶尖职业棋手的围棋程序许诺40万美元的奖金。 <br>最早以围棋为对象把电脑围棋纳入研究工作是在1962年，尽管第一次由程序下一盘完整的棋是发生在1968年（Zobrist，1970）。随着电脑围棋赛事的举行和第一个商业程序的发放，电脑围棋作为一个领域于80年代被正式创立，并在90年代变得兴旺起来。目前活跃在电脑围棋竞赛中的顶尖程序有Explorer，Go&nbsp;Intellect，Go4++，手谈和The&nbsp;Many&nbsp;Faces&nbsp;of&nbsp;Go，它们的水平大致在4-8级之间。 <br><br>2．&nbsp;围棋中的博弈树搜索 <br>二人完美信息博弈中典型的人工智能方法是搜索博弈树以决定走哪一步。标准博弈树搜索由四部分组成：1．状态表示，2．候选走法产生，3．确定目标状态，以及4．一个确定相对优势状态的静态评估函数。有效的博弈树剪枝方法（比如&#945;-&#946;）增强了程序的表现。 <br>博弈树这条途径很成功，如我们在国际象棋程序中所看到的，基于典型的完全广度&#945;-&#946;剪枝博弈树搜索的程序甚至击败了世界冠军。这一节我们从透视电脑围棋的角度检查博弈树搜索的四个构件。 <br><br>2.1&nbsp;状态表示 <br>从完全信息的角度看，围棋盘面有19X19的3次方格，每个交叉点要么空要么被黑子或白子占据。状态空间的大小（例如可能的位置数）是3的361次方（或10的172次方），相比之下国际象棋大致为10的50次方而Othello棋为10的30次方（Allis，1994）。另外，博弈树的大小（例如可能的博弈数）在10的575次方和10的620次方之间，对比国际象棋的10的123次方和Othello棋的10的55次方（Allis，1994）。 <br>由于空间的组合尺寸，用19X19格的形式严格表示状态空间对人或机器来说都层次太低而不能有效使用。接下来的层面的描述是把正交的邻接棋子组成串（或链）。所有的程序把串搜集到更大的单元，然而没有通用的处理方法——即便是对专业棋手来说——把串组合到更大的单元中。依靠他们的围棋理论，程序员开发了他们自己的启发式，当串有效的连接在一起时用做评估之用（叫做模糊组或块）。 <br>另外，恰当层次的表示能改变对运行时子任务的依赖，例如，战术分析，死活分析，或实地评估。 <br><br>2.2&nbsp;走子 <br>棋手在禁止自杀和同型反复（劫）的规则限制下轮流把棋子投放在空的交叉点（包括角和边）。象国际象棋一样，围棋在给定位置的上下文中只有所有合法走法中的一部分是有效的。围棋的平均分枝因子是很大的，大约是国际象棋的六倍（200对35，Burmeister&nbsp;&amp;&nbsp;Wiles，1995）。 <br>注意这个分枝因子在全盘中的考虑。而在某些情形下只有局部的考虑是重要的。例如，直接目标搜索被用来判断通常只有一两种可能走法却可以多达60手深度的征子。 <br>实际的走子是个复杂的问题：参见3.4部分。 <br><br>2.3&nbsp;目标状态 <br>围棋的最终目标是获得比对手更多的实地。有两种方法用来争取实地：建棋子城墙围空以及用棋子包围并吃掉敌方的棋串。实际上很难确定目标状态，因为实地的获得是靠慢慢积累起来的（不象国际象棋那样将军的最终的目标是突然死亡并且集中在一个子上）。由于在接近终局前很难精确地计算实地，故启发式估计用的较多。这样的启发方式通常要归并组件和指示领地安全潜力的（例如死活组和影响）次要目标（例如国际象棋里的材料优势）。 <br>当对局双方依次弃权时结束。棋手通常在没有走法能增加所得和/或无论怎么走都会减少所得时选择弃权。实际上，要确定对局结束（即何时弃权）是相当困难的。人们下棋，计算结果时如果遇到有关死活的争执要通过继续下直到最终结果出现。在电脑围棋比赛中，如果程序出现算法不能解决的得分争执，计分就由组织比赛的人员来做。 <br><br>2.4&nbsp;评估函数 <br>在判断盘面的形势优劣时棋块的死活是个重要的考虑点。死活判断是很费时间的，并且是典型的通过战术搜索（参见3.5部分）或死活搜索（参见3.6部分）来获得的。有意思的是，另一评估棋块死活的复杂之处在于它可能需要评估全盘的形势：如果要一个棋块在劫争中是可活的（即它必须赢得打劫来使自己活下来），就必须估算所有和对手相比用来决定棋块死活的劫材的数量和大小。如果出现双重或三重劫的形势，打劫分析会变得更复杂。 <br>评估的结果有时不确定，因为明确的死活定义在受限的战术搜索里也许是不可能的，即一个绝对的死活回答可能超出了战术或死活搜索的范围。 <br>从复杂的类型分析看，由一个绝对位置来确定赢家是P空间难题（Lichtenstein&nbsp;&amp;&nbsp;Sipser，1980），决定一个棋手能否左右输赢需指数时间来完成（Robson，1983），由此也就不奇怪要用到启发式了。这些理论结果显示不存在从一个绝对局势出发决定领地结果的多项式时间算法。 <br><br>3．&nbsp;参赛程序里的博弈树搜索和人工智能技术 <br>当前活跃在各电脑围棋赛事里的程序有Martin&nbsp;Muller（1995）的Explorer（EX），陈恳（陈，1989；1990；1992）的Go&nbsp;Intellect（GI），Michael&nbsp;Reiss&nbsp;的Go4++（Go4），陈志行的HandTalk（HT）以及David&nbsp;Fotland&nbsp;的Many&nbsp;Faces&nbsp;of&nbsp;Go（MFG）。针对第2节讨论的博弈树搜索和围棋专用的人工智能技术：战术搜索，死活搜索和势函数，我们报告这些程序的细节。 <br><br>3.1&nbsp;位置表示 <br>所有的程序都有子、串、块的表示，确认串属于某个组的典型方式是采用基于模式的启发来确定串与串之间的关联性。敌方（或块）表示也被用在EX和GI&nbsp;中，启发式用来确定敌方的影响（GI）和领地区域（EX）。 <br>盘面（例如棋块、敌方）表示的对象属性包括它们的死活状态（也指安全性或生命力）、实地数、眼数和势。某些情况下这些属性值由战术搜索决定。 <br>MFG的表示方式中一些组件由评估函数控制（例如块、联接、眼、实地和势）。Go4的盘面只是简单的由评估函数（例如块、眼、安全性、实地）来表示。 <br><br>3.2&nbsp;候选走法 <br>通常，由模式或更常见的是由基于规则的专家系统产生候选走法。走子产生过程最后是通过（线性的或加权求和的）相加棋盘上所有点的参考值为合适的走法给出一个分值。全盘评估一般选最高得分点作为下一手的落子点。 <br>不同程序由全局水平变量估值得出的候选走法数也有所不同：GI（陈，1997）有12手，MFG有10手，而Go4至少有50手。程序变量保持的规则数：EX大约100，MFG大约200。GI含有约20个走子算法，它们或者基于模式库，或者基于面向目标的搜索，或者基于启发式规则（可能含有大量的规则）。 <br>模式通常既包含低级信息也包含高级信息。低级信息与黑白子的位置有关，那些点必须是空着的，已经被子占据的点不在此列。高级信息则是关于气的数量、安全性、眼位和领地的信息。模式匹配不仅与子的配置匹配，而且跟包含在子或串里的任何高级需求有关。大量的模式匹配计算是很耗时的，并且由于棋盘上的对称性而变得更复杂。这已经导致了发展特殊算法来克服与模式匹配有关的问题（比如MFG的哈希函数，EX的串匹配）。 <br>知识以不同的方式组合到程序当中：一些程序几乎完全依据第一原则工作，另一些根据存储的模式匹配当前位置。不同的程序其模式数量相差很大：Go4约有15个；MFG大约2000个；而EX则在3000个左右。有些程序也包含开放的走法模式数据库（定式）（例如，MFG含有约45，000个定式模式）。 <br><br>3.3&nbsp;目标&nbsp; <br>多数情况下，大量的实地比起少量的实地加相应的外势更合乎需要。尽管有时也存在着实地和外势间地转化（特别是在布局和中盘阶段）。然而，虽然实地的启发式评估是可能的，实地依然不总是形势优劣最好的指示明灯。在对局的早期阶段，占有大量的实地可能表明一种过于集中的形势，从实地安全的角度看，这样的形对对局的后面阶段或许是有害的。开局造就最大可能的势而不是实地通常导致局末对更多实地的追求。外势是可能用来确定形势优劣的子目标的一个例子。 <br>用来确定形势优劣的大量子目标的相对优先度在电脑围棋中看来没有一致性可言。典型的块和实地的死活状态（安全性）被包含在目标和子目标中。在手谈中，战术手段是重点，而MFG集中在联接性、眼和块的生命力。Go4则好像完全贯注于联接性上，几乎任何东西都是从联接概率图上派生（直接或间接地）出来。 <br><br>3.4&nbsp;评估过程 <br>评估围棋的形势是个很慢的过程（例如，比起国际象棋程序的每秒10,000-100,000次评估，MFG是以低于每秒10次的速度完成对整局棋不超过10,000种全盘形势的评估）。由于比赛时间的限制，程序执行的全局评估数通常是有限的（例如，MFG在选择下一步时全局的评估数不超过100）。 <br>Go4的50种候选走法中每一个都通过一个六步的过程来评估：1.启用一个联接概率图。对于盘面上的每一个黑子和白子，计算它与32个（实际的或假定的）友好点的联接概率（要处理大量的数据）。确定联接性还要用到战术搜索；2.棋块由联接图和战术搜索来确定；3.眼位（利用模式）由联接性和棋块数据确定；4.眼位的数量确定了棋块的安全性；5.每个子的安全性按联接概率图的比率辐射并在所有棋子上相加；6.黑白领地由辐射值估计。黑白领地的差别作为一个给定走法的评估结果返回。 <br>MFG的评估是个多步过程，并且在很大程度上依赖于战术搜索。战术搜索检查所有少于四口和一部分有四口气的串以确定是不是死串。战术搜索也被用来鉴别联接性和眼位。在这一环节，串组成了棋块。棋块的生命力由基于死活的考虑（例如，联接、眼位等）决定，并且用来确定黑白子在盘面每个点（在-50至+50的范围之间）行使控制的总量统计。在总和每个点的值的基础上确定领地，给出最终的估计值。多达6轮的静态搜索可以被执行，有时用一个特殊的模式集找出能使形势稳定下来的局部走法。 <br>GI的评估用在做全局搜索时。如果所有候选走法中有一种走法的得分要明显高于其它的走法，它就被选为要走的下一步。如果候选走法中有些走法的得分大致相等，靠评估带来方便的全局搜索决定选择走哪一步。评估时，敌子的安全性是为盘上每个点指定一个在-64到+64之间的黑白控度的基础，所有点的分值加起来返回一个评估值。全局搜索检查的步数不多于6到7步，搜索的深度不超过6层。 <br><br>3.5&nbsp;战术搜索 <br>战术搜索是有选择的、面向目标的搜索，并且为一大堆目的而使用，包括确定串是死是活（Go4，MFG，EX，GI）、联接是安全的还是可被切断的（Go4，MFG）、是否可以形成眼位（MFG）、产生候选走法（GI）和确定棋块的死活（EX）。就是在全局的水平，战术搜索也要用来做棋步产生和评估。战术评估和全盘评估有区别，这跟搜索的目标（例如，一个串的气的数量）有关。由于时间上的制约，战术搜索通常在节点数、枝因子和层的深度上受到限制。因此，尽管象死活这类的问题通常被认为是战术性的，棋子却可以在战略上就死去了，即使它们可能不能通过战术手段被抓获。由此，从围棋评估的方方面面看，战术搜索只是一种启发式装备而已。 <br>MFG提供了一个战术搜索操作的很好的例证（通过&#8220;战术家&#8221;）：每个有三口或更少的气的串和许多有四口气的串被&#8220;战术家&#8221;检查过。每个串检查两次，一次白先走一次黑先走。&#8220;战术家&#8221;决定一个串是否被抓（比如，即使它先走也不能活）、被威胁（比如，如果它先走则活，后走则死），或者是牢固的。&#8220;战术家&#8221;依靠简单的启发式（例如，气数和联接性）。 <br>&#8220;战术家&#8221;有两个分离的走子器；一个执行攻击走法，一个执行防卫走法。走子器建议的走法按一些规则分类，这些规则包括二次气（气的气）、切点和简单的眼形。一旦分类，根据依赖走法分类的质量的搜索的表现，一种&#945;-&#946;深度优先搜索被派上用场。走子和分类解释了多数时间依靠战术搜索的原因。 <br>战术搜索直接针对目标并被限制一个最大节点数。抓子时这个限制是大约100，然而当只有一步可走时就不考虑这个限制。采用这种方式，可以毫不费力地确定征子的胜方。根据第一层走子产生赋予走法的分值，一次搜索的节点数分配到树枝中，因此不同的树枝可能在不同的深度结束。每一成功的层的枝因子被&#8220;战术家&#8221;逐步强化；枝因子从第一层5降到第五层的1或2。<br>对局过程中，MFG作大约100,000-150,000次战术搜索，以每秒2,000-2,500个节点的速度遍历1.5-2百万个节点。平均起来每次战术搜索访问约10-20个节点，尽管由于一些搜索因节点限制而终止，许多搜索访问过节点数要少于5个。 <br><br>3.6&nbsp;死活搜索 <br>不是所有的程序都做明确的死活分析，很多程序对此使用了战术搜索。MFG用与它的战术搜索过程类似的方式作死活分析，除了它是在块上作死活分析而不是分析串。 <br>一个静态死活评估器在多步过程中确定每个块的死活状态，而没有以从简单的结构中进一步产生复杂结构的方式向前搜索。静态死活评估器使用&#8220;战术家&#8221;并且为棋块中的每个合适的串至少调用两次。 <br>死活搜索是直接面向目标的（例如，拯救或杀死一个棋块）。如果在一个特定点没有获得搜索目标，合适走法由死活搜索引擎自身的走法器产生，并继续搜索。为了在一次死活搜索期间确定目标是否已经达到，静态死活评估器在每个点被调用。死活搜索引擎使用深度优先&#945;、&#946;搜索，每一个特定的枝的搜索深度由启发式决定。搜索树的大小是强制性的，通常可以达到7层的深度和20个节点的大小。死活搜索是很慢的，整棵树要装到缓存里以减少花在重复搜索上的开销。死活搜索的缓慢也意味着它不会被用在全盘评估中。 <br><br>3.7&nbsp;势函数 <br>势是一种围棋概念，它表明了每一方棋子对空点的最大可能的控制潜力。通过确保开局时子力投放不过于集中，棋手在后面的对局中将取得最大限度获得领地的机会。 <br>势通过势函数建立可计算模型（Zobrist，1969；Ryder，1971；Chen，1989）。通常，子力以盘上每个点的辐射影响值的和（黑白子辐射正负相反的值）对周边的点施加辐射影响（MFG的黑白子的势是分离的）。子力辐射按距离函数递减：GI是2的距离次方分之一，MFG是距离分之一。但过于依赖势函数的程序表现不佳（EX和Go4不再使用势函数，尽管Go4的辐射函数很象一个势函数，EX采取另一些措施，象同色点或可联接点的距离）。 <br>应用势的启发包括确定联接性和敌子（GI），以及确定领地（MFG）。MFG的块势初始值依赖于块的强度等，强壮的块比弱块或将死的块辐射更大的影响。这也意味着死块辐射负影响等，因为它对敌方有利。在MFG和GI中势都没有通过子辐射；MFG也没有通过敌链辐射影响。 <br><br>4．&nbsp;讨论 <br>当前的围棋程序都使用了一定量的&#8220;知识&#8221;。由于建立在设计者下棋成功经验的启发之上，每个程序都可被看作一种（可能是含蓄的）围棋理论的一次以经验为依据的实验。围棋理论成立的关键要靠数据结构的选择，因为它们决定了编码不同类型知识的难易和应用这些知识的计算开销。随着程序员同时在围棋和电脑围棋方面获得技能，程序会有发展（例如，在过去的十五年中随着&nbsp;Fotland&nbsp;的棋力从15级发展到2段，MFG也增长了棋力并且代码长度增加到目前的4万行）。程序的性能由它最弱的部件决定，而向程序增加新知识的难易是提高程序性能的重要部分。 <br>由此可见，电脑围棋领域在关于怎样构筑一个围棋程序或者指配不同围棋知识的优先性（例如，Go4注重联接性而MFG注重死活）方面还没有一致性可言。必须提到的一点是：关于人类是怎样下围棋的至今也没个一致的说法，这是目前认知科学研究的一个课题（见Saito&nbsp;&amp;&nbsp;Yoshikawa，1977，作为回顾）。这个领域的任何进展都会对围棋理论有个直接的促进，并可能导致电脑围棋程序算法的改进。 <br>本文对目前比较成功的几个程序作了比较。通过这项工作，我们在博弈树搜索的框架内分析了围棋，并通过对示例电脑围棋编程的观察把有关的问题暴露出来。这种困难在电脑围棋领域是常识，但在更为广泛的人工智能范畴却很少被人们认识和接受。围棋全盘评估需要确定棋块的死活状态，不管是通过死活搜索还是战术搜索，评估是非常消耗计算资源的。缺乏快速有效的评估函数是电脑围棋遭遇的一个基本问题，并且和巨大的树枝因素、用户和电脑比赛的实时需求（一般来说，相对于国际象棋的每秒180步围棋每秒只有24步）等搅和在一起。因此，计算机国际象棋通常要用到的完全广度博弈树搜索在电脑围棋里是行不通的。 <br>除了所列出的围棋领域固有的问题外，本文还探讨当前的程序怎样地处理这些问题，由此为未来的围棋程序员提供一个跳板。请注意电脑围棋是个商业的领域，程序本身（不是学术论文）就是它的主要产品。跟其它的参考不同的是，这里报告的细节都已经通过个人交流征询了（慷慨贡献自己的知识的）程序作者本人的意见，并且有相关的电脑围棋邮件列表&lt;computer-go@anu.edu.au&gt;和FTP站点&lt;ftp://igs.nuri.net/Go/comp/&gt;的信息为依据。 <br>电脑围棋的挑战性在于要扩展当前的围棋理论或发展新理论——特别是与评估有关的，针对实时限制设计合适的数据结构和算法，解决知识瓶颈。目前还没有一个有力的程序使用学习技术，尽管有过几次这样的尝试（如，Pell，1991；Schraudolph,&nbsp;Dayan&nbsp;&amp;&nbsp;Sejnowski，1994；Donnelly,&nbsp;Corr&nbsp;&amp;&nbsp;Crookes，1994）。回顾这些程序已经超出了本文的范围，但我们推测这些程序也没有成功，因为它们的设计者的含蓄的围棋理论缺乏对围棋复杂性的必要理解。怎样把学习能力赋予现有的程序（或者它们暗示的围棋理论）是个等待解决的问题。 <br>
<img src ="http://www.blogjava.net/ThinkingTalking/aggbug/129547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ThinkingTalking/" target="_blank">ThinkingTalking</a> 2007-07-11 11:06 <a href="http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IT业界基础名词解释：人工智能</title><link>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129545.html</link><dc:creator>ThinkingTalking</dc:creator><author>ThinkingTalking</author><pubDate>Wed, 11 Jul 2007 03:03:00 GMT</pubDate><guid>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129545.html</guid><wfw:comment>http://www.blogjava.net/ThinkingTalking/comments/129545.html</wfw:comment><comments>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129545.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ThinkingTalking/comments/commentRss/129545.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ThinkingTalking/services/trackbacks/129545.html</trackback:ping><description><![CDATA[AI(Artificial Intelligence) 人工智能
<p>　　人工智能是计算机科学的一个分支，它企图了解智能的实质，并生产出一种新的能以人类智能相似的方式作出反应的智能机器，该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 </p>
<!--newszw_hzh_begin-->
<img src ="http://www.blogjava.net/ThinkingTalking/aggbug/129545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ThinkingTalking/" target="_blank">ThinkingTalking</a> 2007-07-11 11:03 <a href="http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模式识别的原理是什么</title><link>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129543.html</link><dc:creator>ThinkingTalking</dc:creator><author>ThinkingTalking</author><pubDate>Wed, 11 Jul 2007 02:52:00 GMT</pubDate><guid>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129543.html</guid><wfw:comment>http://www.blogjava.net/ThinkingTalking/comments/129543.html</wfw:comment><comments>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ThinkingTalking/comments/commentRss/129543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ThinkingTalking/services/trackbacks/129543.html</trackback:ping><description><![CDATA[<p><font face=宋体 size=2><strong><font size=3>模式识别</font></strong>，就是通过计算机用数学技术方法来研究模式的自动处理和判读。我们把环境与客体统称为&#8220;模式&#8221;。随着计算机技术的发展，人类有可能研究复杂的信息处理过程。信息处理过程的一个重要形式是生命体对环境及客体的识别。对人类来说，特别重要的是对光学信息（通过视觉器官来获得）和声学信息（通过听觉器官来获得）的识别。这是模式识别的两个重要方面。市场上可见到的代表性产品有OCR(Optical Character Recognition),语音识别系统。<br><br>计算机识别的显著特点是速度快，准确性高，效率高。完全可以取代人工录入。<br><br>识别过程与人类的学习过程相似。以&#8220;汉字识别&#8221;为例：首先将汉字图象进行处理，抽取主要表达特征并将特征与汉字的代码存在计算机中。就象老师教我们这个字叫什么如何写记在大脑中。这一过程叫做&#8220;训练&#8221;。识别过程就是将输入的汉字图象经处理后与计算机中的所有字进行比较，找出最相近的字就是识别结果。这一过程叫做&#8220;匹配&#8221;。<br><br>OCR还有一个重要组成部分是对具体对象的&#8220;版面分析&#8221;或称&#8220;分割&#8221;。属于图象处理范畴。比如在一篇文章中将每个独立的汉字切分出来；名片识别中要将每个字段切出来。切分的难度不亚于识别。</font></p>
<p><font face=宋体 size=2>以下给出OCR的常用概念与技术指标：</font></p>
<p><font face=宋体 size=2><strong><em>识别率</em></strong>：正确识别的字符占所有测试字符的比例。是大量字符测试后的统计结果。<br><em><strong>拒识率</strong></em>：无法识别(没有给出识别结果)的字符占所有测试字符的比例。<br><em><strong>误识率</strong></em>：将甲识别成乙等识别错误的字符占所有测试字符的比例。<br><em><strong>识别速度</strong></em>：基于某种速度计算机的识别一个字符的时间或一秒钟能识别字符的个数。<br><em><strong>扫描分辨率</strong></em>：指扫描仪光学源的物理分辨率。分辨率越高获得的图象越清晰。</font></p>
<p><font face=宋体 size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 那么人的模式识别是什么呢？看来主要的还是要依靠原先的认知结构。在专家记忆中有5到10万个组快，且都按照层次网络结构进行连接，而且易于提取。那么在认识或者学习新东西的时候，很容易对&#8220;模式&#8221;进行识别了。</font></p>
<img src ="http://www.blogjava.net/ThinkingTalking/aggbug/129543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ThinkingTalking/" target="_blank">ThinkingTalking</a> 2007-07-11 10:52 <a href="http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么是模式识别 </title><link>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129542.html</link><dc:creator>ThinkingTalking</dc:creator><author>ThinkingTalking</author><pubDate>Wed, 11 Jul 2007 02:45:00 GMT</pubDate><guid>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129542.html</guid><wfw:comment>http://www.blogjava.net/ThinkingTalking/comments/129542.html</wfw:comment><comments>http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ThinkingTalking/comments/commentRss/129542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ThinkingTalking/services/trackbacks/129542.html</trackback:ping><description><![CDATA[<div>
<p><font face=宋体><span>模式识别是一种从大量信息和数据出发，在专家经验和已有认识的基础上，利用计算机和数学推理的方法对形状、模式、曲线、数字、字符格式和图形自动完成识别的过程。模式识别包括相互关联的两个阶段，即学习阶段和实现阶段，前者是对样本进行特征选择，寻找分类的规律，后者是根据分类规律对未知样本集进行分类和识别。广义的模式识别属计算机科学中智能模拟的研究范畴，内容非常广泛，包括声音和语言识别、文字识别、指纹识别、声纳信号和地震信号分析、照片图片分析、化学模式识别等等。计算机模式识别实现了部分脑力劳动自动化。</span><span XML:LANG="EN-US"> </span></font></p>
<p><font face=宋体><span>模式识别－－对表征事物或现象的各种形式的（数值的，文字的和逻辑关系的）信息进行处理和分析，以对事物或现象进行描述、辨认、分类和解释的过程，是信息科学和人工智能的重要组成部分。</span></font></p>
<p><font face=宋体><span>模式还可分成抽象的和具体的两种形式。前者如意识、思想、议论等，属于概念识别研究的范畴，是人工智能的另一研究分支。我们所指的模式识别主要是对语音波形、地震波、心电图、脑电图、图片、文字、符号、三位物体和景物以及各种可以用物理的、化学的、生物的传感器对对象进行测量的具体模式进行分类和辨识。</span></font></p>
<p><span><font face=宋体>模式识别问题指的是对一系列过程或事件的分类与描述，具有某些相类似的性质的过程或事件就分为一类。模式识别问题一般可以应用以下</font></span><span XML:LANG="EN-US">4</span><font face=宋体><span>种方法进行分析处理。</span></font></p>
<p><font face=宋体><span>统计模式识别方法：统计模式识别方法是受数学中的决策理论的启发而产生的一种识别方法，它一般假定被识别的对象或经过特征提取向量是符合一定分布规律的随机变量。其基本思想是将特征提取阶段得到的特征向量定义在一个特征空间中，这个空间包含了所有的特征向量，不同的特征向量，或者说不同类别的对象都对应于空间中的一点。在分类阶段，则利用统计决策的原理对特征空间进行划分，从而达到识别不同特征的对象的目的。统计模式识别中个应用的统计决策分类理论相对比较成熟，研究的重点是特征提取。</span></font></p>
<p><font face=宋体><span>人工神经网络模式识别：人工神经网络的研究起源于对生物神经系统的研究。人工神经网络区别于其他识别方法的最大特点是它对待识别的对象不要求有太多的分析与了解，具有一定的智能化处理的特点。</span></font></p>
<p><font face=宋体><span>句法结构模式识别：句法结构模式识别着眼于对待识别对象的结构特征的描述。</span></font></p>
<p><span><font face=宋体>在上述</font></span><span XML:LANG="EN-US">4</span><font face=宋体><span>种算法中，统计模式识别是最经典的分类识别方法，在图像模式识别中有着非常广泛的应用。</span></font></p>
<p>&nbsp;</p>
<p><span><font face=宋体>模式识别研究方向</font></span><span XML:LANG="EN-US"><br>&nbsp;&nbsp;&nbsp; &nbsp;</span><font face=宋体><span>模式识别研究主要集中在两方面，即研究生物体（包括人）是如何感知对象的，属于认知科学的范畴，以及在给定的任务下，如何用计算机实现模式识别的理论和方法。前者是生理学家、心理学家、生物学家和神经生理学家的研究内容，后者通过数学家、信息学专家和计算机科学工作着近几十年来的努力，已经取得了系统的研究成果。</span></font></p>
<p><font face=宋体><span>一个计算机模式识别系统基本上事有三部分组成的，即数据采集、数据处理和分类决策或模型匹配。任何一种模式识别方法都首先要通过各种传感器把被研究对象的各种物理变量转换为计算机可以接受的数值或符号（串）集合。习惯上，称这种数值或符号（串）所组成的空间为模式空间。为了从这些数字或符号（串）中抽取出对识别有效的信息，必须对它进行处理，其中包括消除噪声，排除不相干的信号以及与对象的性质和采用的识别方法密切相关的特征的计算（如表征物体的形状、周长、面积等等）以及必要的变换（如为得到信号功率谱所进行的快速傅里叶变换）等。然后通过特征选择和提取或基元选择形成模式的特征空间。以后的模式分类或模型匹配就在特征空间的基础上进行。系统的输出或者是对象所属的类型或者是模型数据库中与对象最相似的模型编号。针对不同应用目的，这三部分的内容可以有很大的差别，特别是在数据处理和识别这两部分，为了提高识别结果的可靠性往往需要加入知识库（规则）以对可能产生的错误进行修正，或通过引入限制条件大大缩小待识别模式在模型库中的搜索空间，以减少匹配计算量。在某些具体应用中，如<a href="http://www.china-vision.net/bbs7/index.html">机器视觉</a>，除了要给出被识别对象是什么物体外，还要求出该物体所处的位置和姿态以引导机器人的工作。</span></font></p>
<p>&nbsp;</p>
<p><font face=宋体><span>模式识别在实际中的应用</span></font></p>
<p><font face=宋体><span>模式识别已经在天气预报、卫星航空图片解释、工业产品检测、字符识别、语音识别、指纹识别、医学图像分析等许多方面得到了成功的应用。所有这些应用都是和问题的性质密切不可分的，至今还没有发展成统一的、有效的可应用于所有的模式识别的理论。当前的一种普遍看法是不存在对所有的模式识别问题都使用的单一模型和解决识别问题的单一技术，我们现在拥有的是一个工具袋，我们所要做的是结合具体问题把统计的和句法（结构）的识别方法结合起来，把统计模式识别或句法模式识别与人工智能中的启发式搜索结合起来，把人工神经元网络与各种以有技术以及人工智能中的专家系统，不确定方法结合起来，深入掌握各种工具的效能和应用的可能性，互相取长补短，开创模式识别应用的新局面。</span></font></p>
</div>
<img src ="http://www.blogjava.net/ThinkingTalking/aggbug/129542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ThinkingTalking/" target="_blank">ThinkingTalking</a> 2007-07-11 10:45 <a href="http://www.blogjava.net/ThinkingTalking/archive/2007/07/11/129542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>