You are on page 1of 22

Curso de Redes Neurais utilizando o MATLAB

Victoria Yukie Matsunaga

Belm-Par-Brasil e a 2012

Esta apostila tem como principal objetivo fornecer um material de aux ao Curso de lio Redes Neurais utilizando o MATLAB. Inicialmente, alguns conceitos bsicos necessrios a a para o entendimento desta ferramenta sero abordados e, posteriormente, alguns comana dos e funes do software sero apresentados. A elaborao deste material foi baseada co a ca principalmente nas seguintes bibliograas: Guia do Usurio do MATLAB. a Neural Networks: a comprehensive foundation, S. Haykin, New York: MacMillan College Publishing Co., 2nd Edition. O Guia do Usurio do MATLAB encontra-se dispon no site da The MathWorks, a vel Inc: http://www.mathworks.com/. As demais fontes esto listadas no nal deste matea rial.

Sumrio a
1 Redes Neurais Articiais 1.1 1.2 1.3 Neurnios Biolgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o Modelo Articial do Neurnio . . . . . . . . . . . . . . . . . . . . . . . . . o Arquitetura da Rede Neural . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 1.3.2 1.3.3 1.4 1.5 Redes Alimentadas Adiante com Camada Unica . . . . . . . . . . . Redes Alimentadas Diretamente com Mltiplas Camadas . . . . . . u Redes Recorrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 5 6 7 7 8 8 9 11

Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regra de Aprendizado por Retropropagao (Backpropagation) . . . . . . . ca

2 MATLAB 2.1 2.2

Interface Grca NNTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 a Linhas de Comando e arquivos .m para criao de uma rede neural . . . 14 ca

Cap tulo 1 Redes Neurais Articiais


As redes neurais articiais (RNAs) so sistemas de computao adaptativos inspirados a ca nas caracter sticas de processamento de informao encontradas nos neurnios reais e nas ca o caracter sticas de suas interconexes [1]. o O estudo de RNAs baseado no comportamento das redes neurais biolgicas. O e o crebro humano possui uma enorme capacidade de processar informaes, como por exeme co plo, o reconhecimento de fala e a segmentao de imagens. E, a partir desta anlise, pesca a quisas so realizadas com a nalidade de reproduzir as reaes do crebro em mquinas a co e a (rede neural), tendo como resultado bastante promissor (apesar do pouco conhecimento do crebro humano). e As RNAs so formadas por um conjunto de neurnios articiais que interagem entre a o si, semelhantes ao funcionamento dos neurnios biolgicos. Basicamente, so sistemas o o a paralelos de computao e suas implementaes podem ser em hardware (realiza uma ca co determinada tarefa a partir de componentes eletrnicos) ou em software (simulaes por o co programao em um computador digital). ca As redes neurais tm a capacidade de coletar, utilizar e armazenar informaes basee co adas em experimentos (aprendizagem). O processo de aprendizagem feito a partir de e algoritmos de aprendizagem, onde os pesos sinpticos da rede so modicados de uma a a forma ordenada para alcanar o resultado desejado. c 2

A partir da informao contida em pares de entradas e sa ca das, contidos em um banco de dados, denotados por (p1 , t1 ), (p2 , t2 ), . . . , (p , t ) (as chamadas amostras de treinamento), Q Q as redes neurais devem aprender e generalizar o conhecimento contido nas amostras, de forma a responder de forma adequada quando entradas no presentes no conjunto de a treinamento forem apresentadas ` rede. a Isto poss e vel devido ao fato de que a formulao baseada numa representao ca e ca (simplicada) de uma rede real de neurnios. Dessa forma, problemas relacionados a o reconhecimento de padres podem ser solucionados atravs da implementao e uso adeo e ca quados desta tcnica. e Algumas caracter sticas importantes em uma rede neural articial so: a Robustez e tolerncia a falhas: a eliminao de alguns neurnios no afeta substana ca o a cialmente o seu desempenho global. Flexibilidade: pode ser ajustada a novos ambientes por meio de um processo de aprendizagem, sendo capaz de aprender novas aes com base na informao contida co ca nos dados de treinamento. Processamento de informao incerta: mesmo que a informao fornecida esteja ca ca incompleta, afetada por ru do, ainda poss obter-se um racioc e vel nio correto. Paralelismo: um imenso nmero de neurnios est ativo ao mesmo tempo. No u o a a existe a restrio de um processador que obrigatoriamente trabalhe uma instruo ca ca aps outra. o A estrutura de uma rede neural paralelamente distribu e da, e possui habilidade de aprender. Portanto, sua utilizao oferece alguns benef ca cios: Capacidade de realizar mapeamentos no-lineares entre entrada e sa a da; Adaptabilidade, mediante a um algoritmo de aprendizado;

Victoria Y. Matsunaga

Tolerncia ` falhas a a Uniformidade de anlise e projeto a Analogia neurobiolgica o

