通过一个案例分析贝叶斯公式与机器识别

贝叶斯公式定义如下,

公式大家都知道,如何理解呢?下面给一个机器识别相关的例子,直观地说明。

在机器识别中,假设机器要识别“一”所在的这个小图像块表示什么字符(可以想象为拿手机对着一页书拍了张照片,机器要认出照片中“一”这个区域代表的是什么字)。

我们先看“一”字在几何上的特点是什么呢?大概认为是 宽高比很大 + 宽度与整篇文章的平均字宽度相当 + 纵向位置在其所在行的中间位置附近。

其中

“待识别的图像是一”  是 “事件”,

“宽高比很大 + 宽度与整篇文章的平均字宽度相当 + 纵向位置在其所在行的中间位置附近”  是  “信息”,

则 P(信息|事件) 的物理意义为, 在图像代表的字符为“一”的情况下, 它的几何特点为 “宽高比很大 + 宽度与整篇文章的平均字宽度相当 + 纵向位置在其所在行的中间位置附近” 的概率。

基本上,在编写类似OCR这样的模式识别软件时,我们都需要做数据字典,此时每个字符到底是什么是已知的,要做的是尽量准确地提出其特征。对这个例子而言就是要提取字符“一”的几何特点描述,固化为数据字典中“一”这个内码对应的描述数据。用贝叶斯公式的语音来说,就是要不断修正 P(信息|事件)。

再看,

P(信息)表示什么呢? 表示在所有待识别的图像小方块中,满足 “宽高比很大 + 宽度与整篇文章的平均字宽度相当 + 纵向位置在其所在行的中间位置附近”  这个几何特点的小方块占所有小方块的比例是多少,或者说概率是多少。

P(事件),表示“一”这个字的字频, 也即是在所有文章中出现“一”的概率有多少(我们认为机器需要识别所有的中文文章)

现在来看 P(事件|信息),

P(事件|信息) 表示 当软件遇到一个小图像块,而这个小图形块的几何特点是“宽高比很大 + 宽度与整篇文章的平均字宽度相当 + 纵向位置在其所在行的中间位置附近”时, 它是“一”的概率 —— 可以认为这就是对机器识别,或人工智能最简单的描述。

可以看到,

1.  P(事件|信息)与 P(信息|事件)正相关,这表示我们在进行机器学习训练时,对“一”的几何特征训练得越精确(即是P(信息|事件)越大),则在对实际样张的识别中,遇到这样的几何特征时,将它识别为“一”是正确的概率越高(即是P(事件|信息)越大)。

2.  P(事件|信息)与 P(信息)负相关,这表示如果很多待识别的小图像方块几何特点都是“宽高比很大 + 宽度与整篇文章的平均字宽度相当 + 纵向位置在其所在行的中间位置附近”(P(信息)很大), 就意味着“如果这么多字符的特点都是这个吊样,那么我就没把握说它恰好是“一”了”(P(事件|信息)很小);反之,如果只有“一“的特点是“宽高比很大 + 宽度与整篇文章的平均字宽度相当 + 纵向位置在其所在行的中间位置附近”(P(信息)很小),其它字符的特点都不是这样,那我遇到这个具有这个特点的小图像块,就可以信心满满地说它就是“一”字了(P(事件|信息)很大)。

3. P(事件|信息)与 P(事件)正相关,这表示如果“一”的字频很高、在所有的文章中出现的频率很高(P(事件)大),那我说待识别的小图像块是“一”的正确性概率当然就比较高(P(事件|信息)大);反之,如果“一”是个生僻字,在一般的文章中根本就没出现过几次(P(事件)小),那我说待识别的小图像块是“一”的正确性概率当然也就比较低了(P(事件|信息)小)。

原文地址:https://www.cnblogs.com/kingking512/p/8322360.html

时间: 2024-10-28 20:20:38

通过一个案例分析贝叶斯公式与机器识别的相关文章

通过一个案例分析为什么使用ThreadLocal,使用它的好处是什么

