Buscar

TRABALHO_T04_REDES_NEURAIS_E_SISTEMAS_FUZZY_RICHARD_SCHERDIEN-corrigido

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Classificador de dígitos MNIST 
Richard Nunes Scherdien1 
1Graduando em Engenharia Elétrica 
Instituto Federal Sul-rio-grandense (IFSul) – Pelotas, RS – Brasil 
richardscherdien@gmail.com
Abstract. In this article there will be showed de results of the execution of a 
computational intelligence algorithm, with was developed with the objective of 
recognize numeric values trough Neural Networks. The steps included in the 
development of this algorithm and the used methodologies are going to be 
showed as well. 
Resumo. Neste artigo serão apresentados os resultados obtidos a partir da 
execução de um algoritmo de inteligência computacional que foi desenvolvido 
com o objetivo de reconhecer valores numéricos por meio de Redes Neurais. 
Também serão exibidas as etapas do desenvolvimento deste algoritmo, bem 
como a metodologia empregada. 
1. Introdução 
 Neste trabalho houve o desenvolvimento de um sistema com base em 
inteligência computacional. Este sistema pode ser útil caso haja a necessidade de se 
reconhecer caracteres para a automatização de tarefas que, até o presente momento, 
necessitam de interferência humana. Através do sistema desenvolvido podem-se 
reconhecer caracteres para classificação de acordo com a necessidade. Por meio deste, 
também é possível transformar textos de imagens em arquivos de texto com caracteres 
em formato ASCII. Foram utilizadas bibliotecas específicas que permitiram o trabalho 
com bancos de dados de alta capacidade e enorme precisão. Sem a utilização da 
biblioteca e sem o seu respectivo banco de dados, os testes e treinamento da rede neural 
não seriam possíveis. O uso da biblioteca facilita no desenvolvimento no trabalho dado 
que seus métodos já foram testados e validados pela comunidade científica. 
2. Materiais e Métodos 
 O sistema OCR é um sistema de visão computacional. Seu funcionamento 
consiste na digitalização da imagem pretendida, seguido da normalização da mesma em 
tons de cinza e posterior segmentação de cada caractere de acordo com sua respectiva 
borda. De forma mais resumida: o sistema realiza uma conferência do caractere lido 
com os caracteres presentes em seu banco de dados, confirmando assim o caractere lido. 
Tendo o MNIST como base de dados, foi construída a classificação dos dígitos. Esta 
referida base de dados possui sete mil caracteres distintos em imagens quadradas de 
vinte e oito pixels de lado. Para a realização do treinamento do sistema implementado 
foram utilizados três conjuntos de dados, os quais possuíam, respectivamente, cem 
dígitos, dez mil dígitos e sessenta mil dígitos. Fez-se necessário, também, o uso da 
biblioteca MLP, já utilizada em trabalhos anteriores. 
 
Para a obtenção de uma precisão satisfatória, realizou-se o treinamento com as amostras 
de sessenta mil imagens. A matriz confusão foi gerada e utilizada para análise. Os pesos 
foram obtidos através de um script escrito em linguagem Python conforme já foi 
realizado em trabalhos anteriores. 
De acordo com os aspectos dos métodos heurísticos, pode-se realizar a escolha correta 
da topologia a ser utilizada. As topologias testadas e a precisão obtida são listadas 
abaixo: 
Topologia Neurônios na 1º 
camada 
Neurônios na 2º 
camada 
Precisão 
1 50 x 0,9421 
2 100 x 0,9497 
3 1497 x 0,9646 
4 100 100 0,9476 
5 1497 100 0,9597 
6 1497 798 0,9524 
 
Os testes foram realizados em um computador portátil da marca HP, modelo r051br 
com processador Intel Core i3-4005u 64 bits com 1,696 GigaHertz de clock, dois 
núcleos e 8 GigaBytes de memória RAM. Para a escrita e compilação do script foi 
utilizado o compilador Spyder 3 do Anaconda Navigator em linguagem Python 3. 
3. Resultados e Discussão 
 Através da utilização dos algoritmos descritos durante as aulas da disciplina, foi 
possível realizar o teste e treinamento de uma rede para o reconhecimento de dígitos. 
Para implementar o algoritmo utilizamos a função MLP.Classifier da biblioteca 
sklern.neural_network. A taxa de aprendizagem passada como parâmetro foi de 0.1 e 
tolerância de 0.0001 utilizado como critério de parada, alguns parâmetros foram 
deixados padrão. 
Após a realização de um teste curto a rede era escolhida, então o treinamento com 
60000 amostras era realizado. Como critério de escolha foi definido a precisão média da 
rede. Entretanto esse critério não se mostrou satisfatório, pois outras redes obtinham 
resultados semelhantes, mesmo sendo um pouco menores. Como os resultados obtidos 
não era bons optou-se por forçar a utilização da maior rede para analisar os resultados. 
 
Topologia 1 2 3 4 5 6 
Score 0,6824 0,736 0,7421 0,7527 0,7275 0,7275 
 Os resultados obtidos foram considerados satisfatórios, pois se chegou a quase 90% de 
precisão. Abaixo, pode-se ver a matriz obtida: 
 
 
Figura 1 – Matriz de confusão com rede de uma e duas camadas para o arquivo 
mnist_100.csv 
 
Figura 2 – Matriz de confusão para o arquivo mnist_10000.csv 
 Como o treinamento é realizado uma única vez, optou-se por melhor precisão 
invés de um treinamento mais rápido. O fator tempo neste caso não possui tanta 
importância quanto a precisão, sendo que na segunda opção a precisão é aumentada em 
10%. Por este motivo a última topologia foi escolhida, pois obteve melhor resultado. 
4. Conclusão 
 É de se considerar que o resultado obtido é satisfatório. Porém, a utilização de 
outros parâmetros da função MLP.Classifier ou a utilização de mais um algoritmo 
responsável pelo reconhecimento em caso dúvida poderia aumentar a precisão. 
Considera-se que este algoritmo pode ser utilizado em outros casos, desde que as 
imagens de entrada sejam padronizadas da mesma forma ou semelhantemente às 
imagens pertencentes ao banco de dados. 
Abaixo se pode analisar uma imagem que o algoritmo identificou. Pode-se perceber que 
a identificação é difícil até mesmo visualmente e que alguns erros podem até ser 
esperados devido à baixa qualidade da imagem e da caligrafia empregada. A utilização 
de OCR na digitalização de documentos, por exemplo, poderia aumentar a precisão do 
sistema, pois contaria com um mecanismo de análise combinacional das letras 
presentes. Por exemplo, se houvesse a identificação de letra “i” como sendo “l” na 
palavra “baixa”, outro algoritmo de busca poderia verificar uma árvore de palavras e 
realizar a correção. 
 
 
 
Figura 2 - Resultado 
Referências 
BRAGA, A. de P.; CARVALHO, A. P. L. F.; LUDERMIR, Teresa Bernarda. (2000) 
“Redes Neurais Artificiais: Teoria e Aplicações”. Rio de Janeiro: Livros Técnicos e 
Científicos. 
FLORES, Franklin César; PERES, Sarajane Marques. (2001) “Revisão Bibliográfica: 
Análise de Componentes Principais Linear e Não Linear X Redes Neurais”. 
Campinas: UNICAMP. 
Material da disciplina

Outros materiais