1.1

Neurnios Biolgicos o o

O esforo para entender o crebro se tornou mais fcil pelo trabalho pioneiro de Ramn c e a o y Cajl (1911) [1], que introduziu a ideia dos neurnios como constituintes estruturais do a o crebro. Tipicamente, os neurnios biolgicos so de cinco a seis ordens de grandeza mais e o o a lentas que as portas lgicas em sil o cio; as quais atuam na faixa de nanossegundos (109 s). Entretanto, o crebro pode compensar a taxa de operao relativamente lenta de e ca um neurnio pelo nmero muito elevado de neurnios (clulas nervosas), com conexes o u o e o macias entre si. c Estima-se que haja aproximadamente 10 bilhes de neurnios no crtex humano e 60 o o o trilhes de sinapses ou conexes [2]. O crebro humano, representado pela rede neural o o e (nervosa), constitu por estruturas, neurnios, que interagem entre si, armazenando e do o e tomando decises adequadas a partir das informaes recebidas. o co Um neurnio (Figura 1.1 [3]) composto por um corpo celular (ou soma), um axnio o e o tubular e vrias ramicaes arbreas conhecidas como dendritos. Os dendritos (zonas a co o receptivas) formam uma malha de lamentos n ssimos ao redor do neurnio. Ao passo o que o axnio (linhas de transmisso) consta de um tubo longo e no que ao nal se divide o a em ramos que terminam em pequenos bulbos que quase tocam os dendritos dos outros neurnios. O pequeno espao entre o m do bulbo e o dendrito conhecido como sinapse, o c e que tem como papel fundamental a memorizao da informao. ca ca

Victoria Y. Matsunaga

Dentritos

Nucleo

^ Axonio

Terminais ^ do-Axonio

Soma.ou.corpo

Figura 1.1: Modelo de um neurnio biolgico. o o

1.2

Modelo Articial do Neurnio o

Basicamente, todos os tipos de redes neurais apresentam a mesma unidade de processamento: um neurnio articial, que simula o comportamento do neurnio biolgico. Esse o o o neurnio articial possui vrias entradas, que correspondem `s conexes sinpticas com o a a o a outras unidades similares a ele, e uma sa cujo valor depende diretamente da somatria da, o ponderada de todas as sa das dos outros neurnios a esse conectado. o O modelo articial de neurnio mostrado na Figura 1.2, sendo uma generalizao o e ca do modelo de McCulloch e Pitts [4, 1]. Esse modelo inclui um sinal adicional bias (b) que favorece ou limita a possibilidade de ativao do neurnio. O processo sinptico ca o a e representado pelos pesos () que amplicam cada um dos sinais recebidos. A chamada funo de ativao (f ) modela a forma como o neurnio responde ao n de excitao, ca ca o vel ca limitando e denindo a sa da rede neural. da A funo de ativao pode ter diferentes representaes. Os trs tipos bsicos de ca ca co e a funo de ativao so: limiar, linear e sigmide. A escolha do tipo varia de acordo com ca ca a o

Victoria Y. Matsunaga

pesos
p1
w 1j

bias
p2
w 2j

p3
. . .

f
Funode ativao

sada

w 3j
. . .

pn

w nj

Entradas

Figura 1.2: Modelo articial de neurnio biolgico. o o

o objetivo do projeto [1].

1.3

Arquitetura da Rede Neural

As disposies (arquitetura) de uma rede neural so de diversas formas, conforme a co a necessidade da aplicao, estando diretamente ligadas com o algoritmo de aprendizagem ca usado para treinar a rede. Basicamente, os itens que compem a estrutura de uma rede o neural so, portanto, sujeito a modicaes, sendo os seguintes [1]: a co Camadas intermedirias a Quantidade de neurnios o Funo de transferncia ca e Algoritmo de aprendizado A maneira pela qual os neurnios de uma rede neural esto estruturados est intio a a mamente ligada ao algoritmo de aprendizagem a ser usado para treinar a rede. Pode-se, 6

Victoria Y. Matsunaga

portanto, falar de algoritmos (regras) de aprendizagem utilizados no projeto de redes neurais como sendo estruturados. Em geral, podemos classicar trs tipos de arquiteturas de e rede fundamentalmente diferentes, como descritos a seguir.

1.3.1

Redes Alimentadas Adiante com Camada Unica

Em uma rede neural em camadas, os neurnios esto organizados na forma de camadas o a (Figura 1.3). O termo camada unica se refere ` camada de sa de ns computacionais a da o (neurnios). o

