Pre
title: Radical Analysis Network for Zero-Shot Learning in Printed Chinese Character Recognition
accepted: ICME 2018
paper: https://arxiv.org/abs/1711.01889
code: https://github.com/JianshuZhang/RAN (only IDS dictionary)
ref: RAN for Printed Chinese Character Recognition
关键词: radical
阅读理由: radical analysis, zero-shot learning, encoder-decoder, attention
Idea
使用基于注意力的 encoder-decoder 架构
Motivation&Solution
- 传统的汉字识别方法受限于汉字数量,而且无法泛化
Background
汉字很多(大于20000),但可以分解成500个左右的部件。传统的汉字识别方法最多处理4000个汉字,而且不能应用于新出现的汉字
图1 传统整字识别和RAN的区别
Method(Model)
Overview
图2 十种汉字部件间的常见特殊结构
按照 cjk-decomp 进行汉字的拆解,如图2,该方式定义的结构关系比IDC少了一些。
图3 RAN总体架构,第三列是注意力可视化,三种颜色框分别对应第四列的三种部件
模型属于全卷积结构,因为后续的解码器通过选择视觉特征中特定部分能够有选择地注意图片的特定像素。
提到模型构建中的两个问题:
- CNN对图片编码结果shape固定,但要求的输出caption是不定长的 ——> 使用GRU解码
- 经典的空间注意力机制有个问题,lack of coverage,也就是无法确保每个需要关注的部分都能被恰好注意一次,可能造成某些部件被处理多次,有些又得不到处理 ——> 往注意力计算里加入 coverage 向量,也就是每个时间步计算注意力时都考虑之前的注意力结果
Experiment
Settings
CNN用的VGG,损失为交叉熵,看起来就是根据输入字形图片预测对应的分解部件序列,优化器少见地用了adadelta,测试时启用 beam search,大小为10
宋体,26079个汉字,仅由361个部件和29个空间结构组成...(数据集划分)
Dataset
图8 字体风格可视化
印刷中文字体,灰度图,像素值缩放到[0,1]。同样30个字体,将3755个汉字划分成两部分,一部分测试集,另一部分作为训练集1,然后再加额外一些字体与3755个汉字构成训练集2。训练集2的字体数量从1到22递增,记为N。(但这样所谓的测试集的字体在训练时已经见过,不会有些水分?)
Results
图4 RAN用不同数量样本训练后识别未知汉字的准确率
预测需要完全匹配 ground-truth 才能算是成功,图4是实验结果,作者提到500个汉字就能够覆盖全部的部件和空间结构,但是训练集太小的话很难收敛
图5 识别10种常见结构时的注意力可视化
图6 识别一个未知汉字时的注意力可视化
图7 划分训练集合测试集来识别已知的汉字
图5展示RAN通过注意力可视化识别常见的结构,红色越亮注意力越大。图6描述一步步从图片生成对应描述序列。
表1 RAN与其他方法的精确度比较,VGG14是将Zhong的CNN架构换成VGG,其他不变。
图9 训练集2的字体数量与三种模型性能比较。
Conclusion
引入 部件分析网络(radical analysis network, RAN)做 0-shot 的汉字识别。将来可以探索RAN识别手写汉字或自然场景汉字的能力。
Critique
实验部分介绍得非常详细。挺有意思的,而且作为对比的 Zhong 似乎只是输在CNN架构上?换成VGG后只要训练数据增加,似乎跟RAN差距也不是很大。
Unknown
无
标签:Shot,Network,Chinese,RAN,汉字,训练,可视化,识别,注意力 From: https://www.cnblogs.com/Stareven233/p/17669645.html