采用神经网络的手写识别的制作方法

文档序号:6567863阅读:172来源:国知局
专利名称:采用神经网络的手写识别的制作方法
采用神经网络的手写识别 背景 近年来,计算机通常包含带用户可用指示笔在其上进行书写的触敏屏幕的用户输 入模式。该种方式让用户输入手写电子墨水,对多种应用来说,这被广泛认为是一种与计算 机交互的最便捷方式。为了让这种用户输入模式更可靠,开发了手写识别器以解释用户的 手写输入。 随着技术的成熟,现有的各种手写识别器采用执行手写输入的初始分析和分类的 神经网络。神经网络的使用成为手写识别的一个重要发展;识别的精确性取得了成倍的提 高。为了创建精确的神经网络,需要对神经网络进行训练,即对其反复提供手写输入的实际 样本并给出关于神经网络在手写输入的解释方面是否做出了正确推测的反馈。有效训练同 时意味着从大量不同人中提供手写输入样本。这是因为每个人都有不同的书写风格。如果 用户满意该最终结果,则神经网络应当足够强健以便能够识别出各种各样的书写风格。
鉴于必须获得全部的手写样本,以及必须投入大量时间以正确训练神经网络,因 此从零开始训练神经网络的花费极其巨大。而且,训练通常仅仅针对单个语言来执行。换 言之,对神经网络进行特别训练以识别英文或中文的书写。但因为世界上有多种语言,因此 并不存在针对多种语言的高质量神经网络。事实上,对某些人们了解得比较少的语言,根本 就不存在神经网络。对于计算机和/或软件公司来说,单单为了解比较少的语言构建并训 练神经网络投入足够的经费不足以构成财务激励。
概述
需要一种提供没有神经网络可用或没有足够质量的神经网络可用的语言的手写 识别能力的较不昂贵和/或更为容易的方式。为大量的语言从零开始构建并训练神经网络 是昂贵且耗时的。 因此,此处本发明的各方面涉及从现有神经网络构建新神经网络。基于所需目标 语言选择用于一起始语言的现有神经网络。修正该神经网络以使其可用于识别目标语言的 字符,并且该经修正的神经网络在用于该目标语言的手写识别器中使用。修正包括复制现 有神经网络的一个或多个初步输出。 本发明的另一些方面涉及基于所需目标语言选择一适当的起始语言。这可以由用 户手动和/或由计算机自动执行。可使用主观和/或客观标准来选择适当的起始语言。
本发明的另外一些方面涉及训练经修正的神经网络以更好地识别目标语言。具体 地,可训练所复制的初步输出以对与从其中复制该初步输出的原始初步输出略微不同的输 入组合作出响应。这使新复制的初步输出对起始语言和目标语言之间字符上的微妙差别作 出响应。当然,可以使用训练来使复制的节点对与原始节点所响应的输入组合不止有轻微 差别的输入组合作出响应。 此外,还可以销售一种成套工具,它包含有用于各种不同起始语言的多个不同的 现有神经网络以及计算机可读介质上的软件,该软件帮助用户选择适当的起始语言、对现 有神经网络之一进行修正、和/或进一步对经修正的神经网络进行训练。根据此处的本发 明的再有一些方面,可提供一种"超网络",它是被配置成从多种不同语言中识别字符的相对较大的神经网络。可期望该超网络要比单个语言专用的典型神经网络大得多。通过用程 序设计一屏蔽以阻塞来自该超网络的对于待识别的语言不必需的输出,可以定制使用这种 超网络的手写识别器。在此描述的另一些方面可将超网络用作可被修正或屏蔽的现有网 络,或者甚至是在同一实施例中既被修正又被屏蔽。 根据如下说明性实施例的详细描述,此处的本发明的这些或其它方面将变得显而 易见。 附图简述 当结合附图阅读时,可更好地理解以上概述以及以下说明例性实施例的详细描
述,附图是作为示例而非对所要求保护的本发明的限制被包括在内。


