用少量真实数据训练手写识别器:Hieroglyphia 项目分享小样本学习经验
来源标题:Training a handwriting recognizer on almost no real data
Hieroglyphia 项目用几十条真实手写样本加合成数据训练出一个可在浏览器运行的小模型,用于识别特定个人的手写笔记。项目公开了从基线到迭代3的完整实验过程,包括失败案例;迭代3首次将错误率降到15%以下,但速度门槛仍未通过。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
在几乎没有真实数据的情况下训练手写识别器
我们从一个实验系列中学到的东西:教一个小模型读懂某个人的手写,只用了数十行真实笔迹。每集一个问题,失败也照写。
从第 0 集开始 跳到最新:Base v6:真实的手
Hieroglyphia 能把写在廉价数位板上的笔记转成文字,模型小到可以在浏览器里运行,而且只针对一个人的手写训练。这个设定难,但难的有用:数十个真实样本、一个合成墨迹生成器,以及一个小到运气都能起作用的测试集。大多数小数据项目都有同样的问题,所以这些经验可以迁移。
在任何模型之前:什么算更好,以及如何区分“更好”和“运气好”。
迭代 1:一个从未学会的模型、一个学会了的模型,以及一个在字体上满分、在真人手写上失败的云端基线。
迭代 2:一次改五处。它变好了,但我们说不清为什么。
迭代 3:一个真正的测试集、第一个错误率低于 15% 的模型、一个被我们抓住的混杂因素、一个让每次运行都提前结束的时钟,以及一扇仍然关着的速度闸门。
在花钱租 GPU 之前先检查数据:干净,但抬笔频率是正常人的两倍。
还有十一个实验在排队。在为其中任何一个花钱之前:先把免费的调好、把所有东西记录下来、用搜索代替猜测,并让每次运行更便宜。
一个个人模型,错误率 6.8%,比之前少了三分之一。背后是:一个起点就好 16 个百分点的基线、一个由 120 次搜索试验选出的方案,以及那次改变了我们选择方式的幸运运行。
personal v3.1-stable 的六个设置是怎么来的:在租来的 GPU 上做了两次搜索、抓住了一个幸运的赢家、每个入围方案跑五个随机种子,花 1.99 美元得到一个以 6.8% 错误率读懂书写者的模型。
在改变基础模型的学习来源之前,先做一个对照:v3 在它自己的笔迹上多训练了 12 个 epoch。在书写者的测试行上好了 2.4 个百分点,花了 89 美分,还有一张图表明更多训练已经到顶了。
新型合成手写,在书写者的真实笔迹上以 16 个实验组对对照组做了试点。有三处改动让模型单独读取时变好了,最多提升 4 个百分点。但没有一个能改善 App 实际读取的效果,base v5 也没能取代 v4。
来自其他 153 个人的真实手写,先对对照组做试点,再训练进基础模型。在个性化之前,书写者的测试行错误率从 25.2% 降到 17.6%,而五种假墨迹此前只让分数移动了大约一个百分点。
还有 12 个实验已经写下了对照和预测。每个实验跑完后都会成为一集,不管结果如何。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。