Camadade deEntrada

Camadade deSada dosNeurnios

Figura 1.3: Redes alimentadas adiante com camada unica.

1.3.2

Redes Alimentadas Diretamente com M ltiplas Camadas u

Esse tipo de arquitetura se distingue pela presena de uma ou mais camadas ocultas (ou c intermedirias), cujos ns computacionais so chamados de neurnios ocultos ou unidades a o a o ocultas. A funo dos neurnios ocultos intervir entre a entrada externa e a sa da ca o e da rede de uma maneira util. Adicionando-se uma ou mais camadas ocultas, tornamos a rede capaz de extrair estat sticas de ordem elevada. A Figura 1.4 mostra um exemplo de uma RNA de 2 camadas com 4 entradas e 2 sa das. 7
Victoria Y. Matsunaga

Camadade Entrada

Camadade Neurnios deSada

Camadade Neurnios Ocultos

Figura 1.4: Redes alimentadas diretamente com mltiplas camadas. u

1.3.3

Redes Recorrentes

Elas se distinguem das redes alimentadas adiante por terem pelo menos um lao de c realimentao, com a presena ou no de neurnios ocultos. A presena de laos de ca c a o c c realimentao tem um impacto profundo na capacidade de aprendizagem da rede e no seu ca desempenho.

1.4

Aprendizado

