Upload
hoangnhan
View
221
Download
0
Embed Size (px)
Citation preview
INSTITUTO POLITÉCNICO DE LISBOA INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA
Redes Neuronais e
Reconhecimento de Caracteres
Folhas de apoio à disciplina de Projecto de Processamento de Sinal e Imagem
do CESE em Engenharia Electrotécnica – Sistemas e Comunicações
Maria Isabel de Almeida Milho
Maio de 2000
ii
iii
ÍNDICE
1. Introdução ................................................................................................................. 1
2. Exemplo de um Sistema de Reconhecimento de Caracteres .................................... 2
3. Classificação de Caracteres....................................................................................... 5
4. Rede de Perceptrões Multicamada............................................................................ 6
4.1 Modelo do perceptrão ....................................................................................... 6
4.2 Método de aprendizagem da rede neuronal ...................................................... 7
5. Escolha da Topologia da Rede Neuronal................................................................ 10
5.1 Descrição de várias topologias........................................................................ 10
5.2 Resultados da aprendizagem das redes descritas ............................................ 13
6. Aprendizagem da Rede com a Topologia Escolhida .............................................. 17
6.1 Conjuntos de treino e de teste ......................................................................... 17
6.2 Parâmetros da aprendizagem .......................................................................... 20
6.3 Critério de paragem da aprendizagem ............................................................ 21
6.4 Selecção da saída da rede neuronal................................................................. 21
6.5 Resultados obtidos .......................................................................................... 23
7. Comentários ............................................................................................................ 27
7.1 Resultados obtidos com as imagens em níveis de cinzento............................ 28
8. Referências.............................................................................................................. 30
iv
1
1. Introdução
Com este trabalho propõe-se ilustrar a aplicação de redes neuronais no
reconhecimento de padrões, evidenciando o modelo de perceptrões multicamada, com
ligações não recorrentes.
Neste documento descreve-se a classificação de imagens de caracteres baseada
no trabalho desenvolvido em [1] onde se optou pela abordagem neuronal usando uma
rede neuronal multicamada, com ligações não recorrentes. É descrito o modelo deste
tipo de redes, dando ênfase ao método de aprendizagem. Depois de formular o problema
para o classificador, a rede será definida em relação às características de cada unidade e
à estratégia de aprendizagem. Apresentam-se os estudos efectuados para a escolha da
topologia da rede neuronal (ligações entre unidades), assim como os resultados finais da
aprendizagem da rede com a topologia escolhida, considerando as imagens definidas em
níveis binários. Finalmente comentam-se os resultados obtidos e propõem-se algumas
soluções para melhorar o desempenho do sistema. Também se comentam os resultados
da classificação usando as imagens definidas em 256 níveis de cinzento.
2
2. Exemplo de um Sistema de Reconhecimento de Caracteres
Na figura 2.1 apresenta-se um exemplo de um sistema de reconhecimento de
caracteres da linha óptica de cheques bancários [1], [2], onde se identifica a estrutura
típica de um sistema de reconhecimento de padrões [4].
Pré Processamento
Classificação(rede neuronal)
Pós Processamento
BancoBalcãoNo.ContaNo.ChequeTipo
330555000170598763383777212
Aquisição
Figura 2.1 – Exemplo de um sistema de reconhecimento de caracteres da linha óptica do cheque bancário.
O sistema, que tem como entrada o cheque bancário e como saída o ficheiro de
dados contendo os caracteres reconhecidos (organizados por campos significativos),
decompõe-se em quatro módulos: (a) aquisição digital do documento; (b)
pré-processamento da imagem baseado no conhecimento específico do documento; (c)
classificação dos caracteres; (d) pós-processamento com detecção de erros e recuperação
de omissões. O módulo de pré-processamento realiza, sobre a imagem digital do
documento, a sementação dos caracteres a reconhecer; a classificação dos caracteres é
implementada através de uma rede neuronal multicamada, com ligações não recorrentes.
O suporte de desenvolvimento deste sistema consiste num conjunto de
programas (desenvolvidos em linguagem C) com vista a tornar o sistema mais versátil
antes de chegar à sua forma final de aplicação. Com este conjunto de ferramentas o
sistema global é separado em operações sequenciais de modo a permitir a análise de
cada operação individualmente e os seus efeitos no sistema.
Na figura 2.2 estão representadas sequencialmente as acções de processamento
sobre a imagem do documento desde a sua aquisição até ao formato final exigido pela
aplicação. Ilustram-se ainda os formatos dos resultados das várias acções, definidos de
modo a permitir o estudo e aperfeiçoamento individual (ou em grupo) de cada uma.
SEG
ME
NT
NE
UR
CO
NV
SEL
EC
TD
ET
EC
TN
EU
RN
ET
TIF
2CH
Che
que
(TIF
F)L
inha
Ópt
ica
(30x
400
pixe
ls)
31 D
ígito
s
(8x6
pixe
ls)
Sim
ulad
orda
red
e ne
uron
al
Top
olog
iada
red
ePe
sos
da r
ede
Sequ
ênci
a de
31 c
arac
tere
s
35 c
arac
tere
sno
for
mat
ode
fini
do
Iden
tific
ação
da
imag
em d
a lin
ha ó
ptic
aSe
gmen
taçã
oda
linh
a óp
tica
e do
s ca
ract
eres
Con
vers
ão d
as im
agen
s 8x
6pi
xels
em v
ecto
res
de 4
8 va
lore
s re
ais
Sele
cção
da
saíd
aac
tiva
da r
ede
neur
onal
Det
ecçã
o de
err
osSi
mul
ador
da r
ede
neur
onal
Aqu
isiç
ão d
igita
ldo
doc
umen
to31
Vec
tore
s(c
om 4
8 re
ais)
BIN
AR
Y
TIF
FDU
MP
ER
RO
SCA
N
SHO
WC
H
HIS
T
PRO
JEC
FIL
TE
R
CH
2TIF
SHO
WC
AR
CA
R2T
IF
SEPA
RA
JUN
TA
ME
DIA
UTI
LITÁ
RIO
S
PR
É-P
RO
CE
SS
AM
EN
TO
CL
AS
SIF
ICA
ÇÃ
OP
ÓS
-PR
OC
ES
SA
ME
NT
O
UTI
LITÁ
RIO
SU
TILI
TÁR
IOS
UTI
LITÁ
RIO
S
Figu
ra 2
.2 -
Esq
uem
a fu
ncio
nal d
o si
mul
ador
des
envo
lvid
o pa
ra o
rec
onhe
cim
ento
dos
car
acte
res
impr
esso
s na
linh
a óp
tica
do c
hequ
e ba
ncár
io.
4
Além dos programas que representam as várias operações do sistema são
referidos, na figura 2.2, os programas utilitários auxiliares que servem de apoio ao
estudo do problema. Por exemplo: a filtragem passa-baixo (programa FILTER); a
determinação do histograma da imagem (programa HIST); a observação das imagens
dos caracteres (programa SHOWCAR).
O simulador de perceptrões multicamada não recorrentes desenvolvido
(apresentado nas figuras 2.2 e 2.3) tem como principais características: implementação
do algoritmo da retropropagação do erro; aprendizagem determinística (em batch);
ajuste de pesos com passos adaptativos e termo de momento; controlo da evolução do
erro; validação cruzada.
Na figura 2.3 descreve-se o processo de aprendizagem supervisionada da rede
neuronal (através da informação do conjunto de treino, indicando a classe correcta da
imagem a classificar). O conjunto de vectores de validação é usado na avaliação da
capacidade de generalização do classificador, estabelecendo o critério de paragem da
aprendizagem.
Valores desejados
NEURNET Simuladorda rede neuronal
Topologiada rede
Parâmetrosde
aprendizagem
Pesos finais da rede
Erro quadrático
médio
Vectores de Treino
Vectores deValidação
Valores desejados
Figura 2.3 - Esquema funcional do simulador para realizar a aprendizagem da rede neuronal.
5
3. Classificação de Caracteres
Após a segmentação dos caracteres tem-se uma sequência de 31 imagens de
dimensão 8 x 6 pixel que representam os 31 dígitos da linha óptica do cheque. A
representação das imagens pode ser em níveis de cinzento ou em níveis binários,
conforme já se referiu no capítulo anterior. No entanto, na primeira fase deste trabalho
apenas se considera a representação binária ficando como fase posterior o estudo da
diferença de resultados obtidos com as duas representações.
A tarefa do classificador será reconhecer todas as imagens da sequência
produzida pelo pré-processador, uma a uma, gerando à saída a sequência dos dígitos
respectivos.
Figura 3.1 - Classificador com uma sequência de 31 imagens à entrada e uma sequência de 31 dígitos à
saída.
Na figura 3.1 está representada a funcionalidade do classificador. A classificação
de cada imagem é feita pela rede neuronal, tendo como entrada a imagem e como saída
a classe do dígito correspondente.
6
4. Rede de Perceptrões Multicamada
A escolha da classificação de caracteres através de uma rede de perceptrões
multicamada, com ligações não recorrentes, é baseada em trabalhos efectuados [1], [2],
[5], [6], [7], [8], [9], [10].
O exemplo da estrutura de uma rede de perceptrões multicamada não recorrentes
é representado na figura 4.1.
wjiCamada
de EntradaCamadade Saída
Camada(s)Escondida(s)
i
j
k
m
l
wmj
wlk
wmk
Figura 4.1 - Estrutura de uma rede de perceptrões multicamada não recorrentes.
A estrutura da rede é organizada por camadas, permitindo ligações não
recorrentes entre perceptrões de camadas adjacentes e não adjacentes. Na figura 4.1
observam-se várias ligações entre perceptrões, onde wmj representa o peso da ligação
entre o perceptrão j e o perceptrão m.
4.1 Modelo do perceptrão
O modelo computacional do perceptrão (unidade da rede) vem representado na
figura 4.2. O perceptrão recebe como entrada um vector de dimensão N, produzindo um
valor de saída. Este valor é obtido aplicando a soma ponderada das componentes do
vector de entrada à função contínua e não linear f(si), designada por função de activação.
7
Polarização
Entradas Saída..
( )y si i= ff(si)
si
wi0
wij
wi1
x0
xj
xN
x1
wiN
s w xi ij jj
N
= ⋅=∑
0
Figura 4.2 - Modelo computacional do perceptrão.
4.2 Método de aprendizagem da rede neuronal
A aprendizagem da rede neuronal é supervisionada, com a informação de qual é
a saída desejada para cada padrão apresentado na entrada.
O método de aprendizagem, através da retropropagação do erro [11],
implementa a técnica do gradiente descendente para minimizar a função de custo. Esta
função exprime o valor do erro quadrático médio,
E nP
y dip
ipip( ) ( )=
⋅−∑∑1
102 , (4.1)
onde yip e di
p representam respectivamente a saída obtida e a saída desejada para a
unidade (perceptrão) de saída i com o padrão p apresentado na entrada. O valor de P
representa o número total de padrões apresentados e o valor 10 é o número de saídas.
A actualização dos pesos das ligações é feita segundo
w w( ) ( ) ( )n n E n+ = − ⋅∇1 η , (4.2)
onde w é o vector de pesos, n é o número de épocas de treino (ou iterações), η é o
coeficiente de aprendizagem e ∇E(n) é o vector gradiente da função de erro.
Quando a actualização dos pesos é feita depois de se apresentarem todos os
elementos do conjunto de treino diz-se que o procedimento de treino é determinístico
(em batch). Se a actualização é feita para cada apresentação de elemento do conjunto de
treino o procedimento de treino denomina-se estocástico (real-time) onde ∇E(n) é a
8
estimativa obtida da acumulação dos gradientes numa época de treino. Neste trabalho
implementa-se a aprendizagem em procedimento determinístico.
De uma forma genérica a actualização do peso wij (da ligação entre a unidade j e
a unidade i), na época de treino n, representa-se da seguinte forma:
w n w n w nij ij ij( ) ( ) ( )+ = +1 ∆ . (4.3)
De acordo com (4.2) a variação ∆wij(n) do peso wij(n), referida em (4.3), vem
igual a
∆w nE n
w nijij
( )( )
( )= − ⋅η ∂
∂, (4.4)
onde o coeficiente de aprendizagem η é constante para todas as épocas de treino e igual
para todos os pesos, independentemente das diferentes variações das componentes do
vector gradiente, ∂∂
E n
w nij
( )
( ).
Em alternativa a (4.4), para acelerar a aprendizagem, implementa-se o ajuste de
pesos com passos adaptativos [9], de tal forma que
∆w n n z nij ij ij( ) ( ) ( )= − ⋅η . (4.5)
Observa-se em (4.5) que o valor do coeficiente de aprendizagem já não é
constante para todas as épocas de treino nem igual para todos os pesos, mas particular a
cada ligação: ηij(n), para a ligação de peso wij, adapta-se de acordo com a relação entre
os sinais (em duas épocas consecutivas) do gradiente da função de custo, tal que
ηη ∂
∂∂∂
η ∂∂
∂∂
ij
ijij ij
ijij ij
n
u nE n
w n
E n
w n
d nE n
w n
E n
w n
( )
( )( )
( )
( )
( )
( )( )
( )
( )
( )
=⋅ −
⎛
⎝⎜
⎞
⎠⎟ ⋅ −
−⎛
⎝⎜
⎞
⎠⎟ >
⋅ −⎛
⎝⎜
⎞
⎠⎟ ⋅ −
−⎛
⎝⎜
⎞
⎠⎟ <
⎧
⎨
⎪⎪
⎩
⎪⎪
11
10
11
10
se
se
,
(4.6)
onde u e d são constantes positivas com valores ligeiramente acima ou abaixo da
unidade, respectivamente.
9
Ainda em (4.5), em conjunto com os passos adaptativos, aplica-se a técnica do
termo de momento fazendo
z nE n
w nz nij
ijij( )
( )
( )( )= + ⋅ −∂
∂α 1 , (4.7)
onde α é a constante do termo de momento [11].
Para garantir a robustez da aprendizagem é controlada a evolução do erro em
cada época de treino (ou iteração) de acordo com a condição
E n t E n( ) ( )> ⋅ − 1 (4.8)
onde t é o valor de tolerância devido a erros de cálculo.
Se o erro E(n) aumentar rejeita-se o vector de pesos da última iteração, voltando
à iteração anterior. Porém, na nova actualização de pesos (4.5) o cálculo do novo valor
de ηij(n), em (4.6), toma em consideração o sinal da componente do vector gradiente da
“falsa” iteração e o valor de zij(n-1), em (4.7), é anulado. Se, após algumas iterações
consecutivas (tipicamente duas ou três iterações), a estratégia não funcionar reduz-se o
valor de ηij(n-1), por um factor fixo r, e aplica-se novamente a estratégia. As “falsas”
iterações são incluídas na contagem do número de iterações da aprendizagem, na
apresentação dos resultados.
Finalmente, para controlar a capacidade de generalização da rede, efectua-se a
validação cruzada com um conjunto de teste disjunto do conjunto de treino e, como este,
representativo do universo. Esta validação permite observar a época de treino a partir da
qual a rede continua a minimizar a função de custo E(n) para o conjunto de treino, mas
em prejuízo do aumento do erro quadrático médio para o conjunto de teste. É nesta
época que a aprendizagem deve terminar.
10
5. Escolha da Topologia da Rede Neuronal
O número de camadas, o número de unidades por camada e as ligações entre
unidades definem a topologia da rede. Redes com topologias diferentes têm resultados
diferentes, principalmente devido ao número de pesos independentes que cada uma tem.
Diz-se que uma rede neuronal tem capacidade de generalização se a rede tem,
para o conjunto de teste nunca apresentado à rede na aprendizagem, comportamento
semelhante, ou ligeiramente inferior, ao que tem para o conjunto de treino. A
capacidade de generalização da rede é influenciada por três factores [8]: o conjunto de
treino (dimensão e eficiência), a topologia da rede e a complexidade do problema. Para
resolver determinado problema apenas os dois primeiros factores podem variar
permitindo que o classificador seja desenhado segundo uma de duas perspectivas:
• fixar a topologia e determinar o conjunto de treino;
• fixar este conjunto e escolher a topologia com melhor comportamento.
No trabalho [1] opta-se pela última perspectiva, uma vez que o conjunto de
treino disponível é bastante limitado: 1240 dígitos pertencentes a 40 cheques.
Para escolher a topologia com melhor comportamento, a aprendizagem é
realizada para várias redes (com topologias diferentes), sendo avaliada, para cada rede, a
função de custo que contabiliza a eficiência e o número de unidades da rede. Apesar
deste método se tornar pouco prático, para aplicações de elevado nível de complexidade
(o treino de apenas uma rede requer tempo de processamento elevado), foram realizadas
aprendizagens em várias redes, com organizações diferentes nas camadas escondidas, e
avaliadas as respectivas funções de custo.
5.1 Descrição de várias topologias
As camadas de entrada e de saída são comuns a todas as topologias descritas.
Cada padrão de entrada da rede neuronal é um vector de 48 valores reais que
correspondem à conversão linear dos níveis de cinzento de cada imagem 8 x 6 pixel. A
camada de entrada da rede neuronal tem 48 unidades cujos valores de saída são os
11
valores do vector que representa a imagem do dígito. A camada de saída tem 10
unidades, que correspondem às 10 classes de dígitos, onde o reconhecimento de cada
imagem corresponde à activação da unidade da classe que lhe corresponde. Quando um
padrão pertencente à classe i é apresentado, o valor desejado para a unidade i da camada
de saída é o valor máximo, e para as outras unidades de saída é o valor mínimo.
As redes que foram submetidas à aprendizagem encontram-se descritas na tabela
5.1, onde são também referidos o número de pesos e o número de unidades de cada rede.
Todas as redes têm 1 camada escondida, excepto a designada por lc2 que tem 2 camadas
escondidas.
Rede Descrição
N.o de unidades na(s) camada(s) escondida(s): descrição das ligações.
No de
Pesos
No de
Unidades
lc1 14 (na 1a camada escondida): 8 têm 6 entradas que correspondem aos pixel de cada
linha, 6 têm 8 entradas que correspondem aos pixel de cada coluna. As saídas das 14
unidades ligam a todas as unidades da camada de saída.
260 72
lc2 14 (na 1a camada escondida): 8 têm 6 entradas que correspondem aos pixel de cada
linha, 6 têm 8 entradas que correspondem aos pixel de cada coluna. As saídas das 14
unidades ligam a todas as unidades da camada de saída.
2 (na 2a camada escondida): 1 com ligações a 8 unidades da 1a camada escondida
(linhas) e 1 com ligações a 6 unidades da 1a camada escondida (colunas). As saídas das
2 unidades ligam a todas as unidades da camada de saída.
296 74
a10 10 (na 1a camada escondida): com ligações a todas as unidades de entradas. As saídas
das 10 unidades ligam a todas as unidades da camada de saída.
600 68
a12 12 (na 1a camada escondida): com ligações a todas as unidades de entradas. As saídas
das 12 unidades ligam a todas as unidades da camada de saída.
718 70
a14 14 (na 1a camada escondida): com ligações a todas as unidades de entrada. As saídas das
14 unidades ligam a todas as unidades da camada de saída.
836 72
a15 15 (na 1a camada escondida): com ligações a todas as unidades de entrada. As saídas das
15 unidades ligam a todas as unidades da camada de saída.
895 73
a20 20 (na 1a camada escondida): com ligações a todas as unidades de entrada. As saídas das
20 unidades ligam a todas as unidades da camada de saída.
1190 78
Tabela 5.1 - Descrição de várias redes neuronais com organizações diferentes nas camadas escondidas.
12
As redes descritas na tabela 5.1 dividem-se em dois grupos: (a) redes com
informação da estrutura geométrica e (b) redes sem informação da estrutura geométrica.
No primeiro grupo incluem-se as redes designadas por lc1 e lc2, enquanto a10, a12,
a14, a15 e a20 pertencem ao segundo grupo.
Camada
de Entrada
L2
L1
L3
L4
L5
L6
L7
L8
C1
C2
C3
C4
C5
C6
P1
P2
P3
P4
P5
P6
P43
P44
P45
P46
P47
P48
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
Janela 6x8
Camadade Saída
CamadaEscondida
14 unidades
48 unidades
10 unidades
7
SELECÇÃO
DA
SAÍDA
Figura 5.1 - Topologia da rede neuronal designada por lc1.
Veja-se, como exemplo de rede com informação geométrica, a rede designada
por lc1, representada na figura 5.1. Esta rede tem 48 unidades de entradas que ligam a
14 unidades da camada escondida. A cada unidade de entrada é associado o valor de
cada um dos pixels da imagem 8x6 pixel e cada uma das unidades da camada escondida
tem como entradas as saídas de 6 ou 8 unidades de entrada que correspondem aos
valores dos pixels de uma linha ou de uma coluna da imagem, respectivamente. As
saídas das unidades da camada escondida de saída ligam a todas as 10 unidades da
camada de saída que representam as 10 classes diferentes de dígitos (dígitos 0 a 9).
O uso de um número reduzido de unidades, em qualquer das redes descritas na
tabela 5.1, tem em vista a redução do custo computacional, a redução do tempo de
aprendizagem e a optimização da capacidade de generalização da rede.
13
5.2 Resultados da aprendizagem das redes descritas
A aprendizagem de cada rede é realizada segundo o método descrito em 4.2. Os
valores dos parâmetros da aprendizagem são apresentados na tabela 5.2, sendo definidos
com base em experiências realizadas e nos resultados obtidos em [9]. Por razões de
eficiência (morosidade dos testes) utilizou-se o subconjunto de treino com 25 cheques.
Entradas xj [-0,5 ; 0,5]
Saída activa desejada di 0,5
Saída inactiva desejada dk -0,5
Pesos iniciais, gerados aleatoriamente wij dist. uniforme em
[-0,3 ; 0,3]
Função de activação f(si) 2/π⋅atan(si)
Coeficientes de aprendizagem iniciais ηij 0,05
Constante de aumento de η u 1,2
Constante de redução de η d 0,7
Constante do termo de momento α 0,5
Tolerância do erro t 1,001
N.o de “falsas” iterações para a redução de η f 3
Redução de η se o n.o de falsas iterações ≥ f r 0,5
Tabela 5.2 - Parâmetros de aprendizagem das várias redes.
Para escolher a topologia, considera-se que a aprendizagem termina quando o
valor do erro quadrático médio para o conjunto de treino com 25 cheques (775 dígitos)
for inferior a 0,01. O número de iterações necessárias para a rede atingir este valor é
usado como critério para seleccionar as redes que convergem mais rapidamente, depois
14
de confirmar que o valor do erro quadrático médio para o conjunto de validação com 10
cheques (310 dígitos) se encontra a decrescer.
Como o número de iterações necessárias para a rede convergir depende dos
valores iniciais dados aos pesos, cada treino é realizado 20 vezes com valores iniciais
diferentes. Para cada topologia registam-se a mediana, a média e o desvio padrão do
número de iterações necessárias e ainda o número de processos que falham dentro do
limite máximo de épocas de treino estipulado (400 épocas). Determinado tal como em
[12, pág. 68], o valor da mediana é apresentado para ser considerado em alternativa ao
valor médio, que vem influenciado pela existência de processos falhados. Estas medidas
são variantes sugeridas em [13].
Designação da Épocas de Treino
Topologia média desvio-padrão mediana p. falhados
lc1 386 38 400 17
lc2 338 100 400 11
a10 142 118 86 2
a12 104 91 77 0
a14 91 81 62 1
a15 64 35 51 1
a20 95 84 63 1
Tabela 5.3 - Mediana, média e desvio padrão do no. de épocas de treino e processos falhados para as
diferentes redes experimentadas.
Analisando os resultados da tabela 5.3 verifica-se que as duas redes com
organização geométrica (lc1 e lc2) têm resultados inferiores, em termos de velocidade
15
de convergência, aos obtidos com as redes que não têm nenhuma informação quanto à
localização dos pixels na imagem.
Em contrapartida, as redes lc1 e lc2 apresentam vantagens em relação às outras,
nomeadamente: o tempo de aprendizagem e o tempo de processamento na classificação.
Através da tabela 5.1 observa-se que a topologia lc1 tem 260 pesos enquanto que a
topologia a14, com o mesmo número de unidades, tem 836 pesos. Na classificação de
uma imagem o número das operações de multiplicação e de soma efectuadas é igual ao
número de pesos, concluindo-se que o tempo de processamento na classificação será
cerca de três vezes menor com a rede lc1 do que com a rede a14.
Observando-se, ainda na tabela 5.3, os resultados obtidos com as redes que têm
todas as unidades de entrada ligadas a todas as unidades da camada escondida (a10, a12,
a14, a15 e a20) constata-se que a rede designada por a15 é a que, em média, converge
mais rapidamente (média = 64) e com menor dispersão (desvio-padrão = 35). Verifica-
se também que, a partir de um determinado número de unidades e de ligações, o valor
médio e o desvio-padrão do número de épocas volta a aumentar ficando com valores
semelhantes a redes com menos unidades e ligações: as redes designadas por a20 e a14
têm valores idênticos em relação ao número de épocas de treino e superiores aos obtidos
para a15.
Com base na velocidade de convergência considera-se que a rede a15 é a mais
adequada para resolver este tipo de problema. No entanto, esta consideração poderá não
ser a correcta, tendo em conta que o critério de paragem da aprendizagem é baseado no
erro quadrático médio obtido para o conjunto de treino de reduzida dimensão.
Para não eliminar todas as outras redes, apenas com base nestes testes, são
seleccionadas algumas das redes (lc1, lc2, a10, a14, a15) para se proceder a novos
testes. As duas primeiras redes (lc1 e lc2) são escolhidas por terem o número de pesos
bastante inferior ao de qualquer outra rede, e a rede a14 por ter o número de pesos
semelhante ao da rede a15. Finalmente a rede a10 é também seleccionada por se
encontrar entre as duas primeiras (lc1 e lc2) e as duas últimas (a14 e a15), em relação ao
número de pesos.
16
Para cada rede seleccionada escolhe-se o vector de pesos que leva mais depressa
o treino ao menor erro quadrático médio para o conjunto de validação e procede-se, para
cada uma, à continuação da aprendizagem, terminada anteriormente por atingir o valor
de erro quadrático médio igual a 0,01. O critério para terminar esta aprendizagem
baseia-se no valor mínimo do erro quadrático médio para o conjunto de validação.
Rede Erro quadrático médio mínimo
p/ conj. de validação
No de Épocas Erro quadrático médio
p/ conjunto de treino
lc1 0,009475 6487 0,007095
lc2 0,008247 300 0,006397
a10 0,004328 132 0,000560
a14 0,005312 180 0,001228
a15 0,003319 210 0,000258
Tabela 5.4 - Valores do no de épocas de treino e do erro quadrático médio para o conjunto de treino ao
terminar a aprendizagem com o valor mínimo de erro quadrático médio para o conjunto de validação.
Na tabela 5.4 apresentam-se os resultados da aprendizagem para as redes
seleccionadas e sua análise favorece a escolha da rede a15 por ter o menor valor do erro
quadrático médio para o conjunto de validação. Observa-se, ainda para a rede a15, que o
valor do erro quadrático médio obtido para o conjunto de treino é também o menor valor
verificado.
17
6. Aprendizagem da Rede com a Topologia Escolhida
Nos ensaios anteriores são usados subconjuntos de treino e de validação cruzada
a fim de minimizar o tempo de simulação para a escolha da topologia. Para proceder à
aprendizagem final da rede seleccionada, a15, altera-se a constituição dos conjuntos de
treino e de teste definidos em 5.2. de modo a serem usados todos os elementos
disponíveis do conjunto de dados. Alguns dos parâmetros da aprendizagem são
alterados por se verificarem melhores resultados.
6.1 Conjuntos de treino e de teste
Em [5] a rede utilizada, para resolver um problema semelhante, totaliza cerca de
11.000 pesos independentes entre si, com: 270 unidades de entrada, 40 unidades na
camada escondida (com todas as ligações para as camadas de entrada e de saída) e 10
unidades de saída. A dimensão do conjunto de treino utilizado é da mesma ordem de
grandeza dos pesos, cerca de 9.300 dígitos, sendo o conjunto de teste constituído por
2000 dígitos aproximadamente. Com esta relação, entre a dimensão do conjunto de
treino e o número de pesos, a rede mostra ter capacidade de generalização em 94% do
conjunto de teste.
No trabalho [1], tendo em consideração a relação anterior, a dimensão do
conjunto de treino é também da mesma ordem de grandeza do número de pesos
independentes: 895 pesos na rede e 1240 dígitos em 40 cheques. O conjunto de teste tem
30 cheques (930 dígitos) e na validação cruzada são usados 16 cheques do conjunto de
teste (496 dígitos).
Nas figuras 6.1 e 6.2 apresentam-se algumas sequências de imagens dos
conjuntos de treino e de teste, respectivamente. O ponto a negro, que antecede cada
imagem de caracter, define o canto inferior esquerdo da fronteira do caracter de
dimensões fc igual a 8 x 6 pixel. Estes pontos facilitam a leitura da figura mas não
pertencem às imagens dos caracteres.
Fig
ura
6.1
- S
equê
ncia
s de
imag
ens
pert
ence
ntes
ao
conj
unto
de
trei
no.
Fig
ura
6.2
- S
equê
ncia
s de
imag
ens
pert
ence
ntes
ao
conj
unto
de
test
e.
20
6.2 Parâmetros da aprendizagem
Os valores dos parâmetros da aprendizagem são apresentados na tabela 6.1.
Alguns destes valores são alterados em relação aos valores utilizados na aprendizagem
para a escolha da topologia (definidos na tabela 6.2) por se verificarem melhores
resultados: o parâmetro α influenciando positivamente a velocidade de aprendizagem e
o parâmetro t aumentando a tolerância devido a erros de precisão de cálculo.
Entradas xj [-0,5 ; 0,5]
Saída activa desejada di 0,5
Saída inactiva desejada dk -0,5
Pesos iniciais, gerados aleatoriamente wij dist. uniforme em
[-0,3 ; 0,3]
Função de activação f(si) 2/π⋅atan(si)
Coeficientes de aprendizagem iniciais ηij 0,005
Constante de aumento de η u 1,2
Constante de redução de η d 0,8
Constante do termo de momento α 0,7
Tolerância do erro t 1,05
N.o de “falsas” iterações para a redução de η f 3
Redução de η se o n.o de falsas iterações ≥ f r 0,5
Tabela 6.1 - Parâmetros da aprendizagem da rede neuronal a15.
21
6.3 Critério de paragem da aprendizagem
O critério para terminar a aprendizagem final da rede a15 baseia-se no valor
mínimo do erro quadrático médio para o conjunto de validação. Ao fim de 180 épocas
de treino o erro quadrático médio para o conjunto de validação é igual a 0,002086 e para
o conjunto de treino é igual a 0,000809, como se observa na tabela 6.2.
Treino Erro quadrático médio mínimo
p/ conj. de validação
No de Épocas Erro quadrático médio
p/ conjunto de treino
1 o 0,003319 210 0,000258
2 o 0,002086 180 0,000809
Tabela 6.2 - Resultados da aprendizagem da rede a15 com os novos conjuntos de treino e de validação em
comparação com os resultados da aprendizagem anterior referidos em 5.2 na tabela 6.4.
Devido ao valor do erro quadrático médio para o conjunto de validação, a nova
aprendizagem garante maior capacidade de generalização da rede, apesar do valor do
erro quadrático médio para o conjunto de treino ser maior do que o obtido na primeira
aprendizagem da rede (descrita em 5.2).
6.4 Selecção da saída da rede neuronal
A selecção da saída activa de entre as 10 saídas da rede neuronal é realizada
determinando qual a saída que toma o valor máximo. Deste modo, a saída activa pode
tomar valores negativos ou não ser a única saída a tomar valores positivos,
maximizando o número de dígitos classificados.
No entanto, é importante que o sistema rejeite os dígitos em vez de os classificar
incorrectamente. O objectivo não é minimizar o número de erros nem maximizar o
número de caracteres classificados, mas sim minimizar o custo de toda a operação, o
22
que implica uma relação de compromisso entre os valores percentuais de erro e de
rejeição de dígitos.
Assim, para diminuir a percentagem de erro, o classificador rejeita a imagem do
dígito, se as condições definidas em (6.1) não se verificarem [6].
y t
y t
y y td
1 1
2 2
1 2
><− >
⎧⎨⎪
⎩⎪
(6.1)
Em (6.1) y1 e y2 são respectivamente o valor máximo e o valor imediatamente
inferior ao máximo e t1, t2, e td são valores limiares de decisão (thresholds). Estes
valores limiares de decisão são definidos analisando o seu significado através da figura
6.3, onde os valores desejados para as saídas activa e inactiva são, respectivamente, +A
e -A.
-A +Ay1y2 0t1 t2
y1 - y2
Figura 6.3 - Definição dos valores limiares de decisão para rejeitar a imagem do dígito.
Através da figura 6.3 observa-se que t1 e t2 são os limites inferior e superior,
respectivamente para o valor máximo y1 e o valor imediatamente inferior ao máximo y2
e que td define a distância mínima entre os dois valores y1 e y2, permitindo que os
intervalos possíveis para estes se possam sobrepor. Os valores atribuídos aos limiares de
decisão são determinados sobre o conjunto de teste de forma a que o valor percentual de
dígitos errados diminua sem aumentar substancialmente o valor percentual de dígitos
rejeitados (de modo a evitar mais do que um dígito não classificado por cheque).
Esta condição verifica-se experimentalmente para os valores descritos na tabela
6.3, onde A representa o valor desejado para a saída activa (de acordo com a tabela 6.1,
igual a 0,5).
23
Limiar Valor Justificação do valor
t1 -0,1 A - 60% de (2A)
t2 0,1 -A + 60% de (2A)
td 0,2 20% de (2A)
Tabela 6.3 - Valores dos limiares de decisão t1, t2 e td para rejeitar a imagem do dígito.
6.5 Resultados obtidos
O sistema classificador poderá reconhecer os caracteres correctamente,
incorrectamente ou ainda falhar o reconhecimento do caracter, rejeitando a imagem que
tem como entrada. Para comparar os resultados obtidos com a selecção da saída da rede,
com e sem rejeição de dígitos, são apresentados na tabela 6.4 o número de dígitos
errados e o número de dígitos não classificados à saída do classificador para o conjunto
de teste. Os resultados obtidos com o conjunto de treino não são apresentados na tabela
6.4 uma vez que os dígitos do conjunto (1240 dígitos em 40 cheques) são todos
classificados correctamente.
sem rejeição
de dígitos
com rejeição de dígitos
t1 = -0,1 t2 = 0,1 td = 0,2
dígitos errados 4 3
dígitos não classificados - 8
Tabela 6.4 - Resultados da classificação dos dígitos do conjunto de teste (930 dígitos em 30 cheques) com
a rede a15.
Através da análise dos resultados constata-se que o número de dígitos errados
diminui se a selecção da saída activa rejeitar imagens. Assim, esta função de selecção da
saída activa contribui para melhorar o desempenho global do sistema, sabendo que o
24
módulo de pós-processamento, que se segue ao classificador, recupera alguns casos de
dígitos não classificados.
A tabela 6.5 resume os resultados obtidos com a classificação: a correcta
identificação (na diagonal principal), a identificação incorrecta (nas colunas verticais) e
as imagens que foram rejeitadas na classificação (na última linha da tabela).
dígito reconhecido �
imagem �
a reconhecer 0 1 2 3 4 5 6 7 8 9
‘0’ 285 1
‘1’ 125
‘2’ 99 1
‘3’ 76
‘4’ 48
‘5’ 74
‘6’ 42 1
‘7’ 54
‘8’ 57
‘9’ 59
‘*’ 2 1 1 1 1 1 1
Tabela 6.5 - Resultados da classificação de cada caracter do conjunto de teste (930 dígitos em
30 cheques) com a rede a15.
25
Analisando a tabela 6.5 observa-se que todas as imagens dos dígitos ‘0’ e ‘9’ são
classificadas correctamente, enquanto que algumas imagens dos restantes dígitos são
classificadas incorrectamente ou rejeitadas (representadas com o caracter ‘*’).
Dígitos
sem rejeição
de dígitos
com rejeição de dígitos
t1 = -0,1 t2 = 0,1 td = 0,2
correctamente classificados 99,57% 98,82%
incorrectamente classificados 0,43% 0,32%
não classificados - 0,86%
Tabela 6.6 - Resultados, em valores percentuais, da classificação dos dígitos do conjunto de teste
(930 dígitos em 30 cheques) com a rede a15.
Veja-se, na tabela 6.6, que a percentagem de caracteres classificados
incorrectamente diminui com a rejeição de dígitos. Note-se também que a percentagem
de caracteres classificados correctamente diminui, contudo este resultado melhorará
com a recuperação no pós-processamento de alguns dos dígitos rejeitados.
Na maior parte dos casos existe uma explicação razoável para o insucesso da
classificação [5]. O problema maior deve-se à segmentação incorrecta: melhorando a
segmentação aumenta-se a eficiência global do sistema, mas exige processamento
adicional, não desprezável na resolução deste problema. Outros casos possíveis serão
devidos à representação não completa do conjunto de treino que ao ser aumentado, com
maior representação, reduziria o número de falhas.
Figura 6.4 - Ilustração de imagens do conjunto de teste classificadas incorrectamente ou rejeitadas.
Em alguns casos as imagens são ambíguas até para o ser humano, e a
percentagem de erro e de rejeição devido a estas imagens dificilmente se consegue
26
diminuir. Na figura 6.4 ilustram-se algumas imagens do conjunto de teste que foram
incorrectamente classificadas ou rejeitadas; vejam-se, como exemplo, as duas primeiras
imagens, da esquerda para a direita, que representam respectivamente os dígitos ‘3’ e
‘8’.
27
7. Comentários
Os resultados descritos nas tabelas 7.5 e 7.6 são relativos ao desempenho do
classificador, e não reflectem o desempenho global do sistema, uma vez que sequências
com 1 dígito errado (ou com 1 dígito não classificado) são detectadas (ou recuperadas)
na fase de pós-processamento. No entanto, para melhorar o desempenho global do
reconhecedor dos caracteres impressos na linha óptica do cheque bancário, deverão ser
consideradas as acções seguintes na aprendizagem do classificador e na classificação:
• Treinar a rede neuronal com indicação do erro obtido depois da selecção da saída
mais activa da rede.
• Calcular os valores limiares t1, t2 e td com base nos resultados obtidos para cada
sequência de dígitos, do conjunto de teste, depois do pós-processamento (com
detecção de erros e recuperação de omissões).
• Inserir na topologia da rede neuronal a informação da posição do dígito na linha
óptica, analisando os resultados obtidos com diferentes representações do seu
valor e com diferentes ligações na rede.
• Treinar a rede neuronal com indicação dos erros obtidos no cheque (sequência
de 31 dígitos) antes e/ou depois da detecção de erros.
• Implementar a classificação adaptativa sugerida em [3], através da inserção de
informação na rede neuronal pelo módulo de pós-processamento, quando o
cheque é reconhecido com sucesso. Esta informação é importante no caso em
que o classificador não reconheceu um dígito, recuperado posteriormente no
pós-processamento; através da indicação da classe correcta do dígito a rede
adapta-se de modo a diminuir a percentagem de dígitos não classificados.
Todavia, é necessário verificar e ponderar os efeitos deste procedimento,
nomeadamente a possibilidade da percentagem de dígitos errados aumentar.
28
7.1 Resultados obtidos com as imagens em níveis de cinzento
Para analisar os resultados obtidos com a rede a15, representando as imagens
dos caracteres em níveis de cinzento, procede-se à aprendizagem da rede (com o
conjunto de treino em níveis de cinzento). Na tabela 7.1 observa-se o valor do erro
quadrático médio mínimo para o conjunto de validação, juntamente com o valor do erro
quadrático médio para o conjunto de treino e o número de épocas de treino.
Erro quadrático médio mínimo
p/ conj. de validação
No de Épocas Erro quadrático médio
p/ conjunto de treino
0,001380 180 0,000206
Tabela 7.1 - Resultados da aprendizagem da rede a15 treinada com as imagens definidas em 256 níveis de
cinzento.
Comparando os valores da tabela 7.1 com os da tabela 7.2, verifica-se que,
apesar da escolha da topologia ser efectuada com base nas imagens em níveis binários,
os valores do erro quadrático médio para os conjuntos de validação e de treino são
menores para as imagens em níveis de cinzento. Estes resultados são esperados uma vez
que a representação em níveis de cinzento não perde informação importante para a
extracção de características e classificação efectuadas pela rede neuronal.
No entanto, os resultados da classificação, apresentados na tabela 7.2, não se
mostram superiores aos anteriores (apresentados na tabela 7.4).
sem rejeição
de dígitos
com rejeição de dígitos
t1 = -0,1 t2 = 0,1 td = 0,2
dígitos errados 7 6
dígitos não classificados - 5
Tabela 7.2 - Resultados da classificação do conjunto de teste (930 dígitos em 30 cheques) com a rede a15
treinada com as imagens definidas em 256 níveis de cinzento.
29
O número de dígitos errados, obtido com as imagens em níveis de cinzento,
duplica em relação ao número obtido com as imagens binárias (de 3 para 6 dígitos
errados). Para justificar esta diferença, é importante reafirmar que a escolha da topologia
(rede a15) é realizada com os padrões definidos em níveis binários e portanto não será a
rede mais adequada para classificar os padrões definidos em níveis de cinzento.
30
8. Referências
[1] Isabel Milho, “Reconhecimento de Caracteres Impressos em Documentos
Financeiros Normalizados”, dissertação para obtenção do grau de Mestre em
Engenharia Electrotécnica e de Computadores, Instituto Superior Técnico, Abril
de 1997.
[2] Isabel Milho, Fernando Sousa, José M. N. Leitão, "A System for Printed
Character Recognition on Normalized Financial Documents", Proceedings of the
9th Portuguese Conference on Pattern Recognition RECPAD’97, pp. 161-167,
March 1997.
[3] G. Nagy, “At the Frontiers of OCR”, Proceedings of IEEE, Vol. 80, No. 7,
pp. 1093-1100, July 1992.
[4] Robert J. Schalkoff, Pattern Recognition: Statistical, Structural and Neural
Approaches, John Wiley & Sons, 1992.
[5] Y. Le Cun, L. D. Jackel, B. Boser, J. S. Denker, H. P. Graf, I. Guyon,
D. Henderson, R. E. Howard, and W. Hubbard, “Handwritten Digit Recognition:
Applications of Neural Net Chips and Automatic Learning”, IEEE
Communications Magazine, pp. 41-46, November 1989.
[6] J. S. Denker, W. R. Gardner, H. P. Graf, D. Henderson, R. E. Howard, W.
Hubbard, L. D. Jackel, H. S. Baird, and I. Guyon, “Neural Network Recognizer
for Hand-Written Zip Code Digits”, Advances in Neural Information Processing
Systems, Vol. I, D. Touretzky (editor), Morgan Kaufmann Publishers, 1989.
[7] Y. Le Cun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, L.
D. Jackel, “Handwritten Digit Recognition with a Back-Propagation Network”,
Advances in Neural Information Processing Systems, Vol. II, D. Touretzky
(editor), Morgan Kaufmann Publishers, 1990.
[8] Simon Haykin, Neural Networks: A Comprehensive Foundation, IEEE Press,
1994.
31
[9] Fernando M. Silva, Luís B. Almeida, “Acceleration Techniques for the
Backpropagation Algorithm”, Neural Networks EURASIP Workshop
Proceedings, Springer-Verlag, 1990.
[10] Anil K. Jain, Jianchang Mao, “Artificial Neural Networks: A Tutorial”,
Computer, Vol. 29, No. 3, pp. 31-44, March 1996.
[11] D. E. Rumelhart, G. E. Hinton and R. J. Williams, “Learning Internal
Representations by Error Propagation”, Parallel Distributed Processing:
Explorations in the Microstructure of Cognition, MIT Press, 1986.
[12] Athanasios Papoulis, Probability, Random Variables and Stochastic Processes,
Third Edition, McGraw-Hill, 1991.
[13] John Hertz, Anders Krogh and Richard G. Palmer, Introduction to the Theory of
Neural Computation, Addison-Wesley, 1991.