图1是一说明性计算环境的功能框图; 图2是一说明性手写识别器的功能框图; 图3是可在图2的手写识别器中使用的说明性神经网络; 图4是可以作为图3的的神经网络的一部分的说明性隐藏节点; 图5是一说明性神经网络选择过程; 图6和8将目标语言和潜在起始语言进行了比较; 图7和9示出了神经网络的一个说明性修正; 图10是一说明性手写识别器创建过程的流程图; 图11示出了带屏蔽的说明性"超网络"; 图12是神经网络的一部分的功能框图,它说明性地示出了可如何复制初步输出。
说明性实施例的详细描述
说明性计算环境 图1示出了可在其中实现手写识别功能和/或神经网络创建、修正和/或训练的 合适的计算系统环境100的一个示例。计算环境100只是合适的计算环境的一个示例,并 不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境ioo解释为对说明 性操作环境100中示出的任一组件或其组合有任何依赖性或要求。 可以使用其它通用或专用计算系统环境或配置。公知的计算系统、环境和/或配 置的示例包括,但不限于,个人计算机(PC);服务器计算机;诸如个人数字助理(PDA)、平板 式PC或膝上型PC等手持式和其它便携式设备;多处理器系统;基于微处理器的系统;机顶 盒;可编程消费者电子产品;网络PC ;小型机;大型计算机;包含上述系统或设备中的任一 个的分布式计算机环境;等等。 此处的本发明有时可在诸如程序模块等由计算机执行的计算机可执行指令的一 般上下文中描述。 一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特 定任务或实现特定抽象数据类型。分布式计算环境还可在任务由通过通信网络链接的远程 处理设备执行的地方使用。在分布式计算环境中,程序模块可以位于包括存储器存储设备 在内的本地和远程计算机存储介质中。 参考图1,说明性计算环境100包括计算机100形式的通用计算设备。计算机100 的组件可以包括,但不限于,处理单元120、系统存储器130、以及将包括系统存储器130在 内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的 总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构 (ISA)总线、微通道体系结构(MCA)总线、扩展的ISA (EISA)总线、视频电子技术标准协会 (VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机100通常包括各种计算机可读介质。计算机可读介质可以是能够被计算 机100访问的任何可用介质,诸如易失性、非易失性、可移动和不可移动介质。作为示例,而 非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质可包括以 任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等 信息的易失性、非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,随机 存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、闪存或其它存储器技 术、紧致盘ROM (CD-ROM)、数字视频盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其 它磁性存储设备、或能用于存储所需信息且可以由计算机IOO访问的任何其它介质。通信 介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据 结构、程序模块或其它数据,且包含任何信息传递介质。术语"已调制数据信号"指的是这 样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非 限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)(例 如,蓝牙、WiFi、UWB)、光学(例如,红外线)和其它无线介质等无线介质。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸如 ROM 131和RAM 132。基本输入/输出系统133 (BIOS)包含有助于诸如启动时在计算机100 中的元件之间传递信息的基本例程,它通常存储在ROM 131中。RAM 132通常包含处理单元 120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图l示 出了计算机可执行指令形式的软件,包括操作系统134、应用程序135、其它程序模块136和 程序数据137。 计算机100也可以包括其它计算机存储介质。仅作为示例,图1示出了从不可移 动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中 读取或向其写入的磁盘驱动器151,以及从诸如CD R0M、 DVD或其它光学介质等可移动、非 易失性光盘156中读取或向其写入的光盘驱动器155。可以在说明性操作环境下使用的 其它计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、固态RAM、固态ROM 等。硬盘驱动器141通常通过诸如接口 140等不可移动存储器接口连接至系统总线121,磁 盘驱动器151和光盘驱动器155通常由诸如接口 150等可移动存储器接口连接至系统总线 121。 以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机100提 供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动 器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意, 这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不 同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同 的标号是为了说明至少它们是不同的副本。用户可以通过诸如键盘162、触摸垫165(诸如 数字化仪)和指示笔166、以及定点设备161(通常称为鼠标、跟踪球或触摸垫)等输入设备 向计算机100输入命令和信息。触摸垫165可以是单独的物理设备,或者可以与诸如监视 器191等显示设备集成。其它输入设备(未示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常通过耦合至系统总线121的用户输入接口 160耦合至处理单元120,但也可以由其它接口和总线结构,诸如并行端口 、游戏端口 、通用 串行总线(USB)、或IEEE 1394串行总线(火线)连接。监视器191或其它类型的显示设备 也经由诸如视频接口 190等接口连接至系统总线121。视频接口 190除其子集的专用处理 器和存储器之外还可具有高级2D或3D图形能力。计算机100还可以包括其它外围输出设 备,诸如扬声器197和打印机196,它们可以通过输出外围接口 195连接。
计算机100可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在 网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备 或其它常见的网络节点,且通常包括上文相对于计算机100描述的许多或所有元件,尽管 在图1中仅示出了存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN) 171和广 域网(WAN)173,但也可以包括其它网络,诸如因特网。这样的联网环境在办公室、企业范围 计算机网络、内联网和因特网中是常见的。 当在LAN联网环境中使用时,计算机IOO通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机IOO可包括调制解调器172或用于通过诸如因特 网等WAN 173建立通信的另一设备。调制解调器172可以是内置或外置的,它可以通过用户 输入接口 160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机IOO 描述的程序模块或其部分可以远程地存储,诸如存储在远程存储设备181中。作为示例,而 非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连 接是说明性的,且可以使用在计算机之间建立通信链路的其它手段。
手写识别的概述 计算机100可以用软件来编程和/或用硬件和/或固件来配置以识别用户的手写 输入。该手写输入可以采用任何形式,例如电子墨水的形式。在此和在权利要求书中使用 的术语"手写识别"被定义为指的是将手写输入转换为一组与手写输入相对应的字符。"手 写识别器"执行手写识别。"识别"手写输入就是对手写输入执行手写识别。电子手写墨水 通常在诸如个人数字助理(PDA)和平板型个人计算机(通常也被称为平板PC)等多种常规 的计算装置中使用并由其识别。电子墨水可以用任何常规或尚待定义的格式来存储。目前 存在多种墨水存储格式,例如由微软WINDOWS系列操作系统和PalmSource的PALM OS系列 操作系统所使用的格式。 此处以及权利要求书中使用的术语"字符"根据语言(例如,英文,罗马尼亚文,中 文,西伯来文等)可具有不同的含义。主要有三种主要的手写语言类别字母的、音节的、以 及语标的。字母手写语言采用了描述一个单词如何发音的一组定义的字母。但是,在所发 音的单词的每一字母和每一声音之间通常没有一对一的对应性。例如,字母书写语言是英 文和罗马尼亚文,二者都基于拉丁字母表。音节书写语言采用各自表示发音的音节或音素 的一组定义的符号("音节表")。在所发音的单词的每一音节和每一发音之间通常有一对 一的对应性。音节书写语言的一个示例是日文。语标书写语言采用各自表示客观或抽象思 想的一组定义的符号。例如,中文采用一组语标符号。应当注意,许多语言并不单纯是一种 或另一种类别。例如,书写中文包括表示发音的某些符号,而英文包括表示抽象思想的某些 符号(例如,"&"和"$",以及数字)。每一语言因此具有自己的定义字符集,且术语"字符" 的含义取决于所参照的语言。然而,一般而言,此处以及权利要求中采用的术语"字符"指的是正讨论的书写语言所采用的字母表字母、音节、语标符号、语法注释或某些其它符号。从 手写识别所得的字符可以由计算机ioo用任何数据格式来表示。例如,每一字符、单词或短 语可由一独特的预定代码,如由美国信息交换标准代码(ASCII)或统一代码(Unicode)系 统所定义的预定代码来表示。 图2示出了计算机100可如何在功能上被配置成执行手写识别。各种功能可用软 件,硬件,和/或固件来执行,并且可以是操作系统、软件应用程序、设备驱动程序、和/或任 何其它类型的计算机可执行代码的一部分。图2所示的配置是常规手写识别器的代表。如 本示例中所示,手写用户输入可从触摸垫165以电子墨水的形式来收集。计算机100接着 对该墨水执行特征化(featurization)201。特征化指的是从墨水数据中提取有助于识别过 程的某些特征。这些特征可包括,例如宽度,高度,长度(如坐标对计数和/或坐标空间中 行进的距离,以二维方式考虑或在X和/或Y方向上分开计算)、最大速度、X和/或Y方向 上的方向反转的计数、检测到的尖点以及方向性和/或位置(如相对于墨水样本或书写区 域的垂直位置和/或水平位置)、检测到的墨水交叉以及位置(按照类似于尖点的方式)、 和/或在X和/或Y方向上的傅立叶变换频率分量。 接下来,将特征化201过程中提取的特征提供给神经网络202的一组初步输入。神 经网络202是常规上已知的,并且可以被训练成将一特定的输入组合关联到该初步输入。 应当注意,网络202可以是除神经网络以外的网络。例如,网络202可以是贝叶斯网络、隐 马尔可夫机(HMM)、支持矢量机(SVM)、模板匹配器、和/或动态时间扭曲(DTW)单元。
如图3所示,神经网络202有n个初步输入[IpI^I^…In],以及一组初步输出 [a,b, c…0]。虽然没有示出所有的初步输出,但该示例中的神经网络202具有对英文语言 的每一小写和大写字母、每一数字和每一其它符号的不同初步输出。该初步输出通过诸如 隐藏节点301等"隐藏节点"的网络耦合到初步输入。该隐藏节点可以按层组织,每一层之 间完全互连(如图所示)。但该隐藏节点可以按任何希望的方式组织并互连。每一隐藏节 点可用作一个简单的计算机,这类似于哺乳动物大脑中的生物神经元。使用这种隐藏节点 体系结构的神经网络是公知的。 图4示出了如常规上已知的隐藏节点301的一个说明性配置。在该图中,可以看到 隐藏节点301具有多个输入和单个输出。在该例子中,输入是初步输入的部分或全部。但 取决于隐藏节点在神经网络202中的位置,输入可以是其它隐藏节点的输出。所示的隐藏 节点301从功能上分为求和部分401和阈值部分402。求和部分401提供了每一输入的加 权和,其中每个输入IJ皮分配了一个对应的权重Wx。该求和的结果被提供给阈值部分402, 该部分判定该求和的结果是否满足一个或一组预定准则,比如超出一预定值。如果不满足 该一个或一组准则,则输出一否定结果(例如逻辑0)。但如果满足该一个或一组准则,则输 出一肯定结果(例如逻辑l)。关于可如何配置隐藏节点有许多变化。例如,可以没有阈值 部分402,或者阈值部分402可输出一模拟值而非限于二进制值。可采用调整在各隐藏节点 的阈值部分402中定义的权重w和/或准则的公知技术来训练神经网络202以提供所需的 结果。 —旦神经网络202完成了训练,在该示例中,对初步输入的一组适当的输入数据 将导致一适当的初步输出被选中。初步输出可用各种方式而被认为是被选中。例如,如果 初步输出具有一表示肯定结果的值,则该初步输出可被认为是被选中。或者,如果一初步输出具有一表示在多种可能的肯定结果中比其它初步输出更为肯定的结果的值,则该初步输 出可被认为是被选中。或者,如果一初步输出具有满足一个后一组预定准则(如超出一阈 值)的值,则该初步输出可被认为是被选中。 为了使上述讨论与所示实施例彼此有上下文关系,考虑如下内容。神经网络202 的每一初步输入对应于一个或一组特定的墨水特征。神经网络202的每一初步输出对应于 来自同一给定语言的不同字符。在该特定示例中,假定语言为英文。假定计算机100从墨水 中提取提供了对神经网络202的初步输入值的第一组合的特定特征(还假定神经网络202 已被正确训练)。作为响应,神经网络202选择第一初步输出(例如,初步输出"B")。这意 味着神经网络202已经确定正在分析的特定墨水最可能对应于手写字母"B"。现在假定待 分析的下一段墨水提供了对神经网络202的初步输入值的第二不同组合。作为响应,神经 网络202选择一不同的第二初步输出(例如,初步输出"3")。这意味着神经网络202已经 确定正在分析的特定墨水最可能对应于手写数字"3"。 在某些情况下,神经网络202可响应于初步输入值的给定组合来选择一个以上初 步输出。例如,在第一实例中,可能的情况是,神经网络202不仅选择初步输出"B",而且还 选择初步输出"8"。这是可能的情形,因为大写字母"B"和数字"8"通常看上去相似,尤其 是当字母"B"是印刷时(g卩,不是以草体手写)。或者,当手写是草体时,神经网络202很可 能响应于草体的"e"手写输入而同时选中初步输出"e"和"o"。而且,这两个手写字符看上 去非常相似。处理这种情况的处理技术是已知的(例如,通过检查该字符的上下文,诸如通 过将整个单词与已知的词典进行对比,以帮助确定正在书写哪一字符)。
再参考图2,后处理功能205可接收并解释来自神经网络202的初步输出。虽然在 理论上神经网络202的原始初步输出本身指示了与手写输入相对应的已识别字符,但实际 上可以预期有大量误差。这种误差大部分是由于每个人的手写的不完美性和怪癖;每个用 户的手写是不同的,并且每个用户每次并非以完全相同的方式来书写。由此,所期望的是添 加一后处理功能205,这实质上通过使由神经网络202的初步输出标识的已识别字符彼此 有上下文关系来滤除大多数误差。这可通过采用引用语言模型204的搜索引擎来执行。后 处理功能205和语言模型204均是公知的。 语言模型204定义了针对所预期的已识别文本的各种规则或方针。这些规则可包 括相关语言中的已知单词的列表、一组语法规则、一组特殊格式(例如,日期,时间等)、双 字母组(bi-gram)和/或三字母组。每次神经网络202识别一新字符,后处理功能205就 参考语言模型204,以查看最新识别的字符是否满足任何一种语言模型规则。这是一个迭代 且动态的过程;在识别每一个新字符时,做出并给出应应用哪些语言规则的假设。该后处理 功能也是公知的。基于该语言模型规则,后处理功能205输出最终的已识别文本。
重复使用现有网络 如前所述,许多手写识别器利用神经网络来帮助解释手写输入。通常训练神经网 络来识别一种语言的书写。例如,可存在英文神经网络、法文神经网络和日文神经网络。每 个神经网络可根据语言来识别出其自己的唯一字符集。此外,使用为给定语言训练的神经 网络的识别器也将使用与该给定语言相一致的特定语言模型。例如,可独立存在英文,法文 和日文语言模型。已知的手写识别器由此采用了用于给定语言的神经网络和用于该给定语 言的语言模型。
但是,还有对其不存在或不容易得到经训练的手写识别神经网络的大量可能的语 言。这是因为,如前所述,正确训练用于给定语言的神经网络是非常昂贵的。正确训练通常 涉及利用即使没有成千也有上百人的手写样本,每个手写样本包括字符、单词和其它符号 的各种各样的不同组合。 然而,希望能提供用于对其还没有可接受的手写识别器可用的各种语言的手写识 别功能。如将更加详细地讨论的,代替如过去所做的一样从零开始训练神经网络,为了识别 给定语言的书写,可重复使用并修正现有的已预先训练的神经网络来识别之前训练网络来 识别的其它语言。相比于从零开始训练新的神经网络,重复使用现有神经网络可以节省大 量的时间和费用。 通常,参考图IO,可按照如下方式重复使用和修正神经网络来识别目标语言。在步 骤1001,选择一目标语言。在步骤1002,基于该目标语言选择一起始语言。用于所选起始 语言的现有神经网络可以已被预先训练来识别该起始语言中的手写字符。起始语言可基于 目标语言以及其它因素来选择。在步骤1003,比较目标语言字符和起始语言字符,并且基 于被比较的两字符之间的视觉相似性来确定二者之间的对应性。如果确定二者的对应性不 够,则步骤1004使该过程返回到步骤IOOI,选择为一不同的起始语言选择的神经网络。但 是,如果有足够的对应性,则在步骤1005,复制特定的初步输出,并将这些副本分配为表示 目标语言中并非同样存在于起始语言中的字符。以下章节将讨论该说明性过程的细节。
网络选择 为重复使用现有的神经网络,首先应当从一组现有神经网络中选择一特定的现有 神经网络。例如,如图5所示,可以有一组潜在候选神经网络(网络A、网络B、网络C和网 络D)。假定网络A是为日文书写训练的,网络B是为意大利文书写训练的,网络C是为英文 书写训练的,网络D是为西伯来文书写训练的。影响选择哪一现有神经网络的因素可包括 每一可用的现有神经网络的语言("起始语言")、神经网络的训练质量和精确度、以及需要 神经网络的语言("目标语言")。出于如以下进一步描述的将变得清楚的原因,起始语言 越接近目标语言, 一般就能期望更好的结果。例如,如果目标语言是罗马尼亚文,则采用网 络A(例如,日文网络)很可能无法提供可接受的结果。这是因为,即使不是全部,也有大多 数日文字符一般看上去与罗马尼亚字符有很大的不同。另一方面,一种合理的起始语言可 能是网络C(如英文网络)。这是因为罗马尼亚语言有许多与英文通用的字符,尤其是因为 二者都基于同一拉丁字母表。罗马尼亚和英文字母表之间的主要差别例如是对罗马尼亚文 中变音符的使用。 一般而言,起始语言中与目标语言的不同字符具有一对一的等同对应性 的字符越多,则该起始语言就越好。而且,起始语言中在外观上与目标语言的不同字符非常 相似的字符越多,该起始语言就越好。 目标语言罗马尼亚文与英文和西伯来文两个潜在起始语言的比较在图6中示出。 图6的表示出了将目标语言罗马尼亚文的字符与英文和希伯来文中看上去类似于罗马尼 亚文的每一字符的字符进行匹配的尝试。如可以见到的,对罗马尼亚文的所有字符,可以相 对容易地找到英文中的匹配字符。例如,许多罗马尼亚字符(例如,"A"、"B"和"C")与英 文字符相同。其它罗马尼亚字符尽管与英文字符相同,但也是非常接近的。例如,罗马尼亚 字符"A"(带短音符号的字母A)看上去与英文字符A相当相似。罗马尼亚字符"T"(带 下加符的字母T)看上去与英文字符T相似。另一方面,罗马尼亚字符中并没有很多看上去与西伯来字符相似。尽管存在某些良好匹配(诸如罗马尼亚字符"T"与西伯来字符"7"相 比,罗马尼亚字符"X"与西伯来字符"JT相比),但多数是较差的匹配。例如,西伯来字符
"P"是与罗马尼亚字符"F"和"P"的相对较差的匹配。事实上,罗马尼亚文中有存在与西 伯来文无论如何都没有良好匹配的某些字符,例如"M"。 一个合理的结论是当目标语言是 罗马尼亚文时,西伯来文作为起始语言是一个相对较差的选择;而英文作为起始语言将是 一个较好的选择。应当注意,图6中的比较可以通过仅示出罗马尼亚文的大写字母表来简 化。但是,可以如所需地针对目标语言的任一个字符或全部字符进行这样的比较,例如,数 字、符号、和语法记号。 目标语言与候选起始语言的比较可以由人和/或计算机执行。例如,该比较可依 赖于人做出的主观比较。作为替代或除此之外,该比较可以依赖于一计算机算法,该计算 机算法对目标和起始语言中的字符作出基于统计的对比,得到基于目标语言的用户输入的 一个或多个建议的最优起始语言。此外,无论比较是通过人主观执行和/或由计算机自动 执行的,都会得出目标语言中的字符与一种或多种起始语言中的字符之间建议的一对一比 较。例如,这一 比较无论是由人主观执行和/或由计算机自动执行的,都得出图6所示的比 较表。 如下即将讨论的,目标语言与一种或多种起始语言的比较结果可用来判断如何修
正起始语言神经网络,这最终将得到用于该目标语言的手写识别器。
网络修正 —旦确定了应采用哪种起始语言,就选择为该起始语言训练适当的现有神经网 络。参见图7,示出了这样一个现有神经网络701(还包括将在以下进一步讨论的修正)。在 此示例中,神经网络701是英文语言的已训练神经网络(例如,图5中的网络C),而目标语 言是罗马尼亚文。如先前结合图6所讨论的,英文和罗马尼亚文的字符相对彼此相似。鉴 于此,需要对神经网络701进行相抵较小的修正以允许其正确识别罗马尼亚字符。为了修 正神经网络701,创建神经网络701的特定初步输出的副本(即,复制品)702。换言之,创 建冗余输出节点。 虽然可对神经网络701的任何初步输出进行复制,但在该示例中,只复制了某些 特定初步输出。具体地,复制那些看上去与罗马尼亚字符相似但并不完全匹配的初步输出。 例如,参考图8,包围在黑体字边框内的英文字符表示那些看上去与对应的罗马尼亚字符相 似,但并不完全匹配的英文字符。这些英文字符包括"A"、"I"、"S"和"T"。还有其它一些, 但图8中仅考虑了大写字母。复制所选初步输出的目标是创建可用于表示现有起始语言神 经网络当前无法支持的目标语言字符的新输出。由此,创建初步输出"A"的两个副本以分 别表示罗马尼亚字符"A"和"A"(带长音符号的字母A),创建初步输出"I"的一个副本来
表示罗马尼亚字符"i",创建初步输出"s"的一个副本来表示罗马尼亚字符"s",并创建初
步输出"T"的一个副本来表示罗马尼亚字符"T"。在生成这些副本702时,经修正的神经 网络因而具有更大总数的初步输出。 例如,图7示出了上述新复制的初步输出初步输出"A"被复制两次以产生两个新 的初步输出,初步输出"I"被复制一次以产生一个新的初步输出,初步输出"S"被复制一次 以产生一个新的初步输出,初步输出"T"被复制一次以产生一个新的初步输出。如下将进一
步讨论的,每一初步输出被复制所需次数以对相似但并不包括在起始语言中的新字符提供新的初步输出。为了复制初步输出,复制分配给定义初步输出的输出节点的输入的加权输 入。也复制分配给所复制的加权输入的权重。这些权重将一个或多个隐藏节点连接到初步 输出节点。该隐藏节点因此保持不受干扰,除了其中的一个或多个现在将具有附加的输出 连接,以说明对初步输出节点的加权输入的新副本。这一概念可参见图12来更好地解释, 图12示出了神经网络的多个隐藏节点,包括隐藏节点1201-1204。该神经网络还具有多个 初步输出,其每一个都对应于一不同的初步输出节点,诸如初步输出节点1205和1206。图 12所示的体系结构仅仅是说明性的,并且为简化起见仅示出了神经网络的一部分。在该示 例中,将复制对应于初步输出节点1206的初步输出。初步输出节点1206具有权重为wl和 w2的两个输入。由此,创建了同样具有权重为wl和w2的相同的两个输入的新初步输出节 点1207。当然,实际上,神经网络可以提供对每一初步输出节点的比图12所示的更多或更 少的输入。 本领域的技术人员在受到指示时很容易能够复制初步输出。在复制时,所复制的
初步输出将按照与原始的初步输出相同的方式对初步输入的所有组合做出响应。例如,新 复制初步输出"A"按照与原始的初步输出"A"相同的方式对初步输入的所有组合做出响应。 这样,修正了神经网络701以包括对与起始语言字符不同的每个目标语言字符的 附加初步输出。接下来将讨论在被配置成识别手写目标语言的手写识别器中如何实现神经 网络701的经修正的形式。 识别器内的实现/经修正的神经网络的训练 神经网络701的经修正的形式可以用于手写识别器中,诸如图2所示的手写识别 器。为实现这个过程,后处理功能205和语言模型204可被配置成正确地解释并响应于新 添加的初步输出。由此,新初步输出副本702可按照副本702已知来表示目标语言中其相 应的新字符的方式来耦合到识别器系统。在该示例中,每一个新副本702可由后处理功能 205来解释以分别表示为"入""人""|""§""丁"。这在图9中示出。如图3中一样,为简化起 见仅示出了部分的初步输出。但实际上,期望经修正的神经网络如所需且恰当地具有针对 要添加到目标语言中的每一额外字符的新初步示出。 例如,响应于罗马尼亚文字符"§"的手写输入,经修正的神经网络701将同时选择 初步输出"S"和初步输出"S"两者。后处理后功能205然后可对"S"和"S"两者的概率将 手写输入与语言模型204相关,以检查上下文是否指示了哪一个更恰当。应当注意,在该示 例中,语言模型204将用罗马尼亚文语言模型来替换,包括例如罗马尼亚文单词和记号的 字典列表。因为手写识别器无法在手写的"S"和"S"之间进行区分,而且因为某些罗马尼亚 单词可以仅通过单个字符"S"或"S"来彼此区分,因此这可能是或也可能不是一个完善的 方案。换言之,尽管手写识别器一般能正常工作,但可能存在更希望能够在诸如"S"和"S" 等两个相似字符之间进行区分的情况。 因此,可能希望对经修正的神经网络701进行进一步训练以识别特定起始语言字 符与对应的目标语言字符之间的差别。这涉及对经修正的神经网络701进行训练,使得曾 经是原始的对应初步输出的相同副本的初步输出不再是相同的副本。相反,每一副本可响 应于与其对应的原始初步输入不同的初步输入组合来选择。例如,可按照可在两字符之间 进行区分的已知方式,用手写字符"S"和"S"来训练经修正的神经网络701。在训练完成后,
12经修正的神经网络701理想地响应于手写"S"仅仅选择初步输出"S",而响应于手写"§ "仅 选择初步输出"§"。该训练可以针对任何一个以及所有的所复制的初步输出来执行。
因为现有神经网络701在修正前都已经对起始语言进行了训练,因此可期望目标
语言所需的额外训练将少于对该目标语言从零开始训练神经网络。
"超网纟各" 现在参考图ll,可使用上述方法或使用任何其它过程来创建"超网络"llOl。例 如,可通过对一系列多种不同语言迭代地复制初步输出来扩展神经网络701 。不同语言可以 相关,诸如所有都基于拉丁字母表,或者它们可以不相关。无论是如何创建的,总会创建包 括表示用于多种不同语言的字符的初步输出01:0m的大型神经网络1101。例如,神经网络 1101可包括针对英文字符集和罗马尼亚字符集的初步输出。 这个大型神经网络1101连同屏蔽1102 —起可在被动态配置成识别针对其训练了 神经网络701的所有语言的一个子集的手写识别器系统中实现。屏蔽1102功能上用于阻 塞初步输出01:0m的一个子集。实际上,屏蔽1102可以是执行选择性屏蔽功能的开关网络 或任何其它硬件、软件和/或固件。屏蔽1102可根据Prog信号来确定要屏蔽输出01:0m 中的哪一个。例如,Prog信号可被设为O以屏蔽罗马尼亚语言的字符集,并被设为1以屏 蔽英文语言的字符集。应当注意的是,至少在本示例中,英文和罗马尼亚文字符集相交,这 应在确定屏蔽哪些初步输出时加以考虑。虽然上述示例将Prog呈现为一二进制值,但Prog 可以采用任何数据格式,或甚至是模拟信号。Prog可以是用户可配置的,并可在手写识别过
程中动态地调整。
结论 由此,在此已描述了创建手写识别功能的新方法。通过重复使用现有神经网络,相 比从零开始构建并训练新神经网络,节省了大量的时间和经费。此处描述的方法和功能中 的任一个可以由硬件、软件和/或固件来实现,并可由人手动和/或由计算机自动执行。在 方法和/或功能被实现为软件的情况下,它们可以作为计算机可执行指令被存储在一个或 多个计算机可读介质上,例如存储在系统存储器130和/或移动介质152、 156中。
此外,此处可以采用除神经网络以外的其它类型的网络,并按照关于神经网络所 描述的类似方式来进行修正。例如,可重复使用贝叶斯网络、隐马尔可夫机(HMM)、支持矢量 机(SVM)、模板匹配器、和/或动态时间扭曲(DTW)单元,并按照此处描述的方式进行修正以 提供适当的输出副本。
权利要求
一种提供手写识别功能的方法,包括提供一具有多个初步输出的神经网络,每一初步输出对应于第一语言的一不同字符;从所述多个初步输出中选择第一初步输出;以及向所述神经网络添加所述第一初步输出的副本。
2. 如权利要求1所述的方法,其特征在于,所述神经网络具有多个初步输入,且其中所 述第一初步输出的副本以与所述第一初步输出相同的方式来响应所述初步输入。
3. 如权利要求1所述的方法,其特征在于,还包括在所述添加步骤之后,训练所述神经 网络,以使所述第一初步输出的副本以不同于所述第一初步输出的方式来响应所述初步输 入。
4. 如权利要求1所述的方法,其特征在于,还包括从多个神经网络中选择所述神经网 络,所述多个神经网络中的每一个与一不同的语言相关联。
5. 如权利要求l所述的方法,其特征在于,还包括 选择所述第一语言;以及 选择不同于所述第一语言的第二语言;其中,选择所述第一初步输出的步骤包括根据所述第二语言来选择所述第一初步输出。
6. 如权利要求5所述的方法,其特征在于,选择所述第一初步输出的步骤包括 将所述第一语言的字符与所述第二语言的字符进行比较;以及如果所述第一语言的字符与所述第二语言的字符视觉上相似但不相同,则复制所述第 一初步输出。
7. 如权利要求5所述的方法,其特征在于,还包括提供一包含所述神经网络和所述第 二语言的语言模型的手写识别器,所述神经网络包括所述第一初步输出的副本。
8. 如权利要求1所述的方法,其特征在于,还包括提供一利用包括所述第一初步输出 的副本的所述神经网络的手写识别器。
9. 至少一种存储用于提供手写识别功能的计算机可执行指令的计算机可读介质,所述 计算机可执行指令用于执行以下步骤从多个网络中选择第一网络,其中所述第一网络与第一语言相关联,并且其中所述第 一网络具有多个初步输出,每一初步输出表示所述第一语言的一不同字符;以及从所述第一网络的多个初步输出中选择第一初步输出,所述第一初步输出与所述第一 语言的字符之一相关联。
10. 如权利要求9所述的至少一种计算机可读介质,其特征在于,所述计算机可执行指 令还用于执行以下步骤接收指示第二语言的第一用户输入;以及 基于所述第二语言选择所述第一语言。
11. 如权利要求IO所述的方法,其特征在于,所述选择第一初步输出的步骤包括 将所述第一语言的字符与所述第二语言的字符进行比较;以及如果所述第一语言的字符与所述第二语言的字符视觉上相似但不相同,则复制所述第 一初步输出。
12. 如权利要求9所述的至少一种计算机可读介质,其特征在于,所述计算机可执行指令还用于将所述第一初步输出的副本添加到所述第一网络中。
13. 如权利要求9所述的至少一种计算机可读介质,其特征在于,所述第一网络具有多 个初步输入,并且其中所述第一初步输出的副本以与所述第一初步输出相同方式响应所述 初步输入。
14. 如权利要求9所述的至少一种计算机可读介质,其特征在于,在选择所述第一初步 输出后,所述第一网络包括由所述第一初步输出的副本构成的初步输出,其中所述第一网 络是神经网络,并且所述计算机可执行指令还用于执行以下步骤接收包含手写墨水的第二用户输入,所述手写墨水包含并非是所述第一语言的一部分 的第二语言的字符的表示;响应于所述第二用户输入,训练所述第一网络,以使对所述初步输出的副本的响应被 修正。
15. 如权利要求9所述的至少一种计算机可读介质,其特征在于,所述至少一种计算机 可读介质还存储所述多个网络。
16. 如权利要求9所述的至少一种计算机可读介质,其特征在于,所述第一网络是神经 网络,并且所述多个网络中的每一网络都是神经网络。
17. —种手写识别器,其特征在于,包括具有第一多个初步输出和第二多个初步输出的网络,所述第一多个初步输出中的每一 个表示第一语言的一不同字符,所述第二多个初步输出中的每一个表示第二语言的一不同 字符;被配置成解释所述初步输出上的信号的后处理单元;以及被配置成选择性地阻塞所述初步输出的第一子集或第二子集中的一个以免其被所述 后处理单元解释的屏蔽单元。
18. 如权利要求16所述的手写识别器,其特征在于,所述网络、所述后处理单元和所述 屏蔽单元包括软件。
19. 如权利要求16所述的手写识别器,其特征在于,所述第一子集包括所述初步输出 中表示所述第一语言而非所述第二语言的字符的初步输出,并且其中所述第二子集包括所 述初步输出中表示所述第二语言而非所述第一语言的字符的初步输出。
20. 如权利要求16所述的手写识别器,其特征在于,所述网络是神经网络。
全文摘要
可从现有神经网络构建用于手写识别的新神经网络。基于所需目标语言选择为起始语言预先训练的现有神经网络。修正该神经网络以使其可以用于识别目标语言的字符,该经修正的神经网络在用于该目标语言的手写识别器中使用。修正过程包括复制现有神经网络的一个或多个初步输出。可基于所需的目标语言选择恰当的起始语言。此外,可提供一“超网络”,它是被配置成识别多种不同语言中的字符的相对较大的神经网络。可通过用程序设计一屏蔽以阻塞对待识别的语言不必需的来自超网络的输出,使用这一超级网络来定制手写识别器。
文档编号G06N5/00GK101730898SQ200680022167
公开日2010年6月9日 申请日期2006年6月22日 优先权日2005年6月23日
发明者J·A·皮特曼, M·马努 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1