O aprendizado das redes neurais pode ser na forma supervisionada ou no supervisia onada. No aprendizado supervisionado, o instrutor confere o quanto a rede est prxima a o de uma soluo aceitvel, adaptando na concepo do treinamento os pesos entre os ca a ca neurnios, de modo a prover uma menor diferena entre as sa o c das desejadas. No aprendizado no supervisionado, inicialmente, as sa a das da rede no so conhecidas, a a funcionando de modo a distinguir classes de padres diferentes dos dados apresentados o a ` rede, atravs de algoritmos de aprendizado baseados geralmente em conceitos de vie zinhana e agrupamento. A rede ajustada de acordo com regularidades estat c e sticas dos dados de entrada, de tal forma que ela cria categorias, otimizando em relao aos ca

Victoria Y. Matsunaga

parmetros livres da rede uma medida da quantidade que independente da tarefa a ser a e executada.

1.5

Regra de Aprendizado por Retropropagao (Backca propagation)

O algoritmo Backpropagation procura achar iterativamente a m nima diferena entre c as sa das desejadas e as sa das obtidas pela rede neural, com o m nimo de erro. Dessa forma, ajustando os pesos entre as camadas atravs da retropropagao do erro encontrado e ca em cada iterao [5, 1]. ca Essa regra um dos tipos de treinamento supervisionado, onde a rede analisada e e em dois casos: na sua propagao (camada por camada) e principalmente, na sua reca tropropagao (anlise contrria ` propagao), Backpropagation. No primeiro, os pesos ca a a a ca sinpticos ji (peso sinptico conectando a sa do neurnio i ` entrada do neurnio j ) a a da o a o da rede so todos xos. No segundo, os pesos so todos ajustados. a a Basicamente, um padro de entrada aplicado como um est a e mulo aos elementos da primeira camada da rede, que propagado por cada uma das outras camadas at que a e e sa seja gerada a. Ela ento comparada com a sa desejada ad (gerando um sinal de da e a da erro e para cada elemento de sa da). O sinal de erro ento retropropagado da camada e a de sa para cada elemento da camada intermediria anterior que contribui diretamente da a para a formao da sa ca da. Entretanto, cada elemento da camada intermediria recebe apenas uma poro do sinal a ca de erro total, proporcional apenas ` contribuio relativa de cada elemento na formao a ca ca da sa original. Este processo se repete, camada por camada, at que cada elemento da da e rede receba um sinal de erro que descreva sua contribuio relativa para o erro total. ca Com base no sinal de erro recebido, os pesos sinpticos so ento atualizados (de a a a acordo com uma regra de correo de erro) para cada elemento de modo a fazer a rede ca

Victoria Y. Matsunaga

convergir para o valor de sa desejada ad . A ilustrao do algoritmo Backpropagation da ca pode ser vericada na Figura 1.5.
Propagao Retropropagao Neurnioi
p1
ad

. . . .
pR
Camadadeentrada

. . . .

. . . .

Neurnioj
a

. . . .

. . . .

Camadasintermedirias

Camadadesada

Figura 1.5: Ilustrao do algoritmo Backpropagation. ca

10

Victoria Y. Matsunaga

Cap tulo 2 MATLAB


O MATLAB (Matrix Laboratory), software desenvolvido pela The MathWorks, Inc, um sistema interativo e uma linguagem de programao baseados numa matriz, onde e ca as solues e problemas so expressos em linguagem matemtica. Atravs da utilizao co a a e ca do MATLAB poss realizar anlise numrica, operaes com matrizes, construo de e vel a e co ca grcos e criao de interfaces com o usurio. a ca a Uma das principais vantagens do software a facilidade de escrever e depurar um e programa, se comparado a outras linguagens de programao (tais como C, Basic, Pascal ca ou Fortran). Alm disso, possui diversas funes matemticas, matriciais e grcas que e co a a simplicam e minimizam a estrutura do programa. O MATLAB tambm dispe de diversas bibliotecas ou ferramentas (toolboxes) para e o aplicaes espec co cas, como por exemplo, Redes Neurais, Lgica Fuzzy, Otimizao de Siso ca temas, Wavelets, Clculo Simblico, Processamento de Sinais e outras. O software possui a o verses para diferentes ambientes operacionais: Windows, Linux, UNIX, Macintosh. o O toolbox abordado neste curso ser o de Redes Neurais, onde a verso do MATLAB a a para ambiente Windows. e A utilizao do toolbox de redes neurais no MATLAB pode ser atravs de interface ca e grca (NNTool), linhas de comando ou arquivo .m. Nas subsequentes sees sero a co a descritas esses modos de utilizao. ca 11

2.1

Interface Grca NNTool a

A interface grca NNTool (Neural Network Toolbox ) permite importar, criar, utilizar a e exportar dados de redes neurais. O acesso ao NNTool realizado digitando nntool na e janela de comandos do MATLAB. Uma janela denominada Network/ Data Manager ser a aberta, conforme a Figura 2.1

Figura 2.1: NNTool.

Os padres (dados de entrada e de sa o da) e a arquitetura da rede so denidos de a acordo com a Figura 2.2 E poss visualizar a rede neural pressionando o boto View como mostra a Figura vel a 2.3. Aps a criao da rede, passamos para a fase de treinamento (Figura 2.4). Nesta o ca etapa, determinamos cada parmetro de treinamento, tais como dados de validao e teste, a ca nmero de pocas, valores dos pesos ou bias, etc. Para iniciar o processo de treinamento u e pressiona-se o boto Train Network. a

12

Victoria Y. Matsunaga

Figura 2.2: Denio dos padres e das caracter ca o sticas da rede.

Figura 2.3: Visualizao da rede. ca

13

Victoria Y. Matsunaga

Figura 2.4: Visualizao da rede. ca

2.2

Linhas de Comando e arquivos .m para criao ca de uma rede neural

Uma rede neural tambm pode ser desenvolvida atravs de comandos escritos na Janela e e de Comandos ou no ambiente de edio do MATLAB. Para o entendimento desta seo, ca ca utilizaremos uma rede do tipo feed-forward (sem realimentao) como exemplo. ca As etapas para a implementao de uma rede so: ca a 1. Denio dos dados de entrada e sa ca da 2. Inicializao da rede ca A funo new cria uma rede do tipo Backpropagation. ca
net = newff ( [min(P) max(P)], [10 10 1], purelin,tansig, tansig, traingd; (limites dos padres de entrada - m e mx.) o n. a (nmero de neurnios de cada camada) u o (funo de transferncia de cada camada) ca e (algoritmo de treinamento)

Os tipos de funes de transferncia e de algoritmos de aprendizado so descritos co e a nas Tabelas 2.1 e 2.2 . 14
Victoria Y. Matsunaga

Tabela 2.1: Funes de transferncia. co e Funo ca purelin tansig logsig satlin Descrio ca Linear Tangente hiperblica o Sigmide o Linear com saturao ca

Tabela 2.2: Algoritmos de aprendizado.

Algoritmo trainlm traingd traingdm traingda traingdx

Descrio ca Backpropagation Levenberg-Marquardt Backpropagation de gradiente decrescente Backpropagation de gradiente decrescente com momentum Backpropagation de gradiente decrescente com taxa adaptativa Backpropagation de gradiente decrescente com momentum e taxa adaptativa

3. Denio dos parmetros de treinamento ca a Tabela 2.3: Parmetros de treinamento. a Parmetro a Descrio ca net.trainP aram.epochs net.trainP aram.goal net.trainP aram.show net.trainP aram.lr net.trainP aram.time Nmero mximo de pocas de treinamento u a e Erro desejado Nmero de iteraes que aparece na tela u co Taxa de aprendizado Tempo mximo (segundos) para o treinamento a

4. Treinamento da rede

15

Victoria Y. Matsunaga

A funo train utilizada para treinar a rede de acordo com net.trainFcn e net.trainParam. ca e

net = train(net, P, T)

5. Simulao da rede ca A funo sim utilizada para simular a rede. ca e


Y = sim(net, P)

Exemplo Dados os padres de entrada e sa o da, P = [0 1 2 3 4 5 6 7 8 9 10] e T = [0 1 2 3 4 3 2 1 2 3 4], criar uma rede neural com o algoritmo de aprendizado Backpropagation sem realimentao. ca A soluo deste exemplo descrito na Figura 2.5. ca e

Figura 2.5: Exemplo de uma rede neural utilizando comandos num arquivo .m.

16

Victoria Y. Matsunaga

A partir desses comandos, uma janela ser gerada: Neural Network Training (nntraina tool) (Figura 2.6), onde os parmetros de treinamento da rede so mostrados, tais como a a nmeros de camadas, algoritmo de treinamento, nmeros de pocas, tempo de simulao u u e ca e outros. Alm disso, poss plotar algumas caracter e e vel sticas da rede ao longo de seu treinamento, como por exemplo, o desempenho da rede ilustrado na Figura 2.7.

Figura 2.6: Neural Network Training (nntraintool).

17

Victoria Y. Matsunaga

Figura 2.7: Treinamento da rede neural.

A comparao entre a sa da rede e a sa desejada mostrada na Figura 2.8. ca da da e Observa-se que a sa desejada (linha cont da nua) muito prxima ` sa da rede (c e o a da rculos), indicando um bom desempenho da rede neural articial. Vale salientar que o desenvolvimento de uma RNA varia de acordo com o problema em questo e o objetivo de cada projeto. Se neste exemplo o objetivo fosse obter uma a sa com um erro bem prximo de zero, alguns ajustes poderiam ser feitos para melhorar da o ainda mais esse desempenho.

18

Victoria Y. Matsunaga

Figura 2.8: A comparao entre a sa da rede e a sa desejada. ca da da

19

Victoria Y. Matsunaga

Referncias Bibliogrcas e a
[1] S. Haykin, Neural Networks: a comprehensive foundation. College Publishing Co., 1999. [2] G. Shepherd, The synaptic organization of the brain. Press, 2003. [3] M. Roberts, Schizophrenia daily news blog: New neurobiology knoNew York: Oxford University New York: MacMillan

wledge may lead to schizophrenia research and treatments, Disponvel em: http://www.schizophrenia.com/sznews/archives/005490.html, 2007. [4] W. McCulloch and W. Pitts, A logical calculus of ideas immanent in nervous activity, Bulletin of Mathematical Biophysics, vol. 5, pp. 115133, 1943. [5] D. E. Rumerlhart, G. E. Hinton, and R. J. Williams, Learning representations by back-propagating errors, 1986, Nature, vol. 323, pp. 533536, 1986.

20

You might also like