Upload
duonglien
View
225
Download
0
Embed Size (px)
Citation preview
Aprendizado de MáquinaTemplate Matching
Luiz Eduardo S. Oliveira
Universidade Federal do ParanáDepartamento de Informática
http://lesoliveira.net
October 25, 2012
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 1 / 24
Introdução
Em alguns casos, a classificação de um dado padrão desconhecido sedá através de sucessivas comparações a padrões de referência,também conhecidos como “TEMPLATES”.Nesse caso, o primeiro passo consiste em definir uma medida desimilaridade ou distância entre os padrões de referência e o padrãodesconhecido.Por que não utilizar uma distância conhecida, como por exemplo, adistância Euclidiana?
I Distância Euclidiana não funciona para padrões similares deslocados notempo, por exemplo.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 2 / 24
Strings
Um caso particular de Template Matching é a detecção de padrões emstrings.
O reconhecimento com strings consiste em encontrar um segmento detexto x dentro de um texto T maior.Em geral, temos T � xNesse caso, as características são nominais , ou seja, caracteres e porisso não existe a noção óbvia de distância entre strings.Um exemplo prático desse tipo de problema é encontrar sub-sequenciade DNA, em sequências bastante grandesEncontrar a sequencia AGCTTC em AGAGCTTCGAATC......
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 3 / 24
Algoritmo Clássico
O método mais simples, porém não tão eficiente, consiste em deslocarx e ao longo de T e verificar se existe um casamento (matching).
Exemplo:
T: abacdbdacbbacdacX: bdac
bdacbdac
..bdac
Informação de deslocamentos prévios não são utilizadas.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 4 / 24
Algoritmo de Boyer Moore
Proposto em 1977 por Boyer & MooreTempo de execução pode ser sub-linearDeslocamento do padrão buscado (x) mais de uma posição a cada vez.Quanto maior for x , mais rápida a execução do programa.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 5 / 24
Algoritmo de Boyer Moore
Como funcionaUtiliza uma abordagem “backward”, ou seja, a verificação se dá de trazpara frenteSe houver casamento (matching) então o algoritmo continuacomparando os caracteres
I Complexidade igual ao algoritmo anterior, nesse caso.Se não houver casamento, o algoritmo realinha o padrão x com otexto T
I Nesse caso existe um ganho considerável de desempenho.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 6 / 24
Algoritmo de Boyer Moore
Tabela de pré-processamentoO primeiro passo do algoritmo de Boyer Moore consiste em criar umatabela de deslocamento para o padrão xComeçando da direita para a esquerda no penúltimo caractereSe o caractere não estiver na tabela
I Inclui o mesmo na tabelaI Valor do deslocamento = distância dele para o último caractere.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 7 / 24
Algoritmo de Boyer Moore
Para qualquer outro caractere, o deslocamento é o tamanho da string.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 8 / 24
Algoritmo de Boyer Moore
Exemplo
T:This is a test of the Boyer Moore Algorithmx:Algorithm
O primeiro caractere a ser comparado é o mNesse caso a comparação é (m,a)Como não existe casamento, busca-se o valor de deslocamento natabela, nesse caso (a=8)
T:This is a test of the Boyer Moore Algorithmx: Algorithm
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 9 / 24
Algoritmo de Boyer Moore
Deslocamento
O deslocamento anterior é chamado de deslocamento BOM SUFIXO(GOOD SUFFIX)O próximo caractere a ser comparado é o f
I Não existe na tabela de pre-processamentoI Logo, requer outra estratégia de deslocamento
Se o caractere não existe em x, o padrão x é deslocado para o próximocaractere
T:This is a test of the Boyer Moore Algorithmx: Algorithm
Esse deslocamento é conhecido como “BAD CHARACTER”.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 10 / 24
Algoritmo de Boyer Moore
Deslocamento
Como “e” não existe em x , o padrão é deslocado para o caracteresubsequente a “e”.
T:This is a test of the Boyer Moore Algorithmx: Algorithm
T:This is a test of the Boyer Moore Algorithmx: Algorithm
A existe e o valor do deslocamento é 8, logo temos:
T:This is a test of the Boyer Moore Algorithmx: Algorithm
Compara-se caractere a caractere como no algoritmo clássico
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 11 / 24
Algoritmo de Boyer Moore
Heurística Necessária
Se faz necessária para a comparação de strings com caracteresrepetidos.Usando a regra do GOOD SUFFIX no exemplo abaixo
T:xxxxBooooxxxxx: Boooo
Não houve casamento entre B e o.Valore de deslocamento para B, de acordo com a tabela é 4, logo
T:xxxxBooooxxxxx: Boooo
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 12 / 24
Algoritmo de Boyer Moore
Heurística Necessária
Duas comparações foram feitas até o “não casamento”Essas comparações devem ser subtraídas do valor do deslocamento,logo, novo delocamento = 4 - 2 = 2
T:xxxxBooooxxxxx: Boooo
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 13 / 24
Edit Distance
Diferente vetores com valores reais, não existe uma métrica obvia dedistância entre stringsPor exemplo, não é claro se abbccc está mais próximo de aabbcc oude abbcccbUma forma interessante de calcular a distância é o número deoperações necessárias para transformar uma string em outra.
I InserçãoI RemoçãoI Substituição
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 14 / 24
Edit Distance
Breve HistóricoCriada pelo russo Vladimir Levenshtein em 1965Largamente utilizados em
I Corretores ortográficosI Pós-processamento em sistemas de reconhecimento de caracteres,
como por exemplo, OCR.I Análise de DNA
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 15 / 24
Edit DistanceAlgoritmo
1) n = len(s)m =len (t)Construir uma matriz d de m linhas e n colunas
2) Inicializar a primeira linha de 0 a nInicializar a primeira coluna de 0 a m
3) Examinar cada caractere de s (i de 1 até n)4) Examinar cada caractere de t (j de 1 até m)5) Se s[i] = t[j], custo = 0
Se s[i] <> t[j], custo = 16) d[i,j] = mínimo de:
a) célula acima + 1: d[i-1,j] + 1b) célula a esquerda + 1: d[i,j-1] + 1c) célula acima e a esquerda + custo: d[i-1,j-1] + custo
7) Após as iterações dos passos 3,4,5 e 6,a distância é encontrada na célula d[n,m]
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 16 / 24
Dynamic Time Warping - DTW
Introduzindo nos anos 60 e bastante explorado nos anos 70 emaplicações de reconhecimento de voz.Eficiente para medir a similaridade em sinais deslocados no tempo etambém sinais distorcidos.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 18 / 24
Algoritmo DTW
Sejam X = (x1, x2, . . . , xN),N ∈ N e Y = (y1, y2, . . . , yN),M ∈ Nduas séries.Considerando que os valores em X e Y pertencem a um espaço decaracterísticas Φ, uma medida de distância deve ser definida, porexemplo d : Φ× Φ→ R ≥ 0Intuitivamente d é baixo para características similares e alto, casocontrário.Um algoritmo de programação dinâmica é a base do DTW. Sendoassim, a função de distância também é conhecida como função decusto.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 19 / 24
Algoritmo DTW
O algoritmo inicia construíndo a matriz de distância C ∈ RˆN ×M, aqual representa todas as distâncias entre X e Y .Essa matriz também é chamada de matriz de custo local para oalinhamento das sequências X e Y
Cl ∈ RN×M : ci ,j = ||xi − yi ||, i ∈ [1 : N], j ∈ [1 : M]
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 20 / 24
Algoritmo DTW1a. linha: D(1, j) =
∑jk=1 c(x1, yk), j ∈ [1,M]
1a. coluna: D(i , 1)∑i
k=1 c(xk , y1), i ∈ [1,N]
outros elementos:D(i , j) = min{D(i − 1, j − 1),D(i − 1, j),D(i , j − 1)}+ c(xi , yj), i ∈[1,N], j ∈ [1,M])
Depois que a matriz de custo é construída, o algoritmo encontra ocaminho (warping path) com o menor custo
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 21 / 24
Template Matching em Imagens
Considerando duas imagens, o Template Matching consiste emcomparar as duas pixel a pixelDiferenças estruturais são perdidas
Considerando a Distãncia de Hamming, qual seria o exemplo mais similarao template?
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 22 / 24
Template Matching em Imagens
Ruídos devido aquisição aumentam a variabilidade, diminuindo assim aeficiência do template matching
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 23 / 24
Template Matching em Imagens
Uma outra forma de usar template matching consiste em fazer acomparação usando um esquema de zoneamento.
I Enfatizar diferenças locais
Uma variante do template matching é o feature matchingI Nesse caso, a comparação se dá no nível das características.
Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 24 / 24