Professional Documents
Culture Documents
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
Interface Grca NNTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 a Linhas de Comando e arquivos .m para criao de uma rede neural . . . 14 ca
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
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
1.2
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
1.3
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
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
1.3.2
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
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
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
10
Victoria Y. Matsunaga
2.1
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
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
13
Victoria Y. Matsunaga
2.2
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
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)
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.
17
Victoria Y. Matsunaga
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
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