在博客园里翻过很多博客,对高手们甚是敬畏,谢谢你们教会了我许多!我也尝试贡献一点自己的学习心得,这是我的第一篇博客,纯原创,谢谢. 这里我想聊的是ThreadLocal,本地线程变量.不单独作概念上的解释了,网上太多.我以一个案例为主线一步步说明为什么我们需要用ThreadLocal?使用ThreadLocal的好处又在哪儿?案例又怎么跟随我们的思维一步步改进.具体的说明都在案例的注释中. 第一步: 第二步: 第三步: 第三步的TransactionManager工具类: 第四步: 第四步中工具

VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结

Background MSDN中对于在不同的配置下Link的LIB作了说明: C Runtime Library: 开关 对应的库 版本 /MD MSVCRT.LIB 多线程DLL的Release版本 /MDd MSVCRTD.LIB 多线程DLL的Debug版本 /MT LIBCMT.LIB 多线程静态链接的Release版本 /MTd LIBCMTD.LIB 多线程静态链接的Debug版本 /clr MSVCMRT.LIB 托管代码和非托管代码混合 /clr:pure MSVCURT.LIB

node.js中socket.io的使用(node.js开发实战详解一个案例分析)

啊,又是这本书.好像里面有个交互图,呃...那个消息响应的顺序好像与我的程序不同. 其实问题也不大,操作实例,控制台运行该文件app.js开启服务: var io=require('socket.io').listen(8080,{log:false}); io.sockets.on('connection',function (socket){ socket.on('msg',function(data){ console.log(data); if(data.state){ if(data.

一个拓扑,搞定BGP13条路径选择算法 - 案例分析

1.1.BGP协议最佳路径选择算法 BGP是一个路径矢量路由协议,也就是说,它的工作就是在自主系统间交换路由信息,以便发现访问互联网某处数据的最有效路径.每个 BGP路由器通过邻居声名与周边的一个或多个路由器连接.一旦建立了邻居关系,这些BGP路由器之间就会相互交换路由信息.据我最近一次统计,整个互联网上有大约12.5万个路由信息,因此要配备一个强大的路由器才能将所有BGP路由信息接收下来. 1.1.1.BGP 最佳路径选择算法概述 由于整个互联网的BGP路由表有超过30万个路由,同时一个BGP

(转)一个MySQL 5.7 分区表性能下降的案例分析

一个MySQL 5.7 分区表性能下降的案例分析 原文:http://www.talkwithtrend.com/Article/216803 前言 希望通过本文,使MySQL5.7.18的使用者知晓分区表使用中存在的陷阱,避免在该版本上继续踩坑.同时通过对源码的分享,升级MySQL5.7.18时分区表性能下降的根本原因,向MySQL源码爱好者展示分区表实现中锁的运用. 问题描述 MySQL 5.7版本中,性能相关的改进非常多.包括临时表相关的性能改进,连接建立速度的优化和复制分发相关的性能改进

Linux服务器挂死案例分析

问题现象: 在linux服务器上运行一个指定的脚本时,就会出现无数个相同进程的,而且不停的产生,杀也杀不掉,最后系统就陷入死循环,无法登陆,只能人工去按机器的电源键才可以.这够崩溃的吧? 问题分析过程: 在分析过程中发现这个特定的脚本有些特别,和系统中已有的命令的名字是相同的. 以free命令为例: 这个脚本名字就叫做free(后面没有带.sh),而且这个脚本文件里又去调用了free命令. 这个脚本的本意应该是要去调用free命令来完成一个任务. 那是否就是因为这样就会导致问题呢? 其实光这样是

微软小娜案例分析

微软小娜APP的案例分析 我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信.QQ,等等都是软件,都很值得分析.你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么? 通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好. 产品 请下载 微软小娜-智能助手,win10,iOS或Android客户端都有! 第一部分 调研, 评测 下载并使用,描述最简单直观

微软小娜APP的案例分析

个人博客作业三:微软小娜APP的案例分析 我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信.QQ,等等都是软件,都很值得分析.你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么? 通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好. 产品 请下载 微软小娜-智能助手,win10,iOS或Android客户端都有! 第一部分 调研, 评测 (软件的b

个人作业2--英语学习APP案例分析

我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信.QQ,等等都是软件,都很值得分析.你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好. 第一部分 调研, 评测 1.下载并使用,描述最简单直观的个人第一次上手体验 . 整体来说,界面还是比较美观的,最大的优点应该就是没有植入广告了.而且分块也比较明