作者 | Peter

编辑 | AI有道

系列文章:

吴恩达《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个训练集也可以获得更好的效果,通过绘制学习曲线来进行判断。

随机梯度下降法Stochastic Gradient Descent

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

具体算法的过程为

  1. 先对训练集进行随机的洗牌操作,打乱数据的顺序

  2. 重复如下过程:

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

算法可能存在的问题

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

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

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

随机梯度下降收敛

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

  • 在批量梯度下降算法中,可以令代价函数JJ为迭代次数的函数,绘制图表,根据图表来 判断梯度下降是否收敛;大规模的训练集情况下,此举不现实,计算代价太大

  • 在随机梯度下降中,更新θ之前都计算一次代价,然后迭代X后求出X对训练实例的计算代价的平均值,最后绘制次数X和代价平均值之间的图像

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

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

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

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

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

问题描述和流程图

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

基本步骤包含:

  1. 文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来

  2. 字符切分(Character segmentation)——将文字分割成一个个单一的字符

  3. 字符分类(Characterclassification)——确定每一个字符是什么 可以用任务流程图来表

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

滑动窗口Sliding windows

图片识别

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

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

  • 用许多固定尺寸的图片来训练一个能够准确识别行人的模型

  • 用上面训练识别行人的模型时所采用的图片尺寸在我们要进行行人识别的图片上进行剪裁

  • 剪裁得到的切片交给模型,让模型判断是否为行人

  • 重复循环上述的操作步骤,直至将图片全部检测完。

文字识别

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

  • 首先训练模型能够区分字符与非字符

  • 然后运用滑动窗口技术识别字符

  • 完成字符的识别,将识别得出的区域进行扩展

  • 将重叠的区域进行合并,以宽高比作为过滤条件,过滤掉高度比宽度更大的区域

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

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

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

获取大量数据和人工数据

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

获取大量数据的方法有

  • 人工数据合成

  • 手动收集、标记数据

  • 众包

上限分析Ceiling Analysis

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

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

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

  • 如果提升的比例比较明显,可以考虑在这个方向投入更过的时间和经历

  • 如果提升的效果微乎其微,意味着某个部分已经做的足够好了


AI 角:当人工遇上100阶魔方


http://www.taodudu.cc/news/show-600245.html

