Académique Documents
Professionnel Documents
Culture Documents
PsGraduaoemEngenhariadeAutomaoeSistemas
TrabalhoIIDeepLearningaplicadonoMatlab
AlanadeMeloeSouza
EduardoJorgedaRosaBrgel
1. DesenvolvimentonoMatLab
Efetuamos o treinamento de uma rede neural profunda por classificao de dgitos.
Este exemplo mostra como usar a Rede Neural Toolbox para treinar um Rede neural
profundaparaclassificarimagensdedgitos.
As redes neurais com mltiplas camadas ocultas pode ser teis para resolver
problemas de classificao com dados complexos, como imagens. Cada camada pode
aprender caractersticas em um nvel diferente de abstrao. No entanto, a formao de
redes neurais com mltiplas camadas ocultas pode ser difcil na prtica. Uma maneira de
efetivamente treinar uma rede neural com camadas mltiplas de formar uma camada de
cada vez. possvel conseguir isto atravs da formao de um tipo especial de rede
conhecidacomautoencoderparacadacamadaocultadesejada.
Este exemplo mostraremos como treinar uma rede neural com duas camadas
escondidas para classificar dgitos em imagens. Primeiro treinaremos as camadas ocultas
individualmentedeformanosupervisionadausandoautoencoders.
OprimeiroautoencoderfoiumNeocognitronFukushima.
Fig.021Autoencoder.Fonte:https://www.mql5.com/pt/articles/1103#1_2_3
Fig.03Autoencoder.Fonte:
https://www.mql5.com/pt/articles/1103#1_2_3
Ele encontra uma aproximao de uma funo, assegurando que um feedback da
rede neural aproximadamente igualaosvaloresdosparmetrosdeentrada.Paraasoluo
do problema ser notrivial, o nmero de neurnios na camada aberta deve ser menor do
queadimensodosdadosdeentrada(comonaimagem).
Ento formaremos uma camada softmax final, e uniremos as camadas em conjunto
para formar um rede profunda, o que treinado pela ltima vez em uma forma
supervisionada.
Fig.04FunoSoftmax.Fonte:
https://www.mql5.com/pt/articles/1103#1_2_3
Redes neurais supervisionadas que usam uma funo de custo de erro mdio
quadrtico podem usar mtodos estatsticosformaisparadeterminaraconfianadomodelo
treinado.
O erro mdio quadrtico em um conjunto de validao pode ser usado como uma
estimativa para variao. Este valor pode ento ser usado para calcular o intervalo de
confianadeumasadanaredeneural,assumindoadistribuionormal.
A anlise da confiana feita desta maneira estatisticamente vlida enquanto a
distribuioprobabilsticadasadasemantiveramesmaearedeneuralnomodificar.
Assumindo a funo de ativao softmax nacamadadesadada redeparavariveis
categricas alvos, a sada pode ser interpretada como probabilidades posteriores. Isso
muitotilnaclassificao,poisdumamedidadecertezasobreasclassificaes.
1.1Objetivo
Treinarumaredeneuralprofundaparaclassificarimagensdedgitos.
1.2Conjuntodedados
Este exemplo usa dados sintticos, para a formao e testes. As imagens sintticas
foram geradas aleatoriamente a partir de dgitos usando dediferentesfontes.Cadaimagem
dgitotemtamanhode28x28pixels,eh5.000exemplosdetreinamento.
Fig.5Dgitosdefontesdiferentes.Fonte:Matlab.
Cada imagem armazenada em uma matriz de 10 por 5000, onde, em cada coluna
de um nico elemento ser de 1 para indicar a classe que o dgito pertence, e todos os
outros elementos da coluna ser 0. Deve notarse que se o dcimo elemento 1, ento a
imagemdedgitoumzero.
1.3
Treinandooprimeiroautoencoder
Um autoencoder uma rede neural, que tenta reproduzir a sua entrada sua sada.
Assim, o tamanho da sua entrada ser o mesmo que o tamanho da sua sada. Quando o
nmero de neurnios na camada escondida menor do que o tamanho da entrada, o
autoencoderaprendeumarepresentaocomprimidadaentrada.Asredesneuraistmpesos
Fig.061Autoencoder.Fonte:Matlab.
1.4Avisualizaodospesosdaprimeiraautoencoder
O mapeamento aprendido pela parte de um codificador autoencoder pode ser til para a
extrao de caractersticas a partirdedados.Cadaneurnionocodificadortemumvetorde
pesosassociadoscomelequevaiserajustadopararesponderaumefeitovisualespecial.
Fig.07Ajustesdo1Autoencoder.Fonte:Matlab.
possvel verqueascaractersticasaprendidaspeloautoencoderpelarepresentao
de traados a partir das imagens dgitos. A sada dimensional da camada escondida do
autoencoder uma verso compacta da entrada, que resume sua resposta s caractersticas
visualizadas acima.O prximo passo treinar autoencoder com o conjunto desses vetores
extrados.Usamosocodificadordoautoencodertreinadosparagerarosrecursos.
1.5Treinandoosegundoautoencoder
Depois de treinar o primeiro autoencoder,treinamososegundoautoencoderdeuma
maneira similar. A principal diferena que voc usa os recursos que foram gerados a
partir da primeira autoencoder como os dados de treinamento na segunda autoencoder.
Alm disso, diminumos o tamanho da representao oculta a 50, de modo que o
codificador do segundo autoencoder aprende uma representao ainda menordosdadosde
entrada.
Fig.082Autoencoder.Fonte:Matlab.
1.6Treinandoacamadafinaldesoftmax
Treinar uma camada softmax para classificar os vetores de 50 dimenses.Ao
contrrio dos autoencoders, voc treina a camada softmax deformasupervisionadausando
etiquetasparaosdadosdetreinamento.
Fig.09CamadaSoftmax.Fonte:Matlab.
1.7Formandoaredeneural
Treinamostrscomponentesseparadosdeumaredeneuralprofundaem isolamento.
Neste ponto, pode ser til para ver as trs redes neurais que voc treinou. Eles so
autoenc1,autoenc2,eSoftnet.
Fig.11Astrscamadas.Fonte:Matlab.
Tal comofoiexplicado,oscodificadoresdasautoencodersforamusadasparaextrair
caractersticas. Podemos empilhar os codificadores dos autoencoders juntamente com a
camada softmax para formar uma rede de profundidade, com o comando Deepnet = pilha
(autoenc1,autoenc2,softnet).
Fig.12RedeNeuralprofunda.Fonte:Matlab.
1.8Resultados
Podemos visualizar os resultados com uma matriz de confuso.Os nmeros no
quadroinferiordireitodamatrizmostraaprecisoglobal.
Fig.13Matrizconfusoantesdoajustefino.Fonte:Matlab.
1.8.1Oajustefinodaredeneuralprofunda
Os resultados pode ser melhorado atravsdarealizaodaretropropagaoemtoda
a rede multicamada.Este processo muitas vezes referido como ajuste fino. Vocafinara
rede por reciclagem sobre osdadosdeformaodeformasupervisionada.Masantestemos
que remodelar as imagens de treinamento em uma matriz, como foi feito para as imagens
deteste.
%Vireasimagensdetreinamentoemvetoresecoloclosemumamatriz
xTrain = zeros (inputSize, Numel (xTrainImages)) para i = 1: Numel
(xTrainImages)
xTrain(:,i)=xTrainImages{i}(:)final%Realizeajustefino
Deepnet=comboio(Deepnet,xTrain,tTrain)
6.8.2Segundoresultadocomajustefino
A matriz de confuso de uma hiptese h oferece uma medida efetiva domodelode
classificao, ao mostrar o nmero de classificaes corretas versus as classificaes pr
ditasparacadaclasse,sobreumconjuntodeexemplosT.
O nmerodeacertos,paracadaclasse,selocalizanadiagonalprincipalM(Ci,Ci)da
matriz. Os demais elementos M (Ci, Cj), para i j, representam erros na classificao. A
matriz de confuso de um classificador ideal possui todos esses elementos iguais a zero
umavezqueelenocometeerros.
Fig.14Matrizconfusocomajustefino.Fonte:Matlab.
7Concluso
inicialmentepropostos.
De incio foi apresentada uma introduo sobre uma rede de aprendizagem
profunda, seus principais conceitos, definies, sua arquitetura e aplicaes. Aps isto foi
descrito o mtodo de implementao no Matlab, e quais estruturas seguimos para o
funcionamentodarede.
De posse de toda a fundamentao terica necessria foi simulada a rede de
aprendizagem profunda, utilizando a ferramenta Toolbox no MATLAB, alm de formular
uma breve anlise dos resultadosobtidos.Vimosque estesoftwareumaferramentamuito
til para o ambiente acadmico e extremamente valioso no que tange anlise de redes
neuraisartificias.
8Referncias
BENGIO, Y. GOODFELLOW,I.J.COURVILLE,A.
DeepLearning:AnMITPress book
inpreparation,2015.
DENG, L. YU, D.
Deep Learning: Methods and Applications.FoundationsandTrendsin
SignalProcessing,
2014.
LECUNY.BENGIOY.HINTONG.
DeepLearning.
Nature,V.521,2015.