吴恩达《Machine Learning》精炼笔记 12:大规模机器学习和图片文字识别 OCR

简介: 吴恩达《Machine Learning》精炼笔记 12:大规模机器学习和图片文字识别 OCR

系列文章:


吴恩达《Machine Learning》精炼笔记 1:监督学习与非监督学习

吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化

吴恩达《Machine Learning》精炼笔记 4:神经网络基础

吴恩达《Machine Learning》精炼笔记 5:神经网络

吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议

吴恩达《Machine Learning》精炼笔记 7:支持向量机 SVM

吴恩达《Machine Learning》精炼笔记 8:聚类 KMeans 及其 Python实现

吴恩达《Machine Learning》精炼笔记 9:PCA 及其 Python 实现

吴恩达《Machine Learning》精炼笔记 10:异常检测

吴恩达《Machine Learning》精炼笔记 11:推荐系统


本周主要是介绍了两个方面的内容,一个是如何进行大规模的机器学习,另一个是关于图片文字识别OCR 的案例

  • 大规模机器学习
  • 图片文字识别OCR


大规模机器学习(Large Scale Machine Learning)


在低方差的模型中,增加数据集的规模可以帮助我们获取更好的结果。但是当数据集增加到100万条的大规模的时候,我们需要考虑:大规模的训练集是否真的有必要。获取1000个训练集也可以获得更好的效果,通过绘制学习曲线来进行判断。


image.png


随机梯度下降法Stochastic Gradient Descent


如果需要对大规模的数据集进行训练,可以尝试使用随机梯度下降法来代替批量梯度下降法。随机梯度下降法的代价函数是

image.png

具体算法的过程为

  1. 先对训练集进行随机的洗牌操作,打乱数据的顺序
  2. 重复如下过程:


image.png

  1. 随机梯度下降算法是每次计算之后更新参数θ,不需要现将所有的训练集求和。


算法可能存在的问题

不是每一步都是朝着”正确”的方向迈出的。因此算法虽然会逐渐走向全 局最小值的位置,但是可能无法站到那个最小值的那一点,而是在最小值点附近徘徊。

image.png

小批量梯度下降 Mini-Batch Gradient Descent


小批量梯度下降算法是介于批量梯度下降算法和梯度下降算法之间的算法。每计算常数b次训练实例,便更新一次参数θ。参数b通常在2-100之间。

image.png

随机梯度下降收敛


随机梯度下降算法的调试和学习率α的选取

  • 在批量梯度下降算法中,可以令代价函数JJ为迭代次数的函数,绘制图表,根据图表来 判断梯度下降是否收敛;大规模的训练集情况下,此举不现实,计算代价太大
  • 在随机梯度下降中,更新θ之前都计算一次代价,然后迭代X后求出X对训练实例的计算代价的平均值,最后绘制次数X和代价平均值之间的图像


image.png


随着不断地靠近全局最小值,通过减小学习率,迫使算法收敛而非在最小值最近徘徊。

image.png


映射化简和数据并行Map Reduce and Data Parallelism


映射化简和数据并行对于大规模机器学习问题而言是非常重要的概念。如果我们能够将我们的数据集分配给不多台 计算机,让每一台计算机处理数据集的一个子集,然后我们将计所的结果汇总在求和。这样 的方法叫做映射简化。


如果任何学习算法能够表达为对训练集的函数求和,那么便能将这个任务分配给多台计算机(或者同台计算机的不同CPU核心),达到加速处理的目的。比如400个训练实例,分配给4台计算机进行处理:


image.png


图片文字识别(Application Example: Photo OCR)


问题描述和流程图


图像文字识别应用所作的事是从一张给定的图片中识别文字。


image.png


基本步骤包含:

  1. 文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来
  2. 字符切分(Character segmentation)——将文字分割成一个个单一的字符
  3. 字符分类(Characterclassification)——确定每一个字符是什么 可以用任务流程图来表


每项任务可以有不同的团队来负责处理。


image.png


滑动窗口Sliding windows


图片识别


滑动窗口是一项用来从图像中抽取对象的技术。看一个栗子:


image.png


如果我们需要从上面的图形中提取出来行人:

  • 用许多固定尺寸的图片来训练一个能够准确识别行人的模型
  • 用上面训练识别行人的模型时所采用的图片尺寸在我们要进行行人识别的图片上进行剪裁
  • 剪裁得到的切片交给模型,让模型判断是否为行人
  • 重复循环上述的操作步骤,直至将图片全部检测完。

文字识别


滑动窗口技术也被用于文字识别。

  • 首先训练模型能够区分字符与非字符
  • 然后运用滑动窗口技术识别字符
  • 完成字符的识别,将识别得出的区域进行扩展
  • 将重叠的区域进行合并,以宽高比作为过滤条件,过滤掉高度比宽度更大的区域


