第15卷第2期 智能系统学报 Vol.15 No.2 2020年3月 CAAI Transactions on Intelligent Systems Mar.2020 D0:10.11992/tis.201904069 网络出版地址:http:/kns.cnki.net/kcms/detail/23.1538.TP.20190828.1430.004html 基于Capsule网络的甲骨文构件识别方法 鲁绪正,蔡恒进,林莉 (武汉大学计算机学院,湖北武汉430072) 摘要:甲骨文作为中国最早的成形文字系统,具有重要的文化和学术价值。研究甲骨文构件和其构形系统是 破译未识别的甲骨文的重要方向,但是甲骨文构件的标记工作只能由资深专家来完成,并且需要耗费大量时间 和精力。针对这些问题,提出了一种基于Capsule网络和迁移学习的模型OracleNet,.可以自动识别并标记甲骨 文字形中包含的构件:同时,构建了包含标记的甲骨文字形和构件数据集,用于模型的训练和评估。实验结果 显示,OracleNet模型对甲骨文构件的预测精确度达到了60%以上,其中Top5精确度达到了7l.56%,验证了模 型的有效性。 关键词:甲骨文;甲骨文构件识别;卷积神经网络;Capsule网络;动态路由算法;迁移学习;多目标识别:图像识别 中图分类号:TP319.4文献标志码:A文章编号:1673-4785(2020)02-0243-12 中文引用格式:鲁绪正,蔡恒进,林莉.基于Capsule网络的甲骨文构件识别方法智能系统学报,2020,15(2):243-254. 英文引用格式:LU Xuzheng,CAI Hengjin,.LIN Li.Recognition of Oracle Radical based on the Capsule networkJ.CAAI transac- tions on intelligent systems,2020,15(2):243-254. Recognition of Oracle Radical based on the Capsule network LU Xuzheng,CAI Hengjin,LIN Li (School of Computer Science,Wuhan University,Wuhan 430072,China) Abstract:As the earliest shaped character system in China,the inscriptions on bones or tortoise shells of the Shang Dynasty (c.16th-11th century BC)have important cultural and academic values.The research on the constructional ele- ment,i.e.,Oracle Radical,and configuration system of the inscriptions on bones or tortoise shells of the Shang Dynasty is a vital direction to identify the unrecognized Oracle Graphics.However,the marking of Radicals can only be done by experienced experts;moreover,it will take a considerable amount of time and effort.To solve these problems,we pro- posed a model,i.e.,OracleNet,based on the Capsule network and transfer learning,which can automatically identify the Oracle Radical contained in a graphic.At the same time,we built a labeled Oracle Graphics dataset and a labeled Radic- als dataset,which were used for training and evaluating the model.The experiment showed that the OracleNet had more than 60%precision for recognizing Radicals in a graphic and the Top 5 precision reached 71.56%,which verified valid- ity of the model. Keywords:inscriptions on bones or tortoise shells of the Shang Dynasty:Oracle Radical recognition;convolutional neural networks:Capsule network:dynamic routing algorithm:transfer learning:multi-target recognition:image recognition: 甲骨文作为汉字鼻祖,记录了商朝的经济和术意义。目前,已识别的甲骨文字形有2400余 政治情况。其不仅是一种文化的符号、文明的标个,未识别的仍有2500余个,因此甲骨文的相关 志,还复原了殷商历史的框架,将我国信史时代 研究任重道远。 向前推进了近五个世纪四。自1899年甲骨文出土 研究表明,甲骨文已经具有了一套相对完整 后,甲骨文已逐渐渗透到历史学、艺术史、科技史 的构形体系,这套构形体系将甲骨文分为了字形 等多个相关学科领域,其传承具有重大文化及学 和构件。组成甲骨文字形的构件通过一些固定的 收稿日期:2019-05-05.网络出版日期:2019-08-28 构造规律相互影响、关联,在此基础上进行相互 通信作者:蔡恒进.E-mail:hjcai@whu.edu.cn. 区分,并且最终组合起来构建出了一个有序的构
DOI: 10.11992/tis.201904069 网络出版地址: http://kns.cnki.net/kcms/detail/23.1538.TP.20190828.1430.004.html 基于 Capsule 网络的甲骨文构件识别方法 鲁绪正,蔡恒进,林莉 (武汉大学 计算机学院,湖北 武汉 430072) 摘 要:甲骨文作为中国最早的成形文字系统,具有重要的文化和学术价值。研究甲骨文构件和其构形系统是 破译未识别的甲骨文的重要方向,但是甲骨文构件的标记工作只能由资深专家来完成,并且需要耗费大量时间 和精力。针对这些问题,提出了一种基于 Capsule 网络和迁移学习的模型 OracleNet,可以自动识别并标记甲骨 文字形中包含的构件;同时,构建了包含标记的甲骨文字形和构件数据集,用于模型的训练和评估。实验结果 显示,OracleNet 模型对甲骨文构件的预测精确度达到了 60% 以上,其中 Top5 精确度达到了 71.56%,验证了模 型的有效性。 关键词:甲骨文;甲骨文构件识别;卷积神经网络;Capsule 网络;动态路由算法;迁移学习;多目标识别;图像识别 中图分类号:TP319.4 文献标志码:A 文章编号:1673−4785(2020)02−0243−12 中文引用格式:鲁绪正, 蔡恒进, 林莉. 基于 Capsule 网络的甲骨文构件识别方法 [J]. 智能系统学报, 2020, 15(2): 243–254. 英文引用格式:LU Xuzheng, CAI Hengjin, LIN Li. Recognition of Oracle Radical based on the Capsule network[J]. CAAI transactions on intelligent systems, 2020, 15(2): 243–254. Recognition of Oracle Radical based on the Capsule network LU Xuzheng,CAI Hengjin,LIN Li (School of Computer Science, Wuhan University, Wuhan 430072, China) Abstract: As the earliest shaped character system in China, the inscriptions on bones or tortoise shells of the Shang Dynasty (c. 16th–11th century BC) have important cultural and academic values. The research on the constructional element, i.e., Oracle Radical, and configuration system of the inscriptions on bones or tortoise shells of the Shang Dynasty is a vital direction to identify the unrecognized Oracle Graphics. However, the marking of Radicals can only be done by experienced experts; moreover, it will take a considerable amount of time and effort. To solve these problems, we proposed a model, i.e., OracleNet, based on the Capsule network and transfer learning, which can automatically identify the Oracle Radical contained in a graphic. At the same time, we built a labeled Oracle Graphics dataset and a labeled Radicals dataset, which were used for training and evaluating the model. The experiment showed that the OracleNet had more than 60% precision for recognizing Radicals in a graphic and the Top 5 precision reached 71.56%, which verified validity of the model. Keywords: inscriptions on bones or tortoise shells of the Shang Dynasty; Oracle Radical recognition; convolutional neural networks; Capsule network; dynamic routing algorithm; transfer learning; multi-target recognition; image recognition; 甲骨文作为汉字鼻祖,记录了商朝的经济和 政治情况。其不仅是一种文化的符号、文明的标 志,还复原了殷商历史的框架,将我国信史时代 向前推进了近五个世纪[1]。自 1899 年甲骨文出土 后,甲骨文已逐渐渗透到历史学、艺术史、科技史 等多个相关学科领域,其传承具有重大文化及学 术意义。目前,已识别的甲骨文字形有 2 400 余 个,未识别的仍有 2 500 余个,因此甲骨文的相关 研究任重道远。 研究表明,甲骨文已经具有了一套相对完整 的构形体系,这套构形体系将甲骨文分为了字形 和构件。组成甲骨文字形的构件通过一些固定的 构造规律相互影响、关联,在此基础上进行相互 区分,并且最终组合起来构建出了一个有序的构 收稿日期:2019−05−05. 网络出版日期:2019−08−28. 通信作者:蔡恒进. E-mail:hjcai@whu.edu.cn. 第 15 卷第 2 期 智 能 系 统 学 报 Vol.15 No.2 2020 年 3 月 CAAI Transactions on Intelligent Systems Mar. 2020
·244· 智能系统学报 第15卷 形系统,而甲骨文构件精确地反映出了该系统的 ical-148数据集。 性质和特点。所以,对于甲骨文识别相关工作 1.1 Oracle-250数据集 来说,甲骨文构件的研究是其基础,具有重要意义。 目前已发现的殷商甲骨文字形共有近5000 许多学者从甲骨文构件的角度出发,以加快 个,其中包括已识别甲骨文字形2304个,未识别 未知字形的解读工作,如周新伦等)基于图论对 甲骨文字形2523个。由于甲骨文字形中大部分 甲骨文的笔画特点进行分析,从而识别甲骨文字 字形出现率极低,样本数很少,本文只选择甲骨 形,实现了早期的尝试;而李锋等则是对甲骨文 文字形中频率最高的250个字形来构成Oracle- 的图特征进行了提取,以提升甲骨文字形识别的 250数据集。 准确度;李东琦等实现了一个基于甲骨文构件 此外,由于各个类别的分布不均匀,本文通过 的编码器,将甲骨文进行了数字化:高峰等通过 网络获取和数据增强算法,对已识别的原始数据 建立甲骨文语义构件向量,结合Hopfield网络的 集进行了扩充,同时对250个类别的样本数量进 识别结果的方法来匹配甲骨拓片或者照片中的模 行平衡。最终得到的Oracle-250数据集中的甲骨 糊字;吴琴霞等m通过仿射变换复用构件生成甲 文字形样本总数为92160个。 骨文字形,为以后的语义构件统计打下了基础: 在本数据集中,并没有对甲骨文图片的大小 而顾绍通利用分型集合的原理将甲骨文字形进行 设置标准,可以在后续神经网络中进行调整。在 拆分、描述,然后再对甲骨文字形进行识别,达到 已识别的甲骨文字形数据中,标记了每个字形所 了一定的效果。 包含的构件,Oracle-250中的部分样本如表1所示。 然而,通过构件研究甲骨文,首先需要专家进 表1 Oracle-250部分样本及其所含构件 行构件标注,不仅需要相关专业知识,还要耗费 Table 1 Samples of Oracle-250 and containing radicals 大量的时间、人力和精力。针对上述问题,本文 甲骨文字形 索引 构件 索引 构件 索引 提出了一种新的通过机器识别甲骨文构件的方 法,建立了一个基于Capsule网络和迁移学习的 模型OracleNet,通过甲骨文构件数据集对其进行 训练,可以同时对甲骨文字形中多个构件同时进 187 60 行识别。 甲骨文数据集 本文尝试通过深度学习(deep learning)的方 1.2 Radical--148数据集 法来识别甲骨文字形中包含的构件,而深度学习 殷商甲骨文是具有系统的成熟文字,每个字 模型对于数据样本的准备有以下要求: 都是由构件组成或其本身就是构件。通过专家学 1)数据样本图片需要清晰可见且无重叠、模 者多年的全面考察,甲骨文的基础构件共有412 糊,图片大小、颜色、格式需要统一; 个,这些基础构件一般来说可以独立使用于记录 2)字形识别任务为有监督学习的分类任务, 语言之中,也可以和其他的基础构件一起组成新 所以全部训练数据都需要被正确标记; 的甲骨文字形。 3)本文需要提取甲骨文构形规律和构件特 若按照是否构成完整字形来分类,甲骨文构 征,所以需要被正确标记的甲骨文字形数据集; 件中278个为成字构件,而其他的134个为非字 4)数据样本需要满足一定数量,否则深度学 构件。而如果按照甲骨文构件行使的功能来分 习模型难以收敛。 类,甲骨文构件中有356个用于表形功能,有 鉴于目前并没有公开的较为完整的数字化甲 125个用于表义,113个用于示音,18个用于标示 骨文字形集,为了便于后续研究,本文通过对经 功能。其中,有一部分成字构件独立成字时自身 典书籍《甲骨文字编》例中扫描的甲骨文字形进 就具有了表形、表义或示音功能,而当这些构件 行预处理、标记,建立了两个类似于MINSIT数据 用于组成新的甲骨文字形的时候,可能会行使其 集的已标记甲骨文数据集。 他的功能,而和自身原本的功能不同。 这两个数据集不仅限于用于图像分类识别任 《甲骨文字编》中选取了主要的成字构件, 务,还可以应用于其他甲骨文领域的研究中,如 并将这些构件分为了148类。Radical-148数据集 甲骨文字形破译等。本文希望通过这个数据集简 也参考了这种分类方式,是已标记的构件图片的 化研究人员对于甲骨文数据收集、处理、筛选的 集合,包含148个构件类别。 时间,更多专注于研究本身。 为了进一步扩充Radical-l48数据集,本文从 两个数据集分别为:Oracle-250数据集和Rad- 字源网站获取了更多的构件字形图片对数据集进
形系统,而甲骨文构件精确地反映出了该系统的 性质和特点[2]。所以,对于甲骨文识别相关工作 来说,甲骨文构件的研究是其基础,具有重要意义。 许多学者从甲骨文构件的角度出发,以加快 未知字形的解读工作,如周新伦等[3] 基于图论对 甲骨文的笔画特点进行分析,从而识别甲骨文字 形,实现了早期的尝试;而李锋等[4] 则是对甲骨文 的图特征进行了提取,以提升甲骨文字形识别的 准确度;李东琦等[5] 实现了一个基于甲骨文构件 的编码器,将甲骨文进行了数字化;高峰等[6] 通过 建立甲骨文语义构件向量,结合 Hopfield 网络的 识别结果的方法来匹配甲骨拓片或者照片中的模 糊字;吴琴霞等[7] 通过仿射变换复用构件生成甲 骨文字形,为以后的语义构件统计打下了基础; 而顾绍通利用分型集合的原理将甲骨文字形进行 拆分、描述,然后再对甲骨文字形进行识别,达到 了一定的效果[8]。 然而,通过构件研究甲骨文,首先需要专家进 行构件标注,不仅需要相关专业知识,还要耗费 大量的时间、人力和精力。针对上述问题,本文 提出了一种新的通过机器识别甲骨文构件的方 法,建立了一个基于 Capsule 网络和迁移学习的 模型 OracleNet,通过甲骨文构件数据集对其进行 训练,可以同时对甲骨文字形中多个构件同时进 行识别。 1 甲骨文数据集 本文尝试通过深度学习 (deep learning) 的方 法来识别甲骨文字形中包含的构件,而深度学习 模型对于数据样本的准备有以下要求: 1) 数据样本图片需要清晰可见且无重叠、模 糊,图片大小、颜色、格式需要统一; 2) 字形识别任务为有监督学习的分类任务, 所以全部训练数据都需要被正确标记; 3) 本文需要提取甲骨文构形规律和构件特 征,所以需要被正确标记的甲骨文字形数据集; 4) 数据样本需要满足一定数量,否则深度学 习模型难以收敛。 鉴于目前并没有公开的较为完整的数字化甲 骨文字形集,为了便于后续研究,本文通过对经 典书籍《甲骨文字编》[9] 中扫描的甲骨文字形进 行预处理、标记,建立了两个类似于 MINSIT 数据 集的已标记甲骨文数据集。 这两个数据集不仅限于用于图像分类识别任 务,还可以应用于其他甲骨文领域的研究中,如 甲骨文字形破译等。本文希望通过这个数据集简 化研究人员对于甲骨文数据收集、处理、筛选的 时间,更多专注于研究本身。 两个数据集分别为:Oracle-250 数据集和 Radical-148 数据集。 1.1 Oracle-250 数据集 目前已发现的殷商甲骨文字形共有近 5 000 个,其中包括已识别甲骨文字形 2 304 个,未识别 甲骨文字形 2 523 个。由于甲骨文字形中大部分 字形出现率极低,样本数很少,本文只选择甲骨 文字形中频率最高的 250 个字形来构成 Oracle- 250 数据集。 此外,由于各个类别的分布不均匀,本文通过 网络获取和数据增强算法,对已识别的原始数据 集进行了扩充,同时对 250 个类别的样本数量进 行平衡。最终得到的 Oracle-250 数据集中的甲骨 文字形样本总数为 92 160 个。 在本数据集中,并没有对甲骨文图片的大小 设置标准,可以在后续神经网络中进行调整。在 已识别的甲骨文字形数据中,标记了每个字形所 包含的构件,Oracle-250 中的部分样本如表 1 所示。 表 1 Oracle-250 部分样本及其所含构件 Table 1 Samples of Oracle-250 and containing radicals 甲骨文字形 索引 构件 索引 构件 索引 37 65 0 187 60 8 76 73 9 1.2 Radical-148 数据集 殷商甲骨文是具有系统的成熟文字,每个字 都是由构件组成或其本身就是构件。通过专家学 者多年的全面考察,甲骨文的基础构件共有 412 个,这些基础构件一般来说可以独立使用于记录 语言之中,也可以和其他的基础构件一起组成新 的甲骨文字形。 若按照是否构成完整字形来分类,甲骨文构 件中 278 个为成字构件,而其他的 134 个为非字 构件。而如果按照甲骨文构件行使的功能来分 类,甲骨文构件中有 356 个用于表形功能,有 125 个用于表义,113 个用于示音,18 个用于标示 功能。其中,有一部分成字构件独立成字时自身 就具有了表形、表义或示音功能,而当这些构件 用于组成新的甲骨文字形的时候,可能会行使其 他的功能,而和自身原本的功能不同。 《甲骨文字编》中选取了主要的成字构件, 并将这些构件分为了 148 类。Radical-148 数据集 也参考了这种分类方式,是已标记的构件图片的 集合,包含 148 个构件类别。 为了进一步扩充 Radical-148 数据集,本文从 字源网站获取了更多的构件字形图片对数据集进 ·244· 智 能 系 统 学 报 第 15 卷
第2期 鲁绪正,等:基于Capsule网络的甲骨文构件识别方法 ·245· 行填充,但这些字形出现的频率不同,导致了数 最终,本文得到148个类的甲骨文构件图片 据集数量不平衡。 共计108989张。扩充后的Radical-148数据集如 为解决这一问题,本文邀请了700名志愿者 表2所示。 分别对部分甲骨文构件进行手写仿写。志愿者进 表20 racle-.250部分样本及其所含构件 行仿写的内容是经过计算和设计的,由随机从原 Table 2 Samples of Oracle-250 and their containing radicals 始数据库中选出的甲骨文构件字符组成,而每个 类型的构件的仿写总量是根据原始类别而计算得 汉字Unicode图片数量原始图片样本 手写扩充样本 出的。因此,每位志愿者的仿写内容是不一样 4EBA 956 刀饣个个↑ 饣1人入1 的,针对同一构件,不同仿写者所参照的图片也 5927 947 个个本个个 个大个大个 是不一样的,这样可以保证收集到的数据的多样 止 6B62 692 出世Vy ¥世 度最大,同时又解决了原始数据不均衡的问题。 女 5973 611 如图1所示各为一张仿写问卷征集表,图2 虫虫宫告中特 曳电舟书 所示为一份仿写结果。 格X 2 Capsule网络 申回双妙名 Capsule网络是Geoffrey Hinton在2017年提 出的一种新型的神经网络io,与LeNet!山、Alex- 秀公华孕 Net等传统卷积神经网络(convolutional neural 象然岩入 networks,.CNN)不同,Capsule神经网络设计了一 种新型的神经元一Capsule(胶囊),来表示一些 特定的实体类型(Entity)。 ¥细”1丝 Capsule网络的设计受到了人类视觉生物学 H承表会兰础阿多巾高亞工HH素 原理的启发。在传统的CNN架构中,图像整体全 部传入模型进行训练,通过卷积运算将图像中一 个位置获得的优秀权重值知识转化到其他位置 数平 上,并通过池化(Pooling)运算逐渐缩小特征图 (Feature Map),从而为模型带来不变性。 但是,这样的计算过程和人类视觉生物学原 理有所不同,人类视觉往往会通过注视一些较小 图1 Radica-148数据集问卷征集表 Fig.1 Questionnaire of Radical-148 的区域(注视点)序列来降低需要进行高分辨处 木4客✉日生应合 理的画面面积,而不会去同时关注图像的全部内 容。Hinton假设人类的多层视觉系统可以在每个 注视点上创建一种类似于解析树(Parse Tree)的 4个 机制,对于每个注视点,其解析树由指定多层神 经网络进行构建,每一层会被分割为许多神经元 小组,它们被称为Capsule 本文使用Capsule网络来进行甲骨文构件识 别的原因是: BY不 l)Capsule网络可以方便地通过单目标(Sin- gle-Object)数据集进行训练,而在测试时可以进 行高精度的多目标(Multi-Object)预测),这种方 式和本文的甲骨文识别任务相契合:通过单目标 的甲骨文构件数据集训练模型,然后在甲骨文字 形数据集上进行多目标预测,判断每个甲骨文字 王 G 形中包含的构件: 图2已填写的Radical-148数据集征集表 2)相对于其他的多目标预测模型,如RCNN Fig.2 Filled questionnaire of Radical-148 Fast-RCNNUS等,Capsule网络无需准备多标签数
行填充,但这些字形出现的频率不同,导致了数 据集数量不平衡。 为解决这一问题,本文邀请了 700 名志愿者 分别对部分甲骨文构件进行手写仿写。志愿者进 行仿写的内容是经过计算和设计的,由随机从原 始数据库中选出的甲骨文构件字符组成,而每个 类型的构件的仿写总量是根据原始类别而计算得 出的。因此,每位志愿者的仿写内容是不一样 的,针对同一构件,不同仿写者所参照的图片也 是不一样的,这样可以保证收集到的数据的多样 度最大,同时又解决了原始数据不均衡的问题。 如图 1 所示各为一张仿写问卷征集表,图 2 所示为一份仿写结果。 图 1 Radical-148 数据集问卷征集表 Fig. 1 Questionnaire of Radical-148 图 2 已填写的 Radical-148 数据集征集表 Fig. 2 Filled questionnaire of Radical-148 最终,本文得到 148 个类的甲骨文构件图片 共计 108 989 张。扩充后的 Radical-148 数据集如 表 2 所示。 表 2 Oracle-250 部分样本及其所含构件 Table 2 Samples of Oracle-250 and their containing radicals 汉字 Unicode 图片数量 原始图片样本 手写扩充样本 人 4EBA 956 大 5927 947 止 6B62 692 女 5973 611 2 Capsule 网络 Capsule 网络是 Geoffrey Hinton 在 2017 年提 出的一种新型的神经网络[10] ,与 LeNet[11] 、AlexNet[12] 等传统卷积神经网络 (convolutional neural networks, CNN) 不同,Capsule 神经网络设计了一 种新型的神经元−Capsule(胶囊),来表示一些 特定的实体类型 (Entity)。 Capsule 网络的设计受到了人类视觉生物学 原理的启发。在传统的 CNN 架构中,图像整体全 部传入模型进行训练,通过卷积运算将图像中一 个位置获得的优秀权重值知识转化到其他位置 上,并通过池化 (Pooling) 运算逐渐缩小特征图 (Feature Map),从而为模型带来不变性。 但是,这样的计算过程和人类视觉生物学原 理有所不同,人类视觉往往会通过注视一些较小 的区域 (注视点) 序列来降低需要进行高分辨处 理的画面面积,而不会去同时关注图像的全部内 容。Hinton 假设人类的多层视觉系统可以在每个 注视点上创建一种类似于解析树 (Parse Tree) 的 机制,对于每个注视点,其解析树由指定多层神 经网络进行构建,每一层会被分割为许多神经元 小组,它们被称为 Capsule。 本文使用 Capsule 网络来进行甲骨文构件识 别的原因是: 1) Capsule 网络可以方便地通过单目标 (Single-Object) 数据集进行训练,而在测试时可以进 行高精度的多目标 (Multi-Object) 预测[13] ,这种方 式和本文的甲骨文识别任务相契合:通过单目标 的甲骨文构件数据集训练模型,然后在甲骨文字 形数据集上进行多目标预测,判断每个甲骨文字 形中包含的构件; 2) 相对于其他的多目标预测模型,如 RCNN[14] 、 Fast-RCNN[15] 等,Capsule 网络无需准备多标签数 第 2 期 鲁绪正,等:基于 Capsule 网络的甲骨文构件识别方法 ·245·
·246· 智能系统学报 第15卷 据集,同时也不需要对训练数据中目标的位置信 总输入s,为下层Capsule中所有输出向量i 息进行标记,从而可以极大程度上降低数据准备 的加权和: 的工作量。 =∑ce 2.1 Capsule 式中:c,为耦合系数(coupling coefficients),由迭代 Capsule是一组新型的神经元,该神经元使用 的动态路由选择过程确定。 激活向量(Activity Vector)代替传统CNN中的标 Capsule,和其上层所有的Capsule之间的耦合 量特征值,用“向量输入/输出”取代了以往的“标 系数的和为l,并且由“softmax”路由算法决定: 量输入/输出”。 每个Capsule单元表示了特定实体类型的实 ,= 例化参数,如色彩、位置、纹理、大小、方向等,通 exp(bi 过激活向量的长度来表示某个特定实体出现的概 ∑epo 率,通过激活向量的方向来表示该实体所对应的 式中:b是Capsule,和上层Capsule,相耦合的对数 更高层级属性。 先验概率,初始化为0。 Capsule网络提供了一种基于聚类思想来代 对数先验概率b,和权值矩阵W分别通过动 替池化完成特征整合的全新方案,Capsule本身也 态路由算法和梯度回传有区别地进行训练,它们 可以通过动态路由算法带来类似于池化的不变 之和两个Capsule的位置与类型相关,而和输入 性。其优势在于,相对于传统的池化算法,Cap- 图像的内容无关。 sule保留了全部的图像特征,其表达能力也更强。 耦合系数c,通过测量上层的每一个Capsule, 2.2 squashing激活函数 的输入',和下层的每一个Capsule,的预测一致性 Capsule网络将激活向量视作逻辑单元,其长 进行迭代更新,并被加入b中。本文中该预测一 度表示特定实体出现的概率,以判断图像中实例 致性被设置为标量乘积iy,为对数似然度。 化实体的存在与否。为此,Capsule网络需要使用 Capsule网络动态路由算法的流程如图3 一种新型的非线性激活函数:squashing函数,其 所示。 表示为 小s Capsule I Capsule 2 Capsule 3 Vi= 1+l lsll 式中:y,表示第j个Capsule的输出向量;s表示 输入向量的总和。 、Squashing Squashing Squashing 和传统神经网络中常使用的sigmoid函数类 路 似,squashing函数使激活向量的方向不变,将较 (S 短和较长的激活向量的长度分别缩放至0和1附 近,并将向量长度控制在0~l。通过squashing 1212 C23C3314 激活函数,Capsule实现了用激活向量的模长来表 示实体出现的概率。 2.3动态路由算法 Capsule网络通过动态路由算法(dynamic rou- 1+1层 ting algorithm)来实现对更高层级的Capsule实体 1层 (或属性)的聚类,并将子Capsule输出向量中包含 的特征信息传送到合适的父类Capsule中。 图3 Capsule网络的动态路由算法 在全连接形式的Capsule网络中,对于除了第 Fig.3 Dynamic routing algorithm of Capsule network 一层Capsule之外的所有层级,每层Capsule的输 在卷积形式的Capsule层中,每一个Cap 出在传入下一层Capsule之前,都需要乘以一个 sule单元都是一个卷积单元而不是全连接单元, 权值矩阵W,进行变换: 因此每一个Capsule将输出一个向量组而不是单 立市=W: (1) 个输出向量。 式中:W,为待训练的权值矩阵,通过反向传播梯 动态路由算法的步骤如算法1所示。 度更新进行训练;4:为输入向量。 算法1动态路由算法
据集,同时也不需要对训练数据中目标的位置信 息进行标记,从而可以极大程度上降低数据准备 的工作量。 2.1 Capsule Capsule 是一组新型的神经元,该神经元使用 激活向量 (Activity Vector) 代替传统 CNN 中的标 量特征值,用“向量输入/输出”取代了以往的“标 量输入/输出”。 每个 Capsule 单元表示了特定实体类型的实 例化参数,如色彩、位置、纹理、大小、方向等,通 过激活向量的长度来表示某个特定实体出现的概 率,通过激活向量的方向来表示该实体所对应的 更高层级属性。 Capsule 网络提供了一种基于聚类思想来代 替池化完成特征整合的全新方案,Capsule 本身也 可以通过动态路由算法带来类似于池化的不变 性。其优势在于,相对于传统的池化算法,Capsule 保留了全部的图像特征,其表达能力也更强。 2.2 squashing 激活函数 Capsule 网络将激活向量视作逻辑单元,其长 度表示特定实体出现的概率,以判断图像中实例 化实体的存在与否。为此,Capsule 网络需要使用 一种新型的非线性激活函数:squashing 函数,其 表示为 vj = sj 2 1+ sj 2 sj sj vj 式中: 表示第 j 个 Capsule 的输出向量; sj 表示 输入向量的总和。 和传统神经网络中常使用的 sigmoid 函数类 似,squashing 函数使激活向量的方向不变,将较 短和较长的激活向量的长度分别缩放至 0 和 1 附 近,并将向量长度控制在 0~1。通过 squashing 激活函数,Capsule 实现了用激活向量的模长来表 示实体出现的概率。 2.3 动态路由算法 Capsule 网络通过动态路由算法 (dynamic routing algorithm) 来实现对更高层级的 Capsule 实体 (或属性) 的聚类,并将子 Capsule 输出向量中包含 的特征信息传送到合适的父类 Capsule 中。 Wi j 在全连接形式的 Capsule 网络中,对于除了第 一层 Capsule 之外的所有层级,每层 Capsule 的输 出在传入下一层 Capsule 之前,都需要乘以一个 权值矩阵 进行变换: uˆ j|i = Wi jui (1) Wi j ui 式中: 为待训练的权值矩阵,通过反向传播梯 度更新进行训练; 为输入向量。 总输入 sj 为下层 Capsule 中所有输出向量 uˆ j|i 的加权和: sj = ∑ i ci juˆ j|i 式中:ci j 为耦合系数 (coupling coefficients),由迭代 的动态路由选择过程确定。 Capsulei 和其上层所有的 Capsule 之间的耦合 系数的和为 1,并且由“softmax”路由算法决定: ∑ j ci j = 1 ci j = exp( bi j) ∑ k exp(bik) 式中: bi j 是 Capsulei 和上层 Capsulej 相耦合的对数 先验概率,初始化为 0。 对数先验概率 bi j 和权值矩阵 Wi j 分别通过动 态路由算法和梯度回传有区别地进行训练,它们 之和两个 Capsule 的位置与类型相关,而和输入 图像的内容无关。 ci j Capsulej vj Capsulei bi j uˆ j|i · vj 耦合系数 通过测量上层的每一个 的输入 和下层的每一个 的预测一致性 进行迭代更新,并被加入 中。本文中该预测一 致性被设置为标量乘积 ,为对数似然度。 Capsule 网络动态路由算法的流程如图 3 所示。 Squashing Squashing Squashing 动 态 路 由 Capsule 1 Capsule 2 Capsule 3 l + 1 层 l 层 V1 V2 V3 S1 c11 c21 c31 c41 u1 u2 u3 u4 W11 W21 W31 W41 W12 W22 W32 W42 W13 W23 W33 W43 u1|1 S2 S3 ^ u1|2 ^ u1|3 ^ u1|4 ^ c12 c22 c32 c42 u2|1 ^ u2|2 ^ u2|3 ^ u2|4 ^ c13 c23 c33 c43 u3|1 ^ u3|2 ^ u3|3 ^ u3|4 ^ 图 3 Capsule 网络的动态路由算法 Fig. 3 Dynamic routing algorithm of Capsule network 在卷积形式的 Capsule 层中,每一个 Capsule 单元都是一个卷积单元而不是全连接单元, 因此每一个 Capsule 将输出一个向量组而不是单 个输出向量。 动态路由算法的步骤如算法 1 所示。 算法 1 动态路由算法 ·246· 智 能 系 统 学 报 第 15 卷
第2期 鲁绪正,等:基于Capsule网络的甲骨文构件识别方法 ·247· 输入第l层Capsule的输出向量组w 下边界值;入通过对不存在的类别进行加权,从而 输出第I+l层Capsule的输出向量组"j 阻止网络在刚开始学习的过程中缩小所有Capsule 1)对于第I层中的所有Capsule i以及第l+1 的激活向量的长度。 层中的所有Capsule j:初始化b=0 本文中,m*设置为0.9,m设置为0.1,d设置 2)执行循环,迭代r次: 为0.5。 3)对于第I层中的所有Capsule i:c:←- 2.5重构 softmax (b) 传统的卷积神经网络通常使用Dropout!6作 4)对于第l+1层中的所有Capsule j:s← ∑cn 为正则化方法以降低过拟合风险,而Capsule网 络使用一种重构(Reconstruction)结构进行正 5)对于第l+1层中的所有Capsule j:y,- 则化。 squash(s;) 重构结构的原理类似于自动编码机(Autoen-. 6)对于第I层中的所有Capsule i以及第I+1 coder)中的解码器(Decoder)部分,在训练过程 层中的所有Capsule j:b←b+i" 中,忽略其他所有Capsule,只使用正确类别所对 7)返回V 应的Capsule的激活向量重新构建出原始图像。 2.4损失函数 通过重构图像与原始输入图像计算得到重构损 在进行分类时,Capsule网络通过计算不同类 失(Reconstruction Loss),并且将该损失计人模型 别所对应的激活向量的模长来表示某个类型实体 总损失中进行梯度回传更新。重构结构鼓励Cap 存在的概率。当网络检测到了某种实体时,概率 sule的激活向量对图像进行更为宏观的表征,使 趋近于1,而当网络认为某种实体不存在时,概率 激活向量包含更多的有用信息,从而达到正则化 趋近于O。同时,为了支持多目标识别,Capsule 网络的损失函数采用了支持向量机(support vec- 的目的。 tor machine)中经常使用的Margin loss,其表达 3 OracleNet 式为 L.T.max(0,m*-lv+ 3.1 OracleNet架构 d(1-T.)max(0,ll-m)月 针对甲骨文构件识别任务,本文建立了一个 式中:c是分类的类别;T。为分类的指示函数,c 基于卷积神经网络和Capsule网络的端对端的模 类存在时为1,否则为0;m与m分别代表了上 型,命名为OracleNet,其架构如图4所示。 卷积模块 Capsule模块 Margin 路 分类损失 Loss P总损失 重构模块 下采样 Cross Entropy 重构损失 图4 OracleNet架构 Fig.4 Architecture of OracleNet 3.1.1卷积模块 中的空间特征信息,每层卷积层都采用ReLUU7 OracleNet首先通过多层卷积层来提取图片 激活函,并且使用批标准化(Batch Normaliza-
输入 第 l 层 Capsule 的输出向量组 ui 输出 第 l+1 层 Capsule 的输出向量组 vj l i l+1 j bi j = 0 1) 对于第 层中的所有 Capsule 以及第 层中的所有 Capsule :初始化 2) 执行循环,迭代 r 次: l i ci ← softmax(bi) 3 ) 对于第 层中的所 有 Capsule : ∑ l+1 j sj ← i ci juˆ j|i 4) 对于第 层中的所有 Capsule : l+1 j vj ← squash( sj ) 5) 对于第 层中的所有 Capsule : l i l+1 j bi j ← bi j +uˆ j|i · vj 6) 对于第 层中的所有 Capsule 以及第 层中的所有 Capsule : 7) 返回 vj 2.4 损失函数 在进行分类时,Capsule 网络通过计算不同类 别所对应的激活向量的模长来表示某个类型实体 存在的概率。当网络检测到了某种实体时,概率 趋近于 1,而当网络认为某种实体不存在时,概率 趋近于 0。同时,为了支持多目标识别,Capsule 网络的损失函数采用了支持向量机 (support vector machine) 中经常使用的 Margin loss,其表达 式为 Lc = Tcmax(0,m + −∥vc∥) 2+ λ(1−Tc)max(0,∥vc∥ −m − ) 2 c Tc c m + m − 式中: 是分类的类别; 为分类的指示函数, 类存在时为 1,否则为 0; 与 分别代表了上 下边界值; λ 通过对不存在的类别进行加权,从而 阻止网络在刚开始学习的过程中缩小所有 Capsule 的激活向量的长度。 m + m − 本文中, 设置为 0.9, 设置为 0.1,λ 设置 为 0.5。 2.5 重构 传统的卷积神经网络通常使用 Dropout[16] 作 为正则化方法以降低过拟合风险,而 Capsule 网 络使用一种重构 (Reconstruction) 结构进行正 则化。 重构结构的原理类似于自动编码机 (Autoencoder) 中的解码器 (Decoder) 部分,在训练过程 中,忽略其他所有 Capsule,只使用正确类别所对 应的 Capsule 的激活向量重新构建出原始图像。 通过重构图像与原始输入图像计算得到重构损 失 (Reconstruction Loss),并且将该损失计入模型 总损失中进行梯度回传更新。重构结构鼓励 Capsule 的激活向量对图像进行更为宏观的表征,使 激活向量包含更多的有用信息,从而达到正则化 的目的。 3 OracleNet 3.1 OracleNet 架构 针对甲骨文构件识别任务,本文建立了一个 基于卷积神经网络和 Capsule 网络的端对端的模 型,命名为 OracleNet,其架构如图 4 所示。 ... ... 下采样 重构损失 分类损失 总损失 Margin Loss Cross Entropy 卷积模块 Capsule 模块 重构模块 动 态 路 由 图 4 OracleNet 架构 Fig. 4 Architecture of OracleNet 3.1.1 卷积模块 OracleNet 首先通过多层卷积层来提取图片 中的空间特征信息,每层卷积层都采用 ReLU[17] 激活函,并且使用批标准化 (Batch Normaliza- 第 2 期 鲁绪正,等:基于 Capsule 网络的甲骨文构件识别方法 ·247·
·248· 智能系统学报 第15卷 tion)进行正则化。 优化器9进行梯度回传更新。 3.l.2 Capsule模块 3.2基于迁移学习的OracleNet 在卷积层后分别加入两层Capsule,使用 鉴于Capsule网络的计算量相比传统CNN结 squashing函数作为激活函数。输出层Capsule数 构提升了数倍,为了节省计算资源,本文采用了 量为148个,每个Capsule对应一个甲骨文构件。 迁移学习的方式来训练OracleNet中的卷积模 两层Capsule之间的参数在整个模型前向传播 块。本文分别使用已在ImageNET数据集上预训 时通过动态路由算法进行更新,路迭代次数为 练过的InceptionV.3、ResNet5:0和Xception架构进 3次。 行迁移学习训练。 在本文实验中发现,除了输出层之外的Cap- Inception架构由Szegedy等2o于2014年提 sule采用修改后的squashing激活函数会使结果有 出,该架使用一种特殊的Inception模块充当“多 所提升,如式(2)所示: 级特征提取器”,分别使用不同大小的卷积核进行 s 卷积,并把卷积输出串联起来作为下一层的输 Vj= 0.5+小 (2) 入,进一步提高了在ImageNet数据集上的分类 效果。 这个函数的特点是在向量长度很接近于0时 起到放大作用,而不像原来的函数压缩全局向量。 ResNet架构由He等)于2015年提出,与传 统的顺序CNN网络架构不同,其加入了恒等映射 此外,为节省计算资源,本文使用权值共享代 替全连接形式的Capsule,.如图5所示。 层,从而让网络在深度增加情况下而避免“退化” 现象,同时压缩了参数量级。 @0p@pp④@@4@p@p@@ Xception架构由Chollet等2网于2016年提出, 它是Inception架构的扩展,用深度可分离的卷积 代替了标准的Inception模块,更大程度了减少了 W 模型参数,并且在ImageNet上获得了更高的准 1+1层 确率。 迁移学习训练分为两步,如图6所示。 1层 在ImageNet数据集 上预训练后的参数 步骤1:Fine-tuning 图5权值共享形式的Capsule Fig.5 Weights sharing Capsule 迁移学习网络 全 卷积模块 分类器 所有输入向量共享一个权值矩阵可以很大程 解冻部分参数 【训练所有参数 化 出 度上减少参数量级,从而降低模型过拟合的风 「参数迁移 险,并且压缩计算所需的内存和时间。在权值共 步骤2:训练OracleNet 享形式下,式(1)修改为式(3)形式: 卷积模块 Capsule模块 输 =Wjur (3) (冻结所有参数 (训练所有参数 3.1.3重构模块 在输出Capsule之后建立重构模块。本文尝 OracleNet 试了多种重构方式,包括全连接、卷积+上采样、 重构模块 (训练所有参数 反卷积等,最终选择使用多层反卷积的结构,对 于甲骨文构件数据来说效果最优。每层反卷积层 图6基于迁移学习的OracleNet 均采用ReLU激活函数,并且在每个反卷积层后 Fig.6 OracleNet based on transfer learning 设置Batch Normalization批标准化层。 1)使用已经在ImageNet数据集上预训练完 3.1.4损失函数与优化器 成的迁移学习网络(InceptionV3、ResNet50 OracleNet的分类损失使用Margin Loss,而重 和Xception架构),解冻其最后10层卷积层的参 构损失使用交叉嫡(Cross Entropy),为了让两者保 数,在全局池化层后新添加由多层全连接层构成 持同一量级,将重构损失按照一定比例进行缩 的分类器,并使用甲骨文部数据集对其进行微调 小,缩小比例取决于重构的图片尺寸。最后将分 (Fine-tuning)训练。 类损失和重构损失相加构成总损失,并通过Adam 2)在训练OracleNet时,将l)中的预训练网
tion)[18] 进行正则化。 3.1.2 Capsule 模块 在卷积层后分别加入两层 Capsule,使用 squashing 函数作为激活函数。输出层 Capsule 数 量为 148 个,每个 Capsule 对应一个甲骨文构件。 两层 Capsule 之间的参数在整个模型前向传播 时通过动态路由算法进行更新,路迭代次数为 3 次。 在本文实验中发现,除了输出层之外的 Capsule 采用修改后的 squashing 激活函数会使结果有 所提升,如式 (2) 所示: vj = sj 2 0.5+ sj 2 sj sj (2) 这个函数的特点是在向量长度很接近于 0 时 起到放大作用,而不像原来的函数压缩全局向量。 此外,为节省计算资源,本文使用权值共享代 替全连接形式的 Capsule,如图 5 所示。 l + 1 层 l 层 u1 u2 u3 u4 W1 W2 W3 u1|1 ^ u1|2 ^ u1|3 ^ u1|4 ^ u2|1 ^ u2|2 ^ u2|3 ^ u2|4 ^ u3|1 ^ u3|2 ^ u3|3 ^ u3|4 ^ 图 5 权值共享形式的 Capsule Fig. 5 Weights sharing Capsule 所有输入向量共享一个权值矩阵可以很大程 度上减少参数量级,从而降低模型过拟合的风 险,并且压缩计算所需的内存和时间。在权值共 享形式下,式 (1) 修改为式 (3) 形式: uˆ j|i = Wjui (3) 3.1.3 重构模块 在输出 Capsule 之后建立重构模块。本文尝 试了多种重构方式,包括全连接、卷积+上采样、 反卷积等,最终选择使用多层反卷积的结构,对 于甲骨文构件数据来说效果最优。每层反卷积层 均采用 ReLU 激活函数,并且在每个反卷积层后 设置 Batch Normalization 批标准化层。 3.1.4 损失函数与优化器 OracleNet 的分类损失使用 Margin Loss,而重 构损失使用交叉熵 (Cross Entropy),为了让两者保 持同一量级,将重构损失按照一定比例进行缩 小,缩小比例取决于重构的图片尺寸。最后将分 类损失和重构损失相加构成总损失,并通过 Adam 优化器[19] 进行梯度回传更新。 3.2 基于迁移学习的 OracleNet 鉴于 Capsule 网络的计算量相比传统 CNN 结 构提升了数倍,为了节省计算资源,本文采用了 迁移学习的方式来训练 OracleNet 中的卷积模 块。本文分别使用已在 ImageNET 数据集上预训 练过的 InceptionV3、ResNet50 和 Xception 架构进 行迁移学习训练。 Inception 架构由 Szegedy 等 [20] 于 2014 年提 出,该架使用一种特殊的 Inception 模块充当“多 级特征提取器”,分别使用不同大小的卷积核进行 卷积,并把卷积输出串联起来作为下一层的输 入,进一步提高了在 ImageNet 数据集上的分类 效果。 ResNet 架构由 He 等 [21] 于 2015 年提出,与传 统的顺序 CNN 网络架构不同,其加入了恒等映射 层,从而让网络在深度增加情况下而避免“退化” 现象,同时压缩了参数量级。 Xception 架构由 Chollet 等 [22] 于 2016 年提出, 它是 Inception 架构的扩展,用深度可分离的卷积 代替了标准的 Inception 模块,更大程度了减少了 模型参数,并且在 ImageNet 上获得了更高的准 确率。 迁移学习训练分为两步,如图 6 所示。 迁移学习网络 卷积模块 (解冻部分参数) 分类器 (训练所有参数) 卷积模块 (冻结所有参数) Capsule 模块 (训练所有参数) 重构模块 (训练所有参数) 输 出 全 局 池 化 输 出 在ImageNet数据集 上预训练后的参数 参数迁移 步骤1:Fine-tuning 步骤2:训练 OracleNet OracleNet 图 6 基于迁移学习的 OracleNet Fig. 6 OracleNet based on transfer learning 1)使用已经在 ImageNet 数据集上预训练完 成的迁移学习网 络 (InceptionV3、 ResNet50 和 Xception 架构),解冻其最后 10 层卷积层的参 数,在全局池化层后新添加由多层全连接层构成 的分类器,并使用甲骨文部数据集对其进行微调 (Fine-tuning) 训练。 2)在训练 OracleNet 时,将 1)中的预训练网 ·248· 智 能 系 统 学 报 第 15 卷
第2期 鲁绪正,等:基于Capsule网络的甲骨文构件识别方法 ·249· 络卷积部分的参数迁移至OracleNet的卷积模块, 2)考虑置信度:设置置信度阈值a,0%<a< 并且冻结其所有参数。使用甲骨文部数据集对 100%。选取所有预测概率大于a的类别生成预 Capsule模块和重构模块进行训练。 测构件列表。 3.3使用OracleNet预测甲骨文字形中的构件 使用训练完成的OracleNet预测甲骨文字形 4实验 中包含的构件。 4.1数据预处理 将甲骨文字形图片其输入已训练的模型,得 鉴于甲骨文构件原始数据集大小不足,且各 到Capsule输出层的预测向量组。计算每个类别 类别样本数不均衡,本文通过数据增强(data au- 对应的激活向量的模长,得到每个类别的预测概 gmentation)方法2),对原始图片进行旋转、平移、 率,然后判断甲骨文字形中包含的构件,其流程 反转、放缩等随机干扰,生成新的样本,从而扩充 如图7所示。 原始数据集。 甲骨文字形 甲骨文构件 将扩充后的数据集样本进行归一化处理,放 构件索引 缩至(0,1)区间,并按照4:1的比例进行训练集 -0,651 测试集拆分,同时对样本标签进行独热编码(One 判断预测构件 Hot Encoding)。 甲骨文构件的原始数据集包含148类构件, 图7甲骨文构件识别流程 Fig.7 Process of oracle radical recognition 共108989张样本图片。在此基础上使用不同的 本文通过两种方式来对甲骨文字形中包含的 图片采样尺寸进行数据增强,最终建立了3个新 构件进行判断,生成最终的预测构件列表: 的甲骨文构件数据集,分别为Radical-2000-28、 1)不考虑置信度:选取预测概率中最高的 Radical-10000-56和Radical-10000-224.如表3 n个类别生成预测构件列表; 所示。 表3经过预处理的甲骨文构件数据集 Table 3 Preprocessed oracle radical dataset Radical-2000-28 Radical-10000-56 Radical-10000-224 Oracle-224 训练集样本数 236800 1184000 1184000 验证集样本数 59200 296000 296000 测试集样本数 92160 图片尺寸 28×28 56×56 224×224 224×224 其中Oracle-.224为已识别并被标记的甲骨文 Net50和Xception模型进行Fine-tuning训练。 字形,作为甲骨文构件识别的最终测试集,也经 2)使用甲骨文构件训练集Radical-2000-28、 过了上述步骤中同样的归一化和独热编码处理。 Radical--10000-56、Radical-10000-224等数据集,对 4.2训练OracleNet OracleNet的Capsule模块和重构模块进行训练。 4.2.1基于迁移学习的OracleNet训练 训练周期为20个epoch(训练周期),学习率设置 OracleNet使用甲骨文构件数据集进行训练。 为0.001,每2000个批次后衰减为之前的96%。 本文基于TensorFlow平台进行OracleNet的代 此外,作为对照,本文额外实现并训练了一个 码实现,实验设备为双路NVIDIA GeForce GTX108OTi。 基线模型(baseline model)),其采用Hinton提出的 本文采用迁移学习的方式来训练OracleN- CapsNet架构,包含2层卷积层和2层Capsule层, εt中的卷积模块,具体训练步骤如下。 并使用3层全连接层作为重构模块。 1)使用Radical-10000-224数据集对已在Im- OracleNet在甲骨文构件训练集上的训练结 ageNET数据集上预训练过的InceptionV3、Res 果如表4所示
络卷积部分的参数迁移至 OracleNet 的卷积模块, 并且冻结其所有参数。使用甲骨文部数据集对 Capsule 模块和重构模块进行训练。 3.3 使用 OracleNet 预测甲骨文字形中的构件 使用训练完成的 OracleNet 预测甲骨文字形 中包含的构件。 将甲骨文字形图片其输入已训练的模型,得 到 Capsule 输出层的预测向量组。计算每个类别 对应的激活向量的模长,得到每个类别的预测概 率,然后判断甲骨文字形中包含的构件,其流程 如图 7 所示。 ... ... 甲骨文字形 甲骨文构件 判断预测构件 构件索引 [0, 65] 图 7 甲骨文构件识别流程 Fig. 7 Process of oracle radical recognition 本文通过两种方式来对甲骨文字形中包含的 构件进行判断,生成最终的预测构件列表: 1) 不考虑置信度:选取预测概率中最高的 n 个类别生成预测构件列表; 2) 考虑置信度:设置置信度阈值 a,0% < a < 100%。选取所有预测概率大于 a 的类别生成预 测构件列表。 4 实验 4.1 数据预处理 鉴于甲骨文构件原始数据集大小不足,且各 类别样本数不均衡,本文通过数据增强 (data augmentation) 方法[23] ,对原始图片进行旋转、平移、 反转、放缩等随机干扰,生成新的样本,从而扩充 原始数据集。 将扩充后的数据集样本进行归一化处理,放 缩至 (0, 1) 区间,并按照 4∶1 的比例进行训练集− 测试集拆分,同时对样本标签进行独热编码 (OneHot Encoding)。 甲骨文构件的原始数据集包含 148 类构件, 共 108 989 张样本图片。在此基础上使用不同的 图片采样尺寸进行数据增强,最终建立了 3 个新 的甲骨文构件数据集,分别为 Radical-2000-28、 Radical-10000-56 和 Radical-10000-224,如表 3 所示。 表 3 经过预处理的甲骨文构件数据集 Table 3 Preprocessed oracle radical dataset Radical-2000-28 Radical-10000-56 Radical-10000-224 Oracle-224 训练集样本数 236 800 1 184 000 1 184 000 − 验证集样本数 59 200 296 000 296 000 − 测试集样本数 − − − 92 160 图片尺寸 28×28 56×56 224×224 224×224 其中 Oracle-224 为已识别并被标记的甲骨文 字形,作为甲骨文构件识别的最终测试集,也经 过了上述步骤中同样的归一化和独热编码处理。 4.2 训练 OracleNet 4.2.1 基于迁移学习的 OracleNet 训练 OracleNet 使用甲骨文构件数据集进行训练。 本文基于 TensorFlow 平台进行 OracleNet 的代 码实现,实验设备为双路 NVIDIA GeForce GTX 1080Ti。 本文采用迁移学习的方式来训练 OracleNet 中的卷积模块,具体训练步骤如下。 1) 使用 Radical-10000-224 数据集对已在 ImageNET 数据集上预训练过的 InceptionV3、ResNet50 和 Xception 模型进行 Fine-tuning 训练。 2) 使用甲骨文构件训练集 Radical-2000-28、 Radical-10000-56、Radical-10000-224 等数据集,对 OracleNet 的 Capsule 模块和重构模块进行训练。 训练周期为 20 个 epoch(训练周期),学习率设置 为 0.001,每 2 000 个批次后衰减为之前的 96%。 此外,作为对照,本文额外实现并训练了一个 基线模型 (baseline model),其采用 Hinton 提出的 CapsNet 架构,包含 2 层卷积层和 2 层 Capsule 层, 并使用 3 层全连接层作为重构模块。 OracleNet 在甲骨文构件训练集上的训练结 果如表 4 所示。 第 2 期 鲁绪正,等:基于 Capsule 网络的甲骨文构件识别方法 ·249·
·250· 智能系统学报 第15卷 表4 OracleNet训练的的验证集准确率 映射层,具有更佳的特征提取能力。 Table 4 Validation accuracy of OracleNet training 4.2.2模型融合 训练集 模型 Top1准确率/%Top5准确率/% 本文使用了模型融合(model ensemble)的方 2000-28 基线模型 65.59 71.32 法提升模型鲁棒性,主要使用以下两种方法进行 10000-56 InceptionV3迁移 融合。 76.86 83.53 1)在训练过程中,将不同超参数下各个模型 10000-56 ResNet:50迁移 77.42 84.61 的预测结果(概率)进行加权平均融合; 10000-56 Xceptioni迁移 79.67 87.26 2)在进行预测时,从原始图片中随机裁剪出 若干不同大小、不同位置的图片,并将这些图片 从训练的验证结果来说: 的预测结果进行融合。 1)迁移学习带来的提升是明显的,相对于基 此外,如果在预测时考虑置信度,若直接采用 线模型提升了10%以上的准确率,因为其将在 加权平均的方法进行模型融合会减小方差,使预 ImageNET数据及上已经学得的图像知识迁移到 测概率大幅降低至置信度以下,反而使精确度下 了甲骨文任务中识别中,同时极大程度上节省了 降。所以,针对考虑置信度的模型融合方式为: 计算资源和时间; 每个类别从所有模型的预测结果中选取概率最高 2)Xception架构优于InceptionV.3和Res- 的值,作为该类别的预测概率,并最终生成融合 Net50架构,这是因为它对传统的Inception模块 后的结果。 进行了优化,并且加入了类似于ResNet中的恒等 使用模型后的结果如表5所示。 表5模型融合后的OracleNet验证集准确率 Table 5 Validation accuracy of OracleNet with ensemble 训练集 模型 Topl准确率/% Top5准确率/% 2000-28 基线模型 65.59 71.32 10000-56 Xceptioni迁移 79.67 87.26 10000-56 Xception迁移+S模型融合 80.24 87.72 10000-56 Xception迁移+lO模型融合 80.90 88.88 10000-224 Xceptioni迁移+10模型融合 82.71 90.32 可以清楚地看到,模型融合带来了1%以上 表6模型融合后的OracleNet验证集准确率 的小幅提升,这是因为它通过降低预测结果的方 Table 6 Training time of OracleNet 差,使模型系统的鲁棒性得到了提升。不同超参 训练集 模型 训练时间小 数下的模型预测的结果中,对于发生分歧的类 2000-28 基线模型 0.5 别,模型融合会降低对应的概率;而对于大部分 10000-56 InceptionV3迁移 5 模型都一致的类比,模型融合会保留其原有的判 10000-56 ResNet:50迁移 5 别(如激活或不激活)。通过模型融合,降低了模 10000-56 Xception迁移 型预测结果中的部分噪声,提高了模型预测的稳 10000-56 Xceptioni迁移+S模型融合 25 定性。 10000-56 Xceptioni迁移+10模型融合 50 此外,使用Radical.-10000-224数据集可以获 10000-224 Xceptioni迁移+10模型融合 140 得更高的准确率,因为该数据集中每张图片所含 可以看到,使用更大尺寸的图像可以带来更 像素是Radical-10000-56的16倍,包含了更多的 好的训练效果,这是因为更高的分辨率包含了更 图像信息,也为重构模块带来了更好的正则化 多的特征信息,也为重构模块带来了更好的正则 效果。 化效果。采用模型融合的方式也提升了模型的鲁 4.2.3训练时间对比 棒性并带来了准确度的提升。 不同模型的训练时间对比如表6所示。 但是,大尺寸和模型融合的代价是计算时间
表 4 OracleNet 训练的的验证集准确率 Table 4 Validation accuracy of OracleNet training 训练集 模型 Top1准确率/% Top5准确率/% 2000-28 基线模型 65.59 71.32 10000-56 InceptionV3迁移 76.86 83.53 10000-56 ResNet50迁移 77.42 84.61 10000-56 Xception迁移 79.67 87.26 从训练的验证结果来说: 1) 迁移学习带来的提升是明显的,相对于基 线模型提升了 10% 以上的准确率,因为其将在 ImageNET 数据及上已经学得的图像知识迁移到 了甲骨文任务中识别中,同时极大程度上节省了 计算资源和时间; 2)Xception 架构优于 InceptionV3 和 ResNet50 架构,这是因为它对传统的 Inception 模块 进行了优化,并且加入了类似于 ResNet 中的恒等 映射层,具有更佳的特征提取能力。 4.2.2 模型融合 本文使用了模型融合 (model ensemble) 的方 法提升模型鲁棒性,主要使用以下两种方法进行 融合。 1) 在训练过程中,将不同超参数下各个模型 的预测结果 (概率) 进行加权平均融合; 2) 在进行预测时,从原始图片中随机裁剪出 若干不同大小、不同位置的图片,并将这些图片 的预测结果进行融合。 此外,如果在预测时考虑置信度,若直接采用 加权平均的方法进行模型融合会减小方差,使预 测概率大幅降低至置信度以下,反而使精确度下 降。所以,针对考虑置信度的模型融合方式为: 每个类别从所有模型的预测结果中选取概率最高 的值,作为该类别的预测概率,并最终生成融合 后的结果。 使用模型后的结果如表 5 所示。 表 5 模型融合后的 OracleNet 验证集准确率 Table 5 Validation accuracy of OracleNet with ensemble 训练集 模型 Top1准确率/% Top5准确率/% 2000-28 基线模型 65.59 71.32 10000-56 Xception迁移 79.67 87.26 10000-56 Xception迁移+5模型融合 80.24 87.72 10000-56 Xception迁移+10模型融合 80.90 88.88 10000-224 Xception迁移+10模型融合 82.71 90.32 可以清楚地看到,模型融合带来了 1% 以上 的小幅提升,这是因为它通过降低预测结果的方 差,使模型系统的鲁棒性得到了提升。不同超参 数下的模型预测的结果中,对于发生分歧的类 别,模型融合会降低对应的概率;而对于大部分 模型都一致的类比,模型融合会保留其原有的判 别 (如激活或不激活)。通过模型融合,降低了模 型预测结果中的部分噪声,提高了模型预测的稳 定性。 此外,使用 Radical-10000-224 数据集可以获 得更高的准确率,因为该数据集中每张图片所含 像素是 Radical-10000-56 的 16 倍,包含了更多的 图像信息,也为重构模块带来了更好的正则化 效果。 4.2.3 训练时间对比 不同模型的训练时间对比如表 6 所示。 可以看到,使用更大尺寸的图像可以带来更 好的训练效果,这是因为更高的分辨率包含了更 多的特征信息,也为重构模块带来了更好的正则 化效果。采用模型融合的方式也提升了模型的鲁 棒性并带来了准确度的提升。 但是,大尺寸和模型融合的代价是计算时间 表 6 模型融合后的 OracleNet 验证集准确率 Table 6 Training time of OracleNet 训练集 模型 训练时间/h 2000-28 基线模型 0.5 10000-56 InceptionV3迁移 5 10000-56 ResNet50迁移 5 10000-56 Xception迁移 5 10000-56 Xception迁移+5模型融合 25 10000-56 Xception迁移+10模型融合 50 10000-224 Xception迁移+10模型融合 140 ·250· 智 能 系 统 学 报 第 15 卷
第2期 鲁绪正,等:基于Capsule网络的甲骨文构件识别方法 ·251· 的成倍增长,使用最大尺寸训练集下、Xception迁 式中:TruePositive为真正例;FalsePositive为假正 移和10模型融合的累计时间达到了140h。 例。统计过程中,对于一个真实甲骨文字形样 4.3甲骨文构件识别 本,若其真实构件标签之一出现在预测构件列表 通过已识别并标记的甲骨文字形数据集Or 中,即认为该标签被成功预测,判为真正例,否则 acle-224对OracleNet进行测试评估。 将该标签判为假正例。 甲骨文构件识别是典型的多分类任务,通过 精确度(Precision)对预测结果进行评估,其计算 各模型在Oracle-224测试集上的预测结果如 方式为 表7所示。 TruePositive 随机选取部分考虑置信度50%的测试结果 Precision= TruePositive +FalsePositive (4) 如表8所示。 表7 OracleNet在Oracle-224字形测试集上的精确度 Table 7 Precision on Oracle-224 oracle graphic test set 考虑置信度50%的 不考虑置信度的Top2 不考虑置信度的Top5 训练集 模型 精确度/% 精确度/% 精确度/% Radical-2000-28 基线模型(baseline) 44.76 51.26 56.02 Radical-10000-56 Xception迁移 53.23 63.06 68.14 Radical-10000-56 Xception迁移+S模型融合 58.92 63.77 69.61 Radical-10000-56 Xception迁移+lO模型融合 61.51 63.35 69.94 Radical-10000-224 Xception迁移+l0模型融合 62.39 65.82 71.56 表8考虑置信度50%的预测结果示例 Table 8 Prediction results considering a confidence level of 50% 字形索引 字形 真实构件标签 预测构件标签 预测构件示例图片 109 个 [1,8 [0,1,8,65] 158 [1,60] [1,59,60,133] 542 为 [2,91 [9,78] 793 [2] [25,117,80] 1041 [3,42] 3刀 季 考虑置信度带来的好处是,可以展现出Cap 果。此外,考虑置信度时没有优秀的模型融合方 sule网络“真正”认为输人字形中存在的构件类 案,如果直接进行平均融合会使全部概率大幅降 别,更符合人类的认知方式。可以看到,当字形 低至置信度以下,即使按照本文设计的融合方 结构关系较为简单时,有着优秀的预测性能;但 法,也会部分丧失模型融合带来的鲁棒性。 是,当字形较为复杂时,所有类别的概率都会降 随机选取部分不考虑置信度的Top2的测试 低,经常只输出1个预测类别甚至没有预测结 结果如表9所示
的成倍增长,使用最大尺寸训练集下、Xception 迁 移和 10 模型融合的累计时间达到了 140 h。 4.3 甲骨文构件识别 通过已识别并标记的甲骨文字形数据集 Oracle-224 对 OracleNet 进行测试评估。 甲骨文构件识别是典型的多分类任务,通过 精确度 (Precision) 对预测结果进行评估,其计算 方式为 Precision = TruePositive TruePositive+FalsePositive (4) 式中: TruePositive 为真正例; FalsePositive 为假正 例。统计过程中,对于一个真实甲骨文字形样 本,若其真实构件标签之一出现在预测构件列表 中,即认为该标签被成功预测,判为真正例,否则 将该标签判为假正例。 各模型在 Oracle-224 测试集上的预测结果如 表 7 所示。 随机选取部分考虑置信度 50% 的测试结果 如表 8 所示。 表 7 OracleNet 在 Oracle-224 字形测试集上的精确度 Table 7 Precision on Oracle-224 oracle graphic test set 训练集 模型 考虑置信度50%的 精确度/% 不考虑置信度的Top2 精确度/% 不考虑置信度的Top5 精确度/% Radical-2000-28 基线模型(baseline) 44.76 51.26 56.02 Radical-10000-56 Xception迁移 53.23 63.06 68.14 Radical-10000-56 Xception迁移+5模型融合 58.92 63.77 69.61 Radical-10000-56 Xception迁移+10模型融合 61.51 63.35 69.94 Radical-10000-224 Xception迁移+10模型融合 62.39 65.82 71.56 表 8 考虑置信度 50% 的预测结果示例 Table 8 Prediction results considering a confidence level of 50% 字形索引 字形 真实构件标签 预测构件标签 预测构件示例图片 109 [1, 8] [0, 1, 8, 65] 158 [1, 60] [1, 59, 60, 133] 542 [2, 9] [9, 78] 793 [25] [25, 117, 80] 1 041 [3, 42] [37] 考虑置信度带来的好处是,可以展现出 Capsule 网络“真正”认为输入字形中存在的构件类 别,更符合人类的认知方式。可以看到,当字形 结构关系较为简单时,有着优秀的预测性能;但 是,当字形较为复杂时,所有类别的概率都会降 低,经常只输出 1 个预测类别甚至没有预测结 果。此外,考虑置信度时没有优秀的模型融合方 案,如果直接进行平均融合会使全部概率大幅降 低至置信度以下,即使按照本文设计的融合方 法,也会部分丧失模型融合带来的鲁棒性。 随机选取部分不考虑置信度的 Top2 的测试 结果如表 9 所示。 第 2 期 鲁绪正,等:基于 Capsule 网络的甲骨文构件识别方法 ·251·
·252· 智能系统学 报 第15卷 表9不考虑置信度的Top2预测结果示例 5 结束语 Table 9 Top2 prediction results without considering a con- fidence level 本文提出了一种基于深度学习的机器识别甲 字形索引字形 真实构件标签预测构件标签预测构件图片 骨文字形中包含构件的方法。首先,通过扫描和 手工仿写的方式,分别建立了已标记的甲骨文字 75 [0,1] [0,1] 形数据集和构件数据集。接着,本文分析了Cap sule网络的原理,以及其对于甲骨文构件识别任 167 [2,8 [8,19 务的优势所在,并且构建了一个基于Capsule网 络的甲骨文构件识别模型OracleNet。最后,本文 337 [0,5 [5,64] 使用之前构建的数据集对OracleNet进行了验证, 通过迁移学习的方式使用甲骨文构件对其进行训 900 [8,28,60] [60,111] 练,训练过程中在验证集上的Top5准确率达到 了90%以上;在甲骨文字形数据集上进行了最终 1041 [0,37刀 [0,37刀 测试和评估,得到了高于70%的精确度。实验表 明,基于Capsule网络的OracleNet可以高效地对 可以看到,不考虑置信度时,会强制模型输出 甲骨文字形中所含构件进行识别,并给出候选构 概率最高的若干个类别,即使在所有概率都很低 件列表。 的情况下也可以进行预测。这种方式不论是对简 本文的贡献在于,通过将甲骨文构件标记的 单还是复杂的字形结构都有着优秀的识别能力, 工作自动化,可以给甲骨文相关工作者高质量的 鲁棒性比考虑置信度时更高。但是,其缺点是会 指导意见,并且在很大程度上降低他们的工作 输出冗余的类别,干扰人们进一步的工作。如 量,从而将研究精力转向更深的领域。同时,对 Top5预测虽然准确度最高,但是其预测的类别数 甲骨文构件的识别也提升了破译未识别甲骨文字 远多于真实标签中的类别数,相关工作者还需要 形的可能性。本文的另一个贡献是建立了完善且 从预测的5个类别中再次进行人工筛选。 公开的甲骨文字形和构件数据集。这两个数据集 此外,部分甲骨构件本身包含了其他构件的 不仅可以对甲骨文相关工作者提供帮助,简化他 图形,如表10所示。 们的数据处理相关工作,也可以用于各类图像识 表10部分存在包含关系的构件 别模型的验证,从而帮助研究者优化算法。 Table 10 Radicals with inclusive relations 本文验证了Capsule网络和传统CNN相比的 索引构件图片包含的构件索 构件图片 优势:其将实体(或属性)的概念引入到了网络 [65,133,134 中,从而使不同Capsule(或神经元)之间具有更近 似于人类知识体系的联系。本文中实验也表明 60 [59.133] 了Capsule网络有效地学习到了甲骨文构件的特 征信息,以及构件和字形之间的构形关系。在今 143 [98,133,134,144] 后的工作中,可以继续研究如何继续利用这些知 识去破译剩余的2500多个未被识别的甲骨文字形。 这种包含关系会给模型带来困扰,因为Cap sule网络在进行预测时由对应各个构件的激活向 参考文献: 量的模长进行判断,并输出其检测到的所有构 []朱彦民.从甲骨文说到中国文化自信[).殷都学刊, 件。如果一个构件存在包含关系,Capsule网络可 2018.39(3):23-34 能会错误地检测到所有包含的图形,并将其所包 ZHU Yanmin.From the oracle to Chinese culture confid- 含的其他构件一起输出。 ence[J].Yindu journal,2018,39(3):23-34. 存在包含关系的构件的概率大小不一,所以 [2]竺海燕.甲骨構件與甲骨文構形系統研究D1.上海:华 很难通过对预测概率排序的方式来进行选择,而 东师范大学,2005 如果将全部构件都输出,则会造成预测结果的冗 ZHU Haiyan.Research of the structural element and struc- 余,不利于进一步工作。如何在存在此类包含关 tural system of the oracle-bone inscriptions[D].Shanghai: 系的众多构件中判断正确的类别是一个难点,也 East China Normal University,2005. 是本文未来进一步研究的方向。 [3]周新伦,李锋,华星城,等.甲骨文计算机识别方法研
表 9 不考虑置信度的 Top2 预测结果示例 Table 9 Top2 prediction results without considering a confidence level 字形索引 字形 真实构件标签预测构件标签 预测构件图片 75 [0, 1] [0, 1] 167 [2, 8] [8, 19] 337 [0, 5] [5, 64] 900 [8, 28, 60] [60, 111] 1 041 [0, 37] [0, 37] 可以看到,不考虑置信度时,会强制模型输出 概率最高的若干个类别,即使在所有概率都很低 的情况下也可以进行预测。这种方式不论是对简 单还是复杂的字形结构都有着优秀的识别能力, 鲁棒性比考虑置信度时更高。但是,其缺点是会 输出冗余的类别,干扰人们进一步的工作。如 Top5 预测虽然准确度最高,但是其预测的类别数 远多于真实标签中的类别数,相关工作者还需要 从预测的 5 个类别中再次进行人工筛选。 此外,部分甲骨构件本身包含了其他构件的 图形,如表 10 所示。 表 10 部分存在包含关系的构件 Table 10 Radicals with inclusive relations 索引 构件图片 包含的构件索引 构件图片 4 [65, 133, 134] 60 [59, 133] 143 [98, 133, 134, 144] 这种包含关系会给模型带来困扰,因为 Capsule 网络在进行预测时由对应各个构件的激活向 量的模长进行判断,并输出其检测到的所有构 件。如果一个构件存在包含关系,Capsule 网络可 能会错误地检测到所有包含的图形,并将其所包 含的其他构件一起输出。 存在包含关系的构件的概率大小不一,所以 很难通过对预测概率排序的方式来进行选择,而 如果将全部构件都输出,则会造成预测结果的冗 余,不利于进一步工作。如何在存在此类包含关 系的众多构件中判断正确的类别是一个难点,也 是本文未来进一步研究的方向。 5 结束语 本文提出了一种基于深度学习的机器识别甲 骨文字形中包含构件的方法。首先,通过扫描和 手工仿写的方式,分别建立了已标记的甲骨文字 形数据集和构件数据集。接着,本文分析了 Capsule 网络的原理,以及其对于甲骨文构件识别任 务的优势所在,并且构建了一个基于 Capsule 网 络的甲骨文构件识别模型 OracleNet。最后,本文 使用之前构建的数据集对 OracleNet 进行了验证, 通过迁移学习的方式使用甲骨文构件对其进行训 练,训练过程中在验证集上的 Top5 准确率达到 了 90% 以上;在甲骨文字形数据集上进行了最终 测试和评估,得到了高于 70% 的精确度。实验表 明,基于 Capsule 网络的 OracleNet 可以高效地对 甲骨文字形中所含构件进行识别,并给出候选构 件列表。 本文的贡献在于,通过将甲骨文构件标记的 工作自动化,可以给甲骨文相关工作者高质量的 指导意见,并且在很大程度上降低他们的工作 量,从而将研究精力转向更深的领域。同时,对 甲骨文构件的识别也提升了破译未识别甲骨文字 形的可能性。本文的另一个贡献是建立了完善且 公开的甲骨文字形和构件数据集。这两个数据集 不仅可以对甲骨文相关工作者提供帮助,简化他 们的数据处理相关工作,也可以用于各类图像识 别模型的验证,从而帮助研究者优化算法。 本文验证了 Capsule 网络和传统 CNN 相比的 优势:其将实体 (或属性) 的概念引入到了网络 中,从而使不同 Capsule(或神经元) 之间具有更近 似于人类知识体系的联系。本文中实验也表明 了 Capsule 网络有效地学习到了甲骨文构件的特 征信息,以及构件和字形之间的构形关系。在今 后的工作中,可以继续研究如何继续利用这些知 识去破译剩余的 2 500 多个未被识别的甲骨文字形。 参考文献: 朱彦民. 从甲骨文说到中国文化自信 [J]. 殷都学刊, 2018, 39(3): 23–34. ZHU Yanmin. From the oracle to Chinese culture confidence[J]. Yindu journal, 2018, 39(3): 23–34. [1] 竺海燕. 甲骨構件與甲骨文構形系統研究 [D]. 上海: 华 东师范大学, 2005. ZHU Haiyan. Research of the structural element and structural system of the oracle-bone inscriptions[D]. Shanghai: East China Normal University, 2005. [2] [3] 周新伦, 李锋, 华星城, 等. 甲骨文计算机识别方法研 ·252· 智 能 系 统 学 报 第 15 卷