相关文章:

  • 330+ 个机器学习模型/库探索工具!Papers With Code 重磅推出!
  • 撒花!李宏毅机器学习 2021 版正式开放上线
  • 一步一步教你如何将 yolov3/yolov4 转为 caffe 模型
  • ODS:输出多样化采样,有效增强白盒和黑盒攻击的性能 | NeurIPS 2020
  • 《algorithm-note》算法笔记中文版正式发布!
  • 你所不知道的 Transformer!
  • 超详细的 Bert 文本分类源码解读 | 附源码
  • TopPaper:AI 初学者经典论文列表
  • 从零开始带你一步一步使用YOLOv3训练自己的数据
  • 中文情感分类单标签
  • 从零开始带你一步一步使用YOLOv3测试自己的数据
  • 从零开始带你一步一步使用 YOLOv3 测试自己的数据
  • 深入探讨!Batch 大小对训练的影响
  • 涵盖 14 大主题!最完整的 Python 学习实例集来了!
  • 我用 PyTorch 复现了 LeNet-5 神经网络(CIFAR10 数据集篇)!
  • 我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!
  • 手撕 CNN 经典网络之 AlexNet(理论篇)
  • 手撕 CNN 之 AlexNet(PyTorch 实战篇)
  • 手撕 CNN 经典网络之 VGGNet(理论篇)
  • 手撕 CNN 经典网络之 VGGNet(PyTorch实战篇)
  • DIscuz论坛上传附件2M限制修改
  • wdpc V3 phpmyadmin打不开的一种解决方式(实测有效)
  • 任务二 用户注册界面设计
  • 5 Android数据存储 任务二 应用程序数据文件夹里的文件读写 ,
  • 图像处理实战 多张曲线同图共舞
  • google设置在新标签页打开的方法
  • 【5 数学规划】实际问题实战
  • 【6 插值方法】实例实战篇
  • 数学实验思维导图
  • 基于源码仿建视频解析网站

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

  1. coursera—吴恩达Machine Learning笔记(1-3周)

    Machine Learning 笔记 笔记主要按照进度记录上课主要内容和部分代码实现,因为我会看一阶段再进行整理,内容会有一定交叉.关于代码部分,一开始我是只为了做作业而写代码的,现在觉得不妨仔细看 ...

  2. B站吴恩达深度学习视频笔记(1-14)——实战3:识别猫图

    前言 还记得在前几节课中吴恩达老师讲述如何识别一张图片,以及电脑识别图片的原理吗?这篇笔记中就会用到之前笔记1-14除了机器学习框架以外几乎所有的知识,来完成入门阶段终极实战--识别猫图. 我们即将使 ...

  3. 吴恩达ex3_吴恩达Machine Learning Ex3 python实现

    1.Multi-class classification 使用Logistic regression和neural networks来识别手写数字识别(从0到9).在第一部分练习中使用Logistic ...

  4. 深度学习入门首推资料--吴恩达深度学习全程笔记分享

    本文首发于微信公众号"StrongerTang",可打开微信搜一搜,或扫描文末二维码,关注查看更多文章. 原文链接:(https://mp.weixin.qq.com/s?__bi ...

  5. 机器学习-吴恩达网易云课堂笔记

    机器学习-吴恩达网易云课堂笔记 Machine Learning: A computer program is said to learn from experience E with respect ...

  6. coursera-斯坦福-机器学习-吴恩达-第9周笔记(下)-推荐系统

    coursera-斯坦福-机器学习-吴恩达-第9周笔记(下)-推荐系统 coursera-斯坦福-机器学习-吴恩达-第9周笔记下-推荐系统 1预测电影等级 1任务设想 2基于内容的推荐 2协同过滤 1 ...

  7. 吴恩达ChatGPT网课笔记Prompt Engineering——训练ChatGPT前请先训练自己

    吴恩达ChatGPT网课笔记Prompt Engineering--训练ChatGPT前请先训练自己 主要是吴恩达的网课,还有部分github的prompt-engineering-for-devel ...

  8. 737 页《吴恩达深度学习核心笔记》发布,黄海广博士整理!

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 深度学习入门首推课程就是吴恩达的深度学习专项课程系列的 5 门课.该专项课程最大的特色就是内容 ...

  9. 吴恩达深度学习课程笔记(初步认识神经网络)

    吴恩达深度学习课程笔记1 课程主要内容 1.神经网络与深度学习介绍 2.Improving Deep Neural Networks:超参数调整,正则化,优化方法 3.结构化机器学习工程:比如如何分割 ...

最新文章

  1. 运维岗位技能风向标!
  2. 最简单java设计模式:工厂方法模式
  3. Python3算法基础练习:编程100例( 21~ 25)
  4. vb.net2019- 机器学习ml.net情绪分析(2)
  5. Linux下mysql整库备份
  6. 14 [虚拟化] 虚存抽象;Linux进程的地址空间
  7. 什么叫事务?Java如何处理事务呢?
  8. 融云开发案例核心代码分享
  9. 实现全站统一的Page_PreInit()等事件
  10. Cadence PSpice 基于代码生成仿真模型
  11. 安卓系统如何访问wincc服务器,wincc客户端读取服务器数据库
  12. 语义化版本号 Sematic Versioning
  13. win8系统电脑使用技巧的详细介绍--win7w.com
  14. 2020-09-12
  15. JUC(二):Java 线程预备知识
  16. NOI2009 诗人小G
  17. 游戏中的事件管理--观察者模式的解读
  18. Idea 中出现:运行 Test 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。
  19. c#2012开发安卓软件_2012年重要的软件开发发展
  20. CSS简单入门(一)

热门文章

  1. 活动推荐丨阿里云TechInsight论坛为什么这么火?
  2. PHP结合Ueditor并修改图片上传路径
  3. 原生js判断css动画结束 css 动画结束的回调函数
  4. Oracle11g 备份和恢复的方法
  5. TOMCAT的域名配置
  6. hdu 5367(线段树+区间合并)
  7. poj 3469(最小割)
  8. Ubuntu 安装firefox中文版 (启用google翻译功能)
  9. Hbase的读写流程
  10. 【python】self cls