由于深度学习近期取得的进展,手写字符识别任务对一些主流语言来说已然不是什么难题了。但是对于一些训练样本较少的非主流语言来说,这仍是一个挑战性问题。为此,本文提出新模型TextCaps,它每类仅用200个训练样本就能达到和当前最佳水平媲美的结果。

由于深度学习模型近期取得的进展,对于许多主流语言来说,手写字符识别已经是得到解决的问题了。但对于其它语言而言,由于缺乏足够大的、用来训练深度学习模型的标注数据集,这仍然是一个极具挑战性的问题。

尽管 CNN 可以很好地理解图片中的低级和高级特征,但这样做会在池化层上丢失有价值的信息。CNN 的训练需要大量训练样本(一般每一类需要数千或数万个样本)才能成功地对图像分类。因此人们对用少量训练样本训练成功的 CNN 有着浓厚兴趣。

本文提出了一种技术,它借助胶囊网络(Capsule Networks,CapsNets)[4] 解决了标注数据集太小的问题。我们仅通过操纵实例化参数 [5],利用了 CapsNet 增强数据的能力。在本文的例子中,CapsNet 不仅识别了字符图像,还学习了它的属性。这让 CapsNet 得以在标注数据很少的字符识别问题中大展拳脚。

本文的架构以 Sabour 等人提出的 CapsNet 架构 [4] 为基础,该架构是由胶囊网络和全连接解码器网络组成的。研究人员用(deconvolutional network)代替了解码器网络,同时还对胶囊网络做了一些小改动。

通过给表征实体属性的实例化参数加入一些可控噪声,研究人员转换实体以表征现实中发生的实际变化。这样就产生了一种全新的数据生成技术,这种技术生成的数据会比基于仿射变换生成的增强数据更加逼真。

重建准确率在很多情况下也很重要,因此研究人员提出了一种从经验上讲很合适的策略,这种策略结合了可以显著提升重建性能的损失函数。该系统在每类样本只有 200 个数据点的情况下得到了和当前最佳结果相当的结果。如果用更多训练数据,可以得到更好的结果。

本文的主要贡献如下:

  • 在所有可用训练样本上训练该系统后,在 EMNIST-letters、EMNIST-balanced 以及 EMNIST-digits 字符数据集上得到的结果都优于当前最佳结果;

  • 研究人员还在非字符数据集 Fashion-MNIST 上评估了该架构,以确保模型的灵活性和鲁棒性。他们用 200 个训练样本得到了非常好的结果,并用完整的数据集得到了当前最佳的结果;

  • 研究人员提出了一种用少量训练样本(每一类 200 个数据)训练胶囊网络的新技术,并在相同数量的测试样本上实现了当前最佳的性能。和当前最佳的系统相比,我们的模型只需要 10% 的数据就可以得到类似的结果;

  • 研究人员还提出并评估了解码器网络的几个变体,用不同的损失函数分析了解码器网络的性能,以提供组合损失函数的适当策略。

论文:TextCaps : Handwritten Character Recognition with Very Small Datasets 

论文地址:https://arxiv.org/pdf/1904.08095.pdf

摘要:尽管字符识别系统进展很快,但由于缺乏大量有标注的训练数据,很多本地化语言还是难以从中获益。这是因为这样的语言难以获得大量标注数据,而深度学习还无法通过少量训练样本正确学习。

为了解决这个问题,我们引入了一种根据现有样本生成新训练样本的技术。通过给相应的实例化参数添加随机可控噪声,这个新技术可以产生逼真的增强数据,这些增强数据也会反映出人类实际手写字符时会出现的一些变化。

我们只用每类 200 个训练样本的数据进行训练,就得到了超越基于 EMNIST-letter 数据集所获的现有字符识别的结果,同时还获得了与 EMNIST-balanced 、EMNIST-digits 以及 MNIST 这三个数据集相当的现有结果。

我们还开发了一种用损失函数组合有效改善重建能力的策略。我们的系统在缺乏大量标注训练数据的本地化语言的字符识别任务中很有用,甚至在其它相关的通用内容(比如目标识别)上也是如此。

用胶囊网络进行字符识别

我们提出了一种由胶囊网络和解码器网络组成且针对字符识别任务的架构,如图 1 和图 2 所示。

图 1:TextCap 模型:用于字符分类的 CapsNet 模型。

图 2:TextCap 解码器:用于字符重建的解码器网络。通过屏蔽 TextCap 分类器的 DigitCaps 层来获得网络的输入。

基于实例化参数扰动的图像数据生成技术

用预训练的解码器网络,我们可以只用实例化参数向量成功重建原始图像。该扰动算法背后的原理是,通过在实例化向量值中添加可控的随机噪声,我们可以创建和原始图像迥然不同的新图像,从而有效扩大训练数据集。

图 3 展示了改变一个特定实例化参数后产生的图像变体。

图 3:扰动实例化参数后产生的字符变体。

类似地,每一个实例化参数都分别或共同负责图像的某个特定属性。因此,我们提出了一种新技术,它可以根据训练样本有限的数据集产生新数据集,如图 4 所示。

图 4:提升解码器性能的整体方法。

实验和结果

我们从表 1 中每个数据集的训练集中选取了 200 个训练样本来训练 TextCaps,并用每个数据集的完整测试集进行测试。为了测试 TextCaps 架构的性能,我们还用完整的训练集训练了模型,并用完整的测试集进行测试。

表 1:用于评估 TextCaps 的五个数据集。

表 2:TextCaps 和当前最佳结果的比较,表中展示了 3 次试验的平均值和标准差。