image.png


上述步骤是文字侦察阶段,接下来通过训练出一个模型来讲文字分割成一个个字符,需要的训练集由单个字符的图片和两个相连字符之间的图片来训练模型。


image.png

训练完成之后,可以通过滑动窗口技术来进行字符识别。该阶段属于字符切分阶段。


image.png

最后通过利用神经网络、支持向量机、或者逻辑回归等算法训练出一个分类器,属于是字符分类阶段。


获取大量数据和人工数据


如果我们的模型是低方差的,那么获得更多的数据用于训练模型,是能够有更好的效果。


获取大量数据的方法有

  • 人工数据合成
  • 手动收集、标记数据
  • 众包


上限分析Ceiling Analysis


在机器学习的应用中,我们通常需要通过几个步骤才能进行最终的预测,我们如何能够 知道哪一部分最值得我们花时间和精力去改善呢?这个问题可以通过上限分析来回答。


image.png


回到文字识别的应用中,流程图如下:


我们发现每个部分的输出都是下个部分的输入。在上限分析中,我们选取其中的某个部分,手工提供100%争取的输出结果,然后看整体的效果提升了多少。

  • 如果提升的比例比较明显,可以考虑在这个方向投入更过的时间和经历
  • 如果提升的效果微乎其微,意味着某个部分已经做的足够好了

image.png

相关文章
|
8月前
|
机器学习/深度学习 文字识别 Linux
Umi-OCR_文字识别工具 免安装使用教程(附下载安装包)!永久免费,开源离线OCR识别软件下载
Umi-OCR是一款开源免费、支持离线运行的高精度OCR文字识别工具,基于深度学习技术,可快速识别中文、英文、日文等多种语言。无需联网,保护隐私,适用于Windows和Linux系统,解压即用,操作简便,是处理图片转文本的理想选择。
5158 7
|
机器学习/深度学习 文字识别 自然语言处理
OCR技术:解锁文字识别的无限可能
OCR(光学字符识别)技术是数字化浪潮中的关键工具,可将纸质文档、手写笔记或复杂背景下的文字图像转化为可编辑文本。本文从图像采集、预处理、字符识别到文本校正,全面解析OCR技术的原理,并探讨其在智能办公、智慧交通、便捷生活等领域的广泛应用。未来,OCR将与自然语言处理、计算机视觉等技术深度融合,推动智能化和综合化发展。通过开放生态系统和政策支持,开发者可探索更多创新场景,如古籍数字化、盲人阅读等,为社会带来更多价值。
2221 57
|
人工智能 文字识别 API
moonshot-v1-vision-preview:月之暗面Kimi推出多模态视觉理解模型,支持图像识别、OCR文字识别、数据提取
moonshot-v1-vision-preview 是月之暗面推出的多模态图片理解模型,具备强大的图像识别、OCR文字识别和数据提取能力,支持API调用,适用于多种应用场景。
2814 6
moonshot-v1-vision-preview:月之暗面Kimi推出多模态视觉理解模型,支持图像识别、OCR文字识别、数据提取
|
存储 人工智能 文字识别
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
本文介绍了纸质档案数字化的技术流程,包括高精度扫描、图像预处理、自动边界检测与切割、文字与图片分离抽取、档案识别与文本提取,以及识别结果的自动保存。通过去噪、增强对比度、校正倾斜等预处理技术,提高图像质量,确保OCR识别的准确性。平台还支持多字体识别、批量处理和结构化存储,实现了高效、准确的档案数字化。具体应用案例显示,该技术在江西省某地质资料档案馆中显著提升了档案管理的效率和质量。
2076 1
|
文字识别
印刷文字识别使用问题之影响印刷体文字识别率包括哪些
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
文字识别 API 开发工具
印刷文字识别使用问题之如何提高OCR的识别率
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
文字识别 前端开发 API
印刷文字识别操作报错合集之通过HTTPS连接到OCR服务的API时报错,该如何处理
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
JSON 文字识别 数据格式
文本,文字识别,Flask实现内部接口开发,OCR外部接口的开发,如何开发一个识别接口,通过post调用,参数是图片的路径,内部调用,直接传图片路径就行
文本,文字识别,Flask实现内部接口开发,OCR外部接口的开发,如何开发一个识别接口,通过post调用,参数是图片的路径,内部调用,直接传图片路径就行
|
机器学习/深度学习 文字识别 算法
百度飞桨(PaddlePaddle) - PaddleHub OCR 文字识别简单使用
百度飞桨(PaddlePaddle) - PaddleHub OCR 文字识别简单使用
1270 0
|
存储 文字识别 算法
印刷文字识别使用问题之电商图片文字识别是否支持一次调用识别多张图片
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。

热门文章

最新文章