前两周的作业主要是关于Factor以及有向图的构造,但是概率图模型中还有一种更强大的武器——双向图(无向图、Markov Network)。与有向图不同,双向图可以描述两个var之间相互作用以及联系。描述的方式依旧是factor.本周的作业非常有实际意义——基于马尔科夫模型的图像文字识别系统(OCR)

  图像文字识别系统(OCR)在人工智能中有着非常重要的应用。但是受到图像噪声,手写体变形,连笔等影响基于图像的文字识别系统比较复杂。PGM的重要作用就是解决那些测量过程复杂,测量结果不一定对,连续测量的情况(单次测量,前后比对,反复斟酌,寻找最优)。而英文文字往往由字母组成单词,所以适合利用概率图模型来进行建模。

           概率图模型                 OCR                            SLAM

                           单次测量——对单个字母的图像识别不准确;单次配准,转移矩阵求取不准确;

                     前后比对——结合单词字母组合规律      ;结合上一帧或前几帧的观测;

反复斟酌——                     图模型中更复杂的联系    

寻找最优——                     MAP估计                    

  机器学习 —— 概率图模型(Homework: Representation)

  在文字识别系统中,文字的图像(var:I)总是被观测到,而所需要求得的字母(var(C))总是无法被观测到。所以我们建模的是P(C|I),此时的马尔科夫模型更为特殊,被称为条件随机场。

  在构建复杂的概率图模型之前,应该先从简单的入手。尽管单次不准,也应该先对单次观测进行推测。所以,对于给定图像,获取其与字母之间关系的factor是必要的。此时的图模型如图所示。

机器学习 —— 概率图模型(Homework: Representation)

  此时,每个字母都是单独的一个图,我们也只需要指定每个字母与图像之间的factor——phi(I,C).由于图像总是被观测到了,所以这个factor里的变量只有C。但是,对于每个不同的小图而言,factor的val是不一样的,因为val代表了var取card中每个值的概率。factor的var应为字母的序号。card=26代表var的取值范围。val则由computeImageFactor给出。

  由于图片不同会导致var的取值分布不同,所以这不能像之前那样构造好一个factor然后批量复制,而需要单独计算。在factor.val的计算中,使用了以下函数

 1 function P = ComputeImageFactor (img, imgModel)
 2 % This function computes the singleton OCR factor values for a single
 3 % image.
 4 %
 5 % Input:
 6 %   img: The 16x8 matrix of the image
 7 %   imgModel: The provided, trained image model
 8 %
 9 % Output:
10 %   P: A K-by-1 array of the factor values for each of the K possible
11 %     character assignments to the given image
12 %
13 % Copyright (C) Daphne Koller, Stanford University, 2012
14 
15 X = img(:);
16 N = length(X);
17 K = imgModel.K;
18 
19 theta = reshape(imgModel.params(1:N*(K-1)), K-1, N);
20 bias  = reshape(imgModel.params((1+N*(K-1)):end), K-1, 1);
21 
22 W = [ bsxfun(@plus, theta * X, bias) ; 0 ];
23 W = bsxfun(@minus, W, max(W));
24 W = exp(W);
25 
26 P=bsxfun(@rdivide, W, sum(W));
27 
28 
29 end
View Code

相关文章:

  • 2021-06-20
  • 2021-12-21
  • 2021-12-09
  • 2021-05-13
  • 2021-09-13
  • 2021-08-03
  • 2021-12-02
  • 2021-09-18
猜你喜欢
  • 2022-02-06
  • 2021-12-10
  • 2021-06-06
  • 2021-06-20
  • 2021-10-02
  • 2022-12-23
  • 2021-06-12
相关资源
相似解决方案