表 3:使用不同的损失函数组合时产生的每个重建结果的 PSNR 值。我们在这里用了两个解码器网络模型,每个解码器都有一个损失函数。对每一个损失函数组合来说,第一行的 PSNR 值对应第一个重建损失函数(用在第一个解码器中),第二行对应的是第二个损失函数(用在第二个解码器中)。

原文链接:https://arxiv.org/abs/1904.08095

仅用200个样本就能得到当前最佳结果:手写字符识别新模型TextCaps的更多相关文章

  1. 使用caffemodel模型(由mnist训练)测试单张手写数字样本

    caffe中训练和测试mnist数据集都是批处理,可以反馈识别率,但是看不到单张样本的识别效果,这里使用windows自带的画图工具手写制作0~9的测试数字,然后使用caffemodel模型识别. 1 ...

  2. 小游戏:200行python代码手写2048

    #-*- coding: utf-8 -*- import curses from random import randrange, choice from collections import de ...

  3. 不使用tomcat,仅适用javaSE手写服务器--模拟登陆

    1.搭建框架 我们只是简单模拟,框架简单分三个模块 a,服务器端server包 b,servlet,根据不同的请求url,利用反射生产对应的servlet c,IO工具包,用来关闭IO流 d,编写we ...

  4. 史上最简单的手写Promise,仅17行代码即可实现Promise链式调用

    Promise的使用相比大家已经孰能生巧了,我这里就不赘述了 先说说我写的Promise的问题吧,无法实现宏任务和微任务里的正确执行(也就是在Promise里面写setTimeout,setInter ...

  5. AI学习---数据IO操作&神经网络基础

    数据IO操作 TF支持3种文件读取:    1.直接把数据保存到变量中    2.占位符配合feed_dict使用    3. QueueRunner(TF中特有的) 文件读取流程 文件读取流程(多线 ...

  6. 深度学习论文翻译解析(五):Siamese Neural Networks for One-shot Image Recognition

    论文标题:Siamese Neural Networks for One-shot Image Recognition 论文作者: Gregory Koch   Richard Zemel Rusla ...

  7. Deep-Learning-with-Python] 文本序列中的深度学习

    https://blog.csdn.net/LSG_Down/article/details/81327072 将文本数据处理成有用的数据表示 循环神经网络 使用1D卷积处理序列数据 深度学习模型可以 ...

  8. 支持向量机通俗导论(理解SVM的三层境界)

    原文链接:http://blog.csdn.net/v_july_v/article/details/7624837 作者:July.pluskid :致谢:白石.JerryLead 出处:结构之法算 ...

  9. Python之路【第二十四篇】:Python学习路径及练手项目合集

      Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...

随机推荐

  1. 8.【Spring Cloud Alibaba】配置管理-Nacos

    使用Nacos管理配置 架构图 配置文件遵循的格式 bootstrap.yml pom.xml <dependency> <groupId>org.springframewor ...

  2. 《Deep Learning of Graph Matching》论文阅读

    1. 论文概述 论文首次将深度学习同图匹配(Graph matching)结合,设计了end-to-end网络去学习图匹配过程. 1.1 网络学习的目标(输出) 是两个图(Graph)之间的相似度矩阵 ...

  3. Sentinel基于Apollo的持久化改造

    Sentinel基于Apollo的持久化改造 sentinel默认是将用户在dashboard中编辑过的流控信息保存在内存中,所以在重启后,所有之前配置过的流控规则也就不见了.但是sentinel给用 ...

  4. sql03

    1.约束 约束详解 ->约束的目的:保证数据的完整性. not null ->默认值约束.可空约束.主键约束.外键约束.唯一键约束.检查约束 1) 用sql语句为表添加新的字段 2) 为字 ...

  5. 峰哥说技术:01-Spring Boot介绍

    Spring Boot深度课程系列 峰哥说技术—2020庚子年重磅推出.战胜病毒.我们在行动 Spring Boot介绍 A.Spring Boot是什么? 由于Spring是一个轻量级的企业开发框架 ...

  6. Z字头:逐浪字库入选微软全球主流字体厂商列表

    北京时间2019年6月20日消息: 来自中国的字库厂商--逐浪,成功获得全球软件巨擎.电子出版与数字印刷权威平台-微软的认证,成为获此国际认证的首家字体厂商. 微软公司为了更好的规范国际字库与出版,制 ...

  7. 音频相关 ALSA ffmpeg ffplay 命令用法 g7xx

    采样率: samples 441100 每秒 DAC/ADC 采样的频率,声卡一般还支持 48k 8k 等模式. 通道:channels 2声道 左右声道 也有单声道的声音,5.1 声道 位数: 16 ...

  8. nes 红白机模拟器 第2篇 InfoNES

    InfoNES 支持 map ,声音,代码比较少,方便 移值. 在上个 LiteNES  的基础上,其实不到半小时就移值好了这个,但问题是,一直是黑屏.InfoNES_LoadFrame ()  Wo ...

  9. 【tomcat系列】配置tomcat远程访问

    当程序部署在tomcat上后,需要监测tomcat的性能和监测tomcat的各项指标,如内存使用情况,cpu使用情况,jvm实际情况等,对于这些指标的监控,tomcat提供了访问入口,然而tomcat ...

  10. Simulink仿真入门到精通(十五) Simulink在流程工业中的仿真应用

    15.1 工业乙醇生产与计算机仿真 乙醇作为可再生清洁能源不仅可以代替四乙基铅作为汽油的防爆剂,还可以制造汽油醇.这一巨大的潜在需求促使人们去寻找提高乙醇工业生产率的途径,使人们着手于发酵工程的研究. ...