Você está na página 1de 22

Curso de Redes Neurais utilizando o MATLAB

Victoria Yukie Matsunaga

Bel em-Par a-Brasil 2012

Esta apostila tem como principal objetivo fornecer um material de aux lio ao Curso de Redes Neurais utilizando o MATLAB. Inicialmente, alguns conceitos b asicos necess arios para o entendimento desta ferramenta ser ao abordados e, posteriormente, alguns comandos e fun c oes do software ser ao apresentados. A elabora c ao deste material foi baseada principalmente nas seguintes bibliograas: Guia do Usu ario do MATLAB. Neural Networks: a comprehensive foundation, S. Haykin, New York: MacMillan College Publishing Co., 2nd Edition. O Guia do Usu ario do MATLAB encontra-se dispon vel no site da The MathWorks, Inc: http://www.mathworks.com/. As demais fontes est ao listadas no nal deste material.

Sum ario
1 Redes Neurais Articiais 1.1 1.2 1.3 Neur onios Biol ogicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelo Articial do Neur onio . . . . . . . . . . . . . . . . . . . . . . . . . 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 M ultiplas Camadas . . . . . . Redes Recorrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 5 6 7 7 8 8 9 11

Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regra de Aprendizado por Retropropaga c ao (Backpropagation ) . . . . . . .

2 MATLAB 2.1 2.2

Interface Gr aca NNTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Linhas de Comando e arquivos .m para cria c ao de uma rede neural . . . 14

Cap tulo 1 Redes Neurais Articiais


As redes neurais articiais (RNAs) s ao sistemas de computa c ao adaptativos inspirados nas caracter sticas de processamento de informa c ao encontradas nos neur onios reais e nas caracter sticas de suas interconex oes [1]. O estudo de RNAs e baseado no comportamento das redes neurais biol ogicas. O c erebro humano possui uma enorme capacidade de processar informa c oes, como por exemplo, o reconhecimento de fala e a segmenta c ao de imagens. E, a partir desta an alise, pesquisas s ao realizadas com a nalidade de reproduzir as rea c oes do c erebro em m aquinas (rede neural), tendo como resultado bastante promissor (apesar do pouco conhecimento do c erebro humano). As RNAs s ao formadas por um conjunto de neur onios articiais que interagem entre si, semelhantes ao funcionamento dos neur onios biol ogicos. Basicamente, s ao sistemas paralelos de computa c ao e suas implementa c oes podem ser em hardware (realiza uma determinada tarefa a partir de componentes eletr onicos) ou em software (simula c oes por programa c ao em um computador digital). As redes neurais t em a capacidade de coletar, utilizar e armazenar informa c oes baseadas em experimentos (aprendizagem). O processo de aprendizagem e feito a partir de algoritmos de aprendizagem, onde os pesos sin apticos da rede s ao modicados de uma forma ordenada para alcan car o resultado desejado. 2

A partir da informa c ao contida em pares de entradas e sa das, contidos em um banco de dados, denotados por (p 1 , t 2 , t 1 ), (p 2 ), . . . , (p Q , tQ ) (as chamadas amostras de treinamento), as redes neurais devem aprender e generalizar o conhecimento contido nas amostras, de forma a responder de forma adequada quando entradas n ao presentes no conjunto de treinamento forem apresentadas ` a rede. Isto e poss vel devido ao fato de que a formula c ao e baseada numa representa c ao (simplicada) de uma rede real de neur onios. Dessa forma, problemas relacionados a reconhecimento de padr oes podem ser solucionados atrav es da implementa c ao e uso adequados desta t ecnica. Algumas caracter sticas importantes em uma rede neural articial s ao: Robustez e toler ancia a falhas: a elimina c ao de alguns neur onios n ao afeta substancialmente o seu desempenho global. Flexibilidade: pode ser ajustada a novos ambientes por meio de um processo de aprendizagem, sendo capaz de aprender novas a c oes com base na informa c ao contida nos dados de treinamento. Processamento de informa c ao incerta: mesmo que a informa c ao fornecida esteja incompleta, afetada por ru do, ainda e poss vel obter-se um racioc nio correto. Paralelismo: um imenso n umero de neur onios est a ativo ao mesmo tempo. N ao existe a restri c ao de um processador que obrigatoriamente trabalhe uma instru c ao ap os outra. A estrutura de uma rede neural e paralelamente distribu da, e possui habilidade de aprender. Portanto, sua utiliza c ao oferece alguns benef cios: Capacidade de realizar mapeamentos n ao-lineares entre entrada e sa da; Adaptabilidade, mediante a um algoritmo de aprendizado;

Victoria Y. Matsunaga

Toler ancia ` a falhas Uniformidade de an alise e projeto Analogia neurobiol ogica

1.1

Neur onios Biol ogicos

O esfor co para entender o c erebro se tornou mais f acil pelo trabalho pioneiro de Ram on y Caj al (1911) [1], que introduziu a ideia dos neur onios como constituintes estruturais do c erebro. Tipicamente, os neur onios biol ogicos s ao de cinco a seis ordens de grandeza mais lentas que as portas l ogicas em sil cio; as quais atuam na faixa de nanossegundos (109 s). Entretanto, o c erebro pode compensar a taxa de opera c ao relativamente lenta de um neur onio pelo n umero muito elevado de neur onios (c elulas nervosas), com conex oes maci cas entre si. Estima-se que haja aproximadamente 10 bilh oes de neur onios no c ortex humano e 60 trilh oes de sinapses ou conex oes [2]. O c erebro humano, representado pela rede neural (nervosa), e constitu do por estruturas, neur onios, que interagem entre si, armazenando e tomando decis oes adequadas a partir das informa c oes recebidas. Um neur onio (Figura 1.1 [3]) e composto por um corpo celular (ou soma), um ax onio tubular e v arias ramica c oes arb oreas conhecidas como dendritos. Os dendritos (zonas receptivas) formam uma malha de lamentos n ssimos ao redor do neur onio. Ao passo que o ax onio (linhas de transmiss ao) consta de um tubo longo e no que ao nal se divide em ramos que terminam em pequenos bulbos que quase tocam os dendritos dos outros neur onios. O pequeno espa co entre o m do bulbo e o dendrito e conhecido como sinapse, que tem como papel fundamental a memoriza c ao da informa c ao.

Victoria Y. Matsunaga

Dentritos

Nucleo

^ Axonio

Terminais ^ do-Axonio

Soma.ou.corpo

Figura 1.1: Modelo de um neur onio biol ogico.

1.2

Modelo Articial do Neur onio

Basicamente, todos os tipos de redes neurais apresentam a mesma unidade de processamento: um neur onio articial, que simula o comportamento do neur onio biol ogico. Esse neur onio articial possui v arias entradas, que correspondem ` as conex oes sin apticas com outras unidades similares a ele, e uma sa da, cujo valor depende diretamente da somat oria ponderada de todas as sa das dos outros neur onios a esse conectado. O modelo articial de neur onio e mostrado na Figura 1.2, sendo uma generaliza c ao do modelo de McCulloch e Pitts [4, 1]. Esse modelo inclui um sinal adicional bias (b) que favorece ou limita a possibilidade de ativa c ao do neur onio. O processo sin aptico e representado pelos pesos ( ) que amplicam cada um dos sinais recebidos. A chamada fun c ao de ativa c ao (f ) modela a forma como o neur onio responde ao n vel de excita c ao, limitando e denindo a sa da da rede neural. A fun c ao de ativa c ao pode ter diferentes representa c oes. Os tr es tipos b asicos de fun c ao de ativa c ao s ao: limiar, linear e sigm oide. A escolha do tipo varia de acordo com

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 neur onio biol ogico.

o objetivo do projeto [1].

1.3

Arquitetura da Rede Neural

As disposi c oes (arquitetura) de uma rede neural s ao de diversas formas, conforme a necessidade da aplica c ao, estando diretamente ligadas com o algoritmo de aprendizagem usado para treinar a rede. Basicamente, os itens que comp oem a estrutura de uma rede neural s ao, portanto, sujeito a modica c oes, sendo os seguintes [1]: Camadas intermedi arias Quantidade de neur onios Fun c ao de transfer encia Algoritmo de aprendizado A maneira pela qual os neur onios de uma rede neural est ao estruturados est a intimamente 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 tr es tipos de arquiteturas de rede fundamentalmente diferentes, como descritos a seguir.

1.3.1

Redes Alimentadas Adiante com Camada Unica

Em uma rede neural em camadas, os neur onios est ao organizados na forma de camadas (Figura 1.3). O termo camada u nica se refere ` a camada de sa da de n os computacionais (neur onios).

Camadade deEntrada

Camadade deSada dosNeurnios

Figura 1.3: Redes alimentadas adiante com camada u nica.

1.3.2

Redes Alimentadas Diretamente com M ultiplas Camadas

Esse tipo de arquitetura se distingue pela presen ca de uma ou mais camadas ocultas (ou intermedi arias), cujos n os computacionais s ao chamados de neur onios ocultos ou unidades ocultas. A fun c ao dos neur onios ocultos e intervir entre a entrada externa e a sa da da rede de uma maneira u til. 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 m ultiplas camadas.

1.3.3

Redes Recorrentes

Elas se distinguem das redes alimentadas adiante por terem pelo menos um la co de realimenta c ao, com a presen ca ou n ao de neur onios ocultos. A presen ca de la cos de realimenta c ao tem um impacto profundo na capacidade de aprendizagem da rede e no seu desempenho.

1.4

Aprendizado

O aprendizado das redes neurais pode ser na forma supervisionada ou n ao supervisionada. No aprendizado supervisionado, o instrutor confere o quanto a rede est a pr oxima de uma solu c ao aceit avel, adaptando na concep c ao do treinamento os pesos entre os neur onios, de modo a prover uma menor diferen ca entre as sa das desejadas. No aprendizado n ao supervisionado, inicialmente, as sa das da rede n ao s ao conhecidas, funcionando de modo a distinguir classes de padr oes diferentes dos dados apresentados a rede, atrav ` es de algoritmos de aprendizado baseados geralmente em conceitos de vizinhan ca e agrupamento. A rede e ajustada de acordo com regularidades estat sticas dos dados de entrada, de tal forma que ela cria categorias, otimizando em rela c ao aos

Victoria Y. Matsunaga

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

1.5

Regra de Aprendizado por Retropropaga c ao (Backpropagation )

O algoritmo Backpropagation procura achar iterativamente a m nima diferen ca entre 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 atrav es da retropropaga c ao do erro encontrado em cada itera c ao [5, 1]. Essa regra e um dos tipos de treinamento supervisionado, onde a rede e analisada em dois casos: na sua propaga c ao (camada por camada) e principalmente, na sua retropropaga c ao (an alise contr aria ` a propaga c ao), Backpropagation. No primeiro, os pesos sin apticos ji (peso sin aptico conectando a sa da do neur onio i ` a entrada do neur onio j ) da rede s ao todos xos. No segundo, os pesos s ao todos ajustados. Basicamente, um padr ao de entrada e aplicado como um est mulo aos elementos da primeira camada da rede, que e propagado por cada uma das outras camadas at e que a sa da seja gerada a. Ela e ent ao comparada com a sa da desejada ad (gerando um sinal de erro e para cada elemento de sa da). O sinal de erro e ent ao retropropagado da camada de sa da para cada elemento da camada intermedi aria anterior que contribui diretamente para a forma c ao da sa da. Entretanto, cada elemento da camada intermedi aria recebe apenas uma por c ao do sinal de erro total, proporcional apenas ` a contribui c ao relativa de cada elemento na forma c ao da sa da original. Este processo se repete, camada por camada, at e que cada elemento da rede receba um sinal de erro que descreva sua contribui c ao relativa para o erro total. Com base no sinal de erro recebido, os pesos sin apticos s ao ent ao atualizados (de acordo com uma regra de corre c ao de erro) para cada elemento de modo a fazer a rede

Victoria Y. Matsunaga

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

. . . .
pR
Camadadeentrada

. . . .

. . . .

Neurnioj
a

. . . .

. . . .

Camadasintermedirias

Camadadesada

Figura 1.5: Ilustra c ao do algoritmo Backpropagation.

10

Victoria Y. Matsunaga

Cap tulo 2 MATLAB


O MATLAB (Matrix Laboratory ), software desenvolvido pela The MathWorks, Inc, e um sistema interativo e uma linguagem de programa c ao baseados numa matriz, onde as solu c oes e problemas s ao expressos em linguagem matem atica. Atrav es da utiliza c ao do MATLAB e poss vel realizar an alise num erica, opera c oes com matrizes, constru c ao de gr acos e cria c ao de interfaces com o usu ario. Uma das principais vantagens do software e a facilidade de escrever e depurar um programa, se comparado a outras linguagens de programa c ao (tais como C, Basic, Pascal ou Fortran). Al em disso, possui diversas fun c oes matem aticas, matriciais e gr acas que simplicam e minimizam a estrutura do programa. O MATLAB tamb em disp oe de diversas bibliotecas ou ferramentas (toolboxes ) para aplica c oes espec cas, como por exemplo, Redes Neurais, L ogica Fuzzy, Otimiza c ao de Sistemas, Wavelets, C alculo Simb olico, Processamento de Sinais e outras. O software possui vers oes para diferentes ambientes operacionais: Windows, Linux, UNIX, Macintosh. O toolbox abordado neste curso ser a o de Redes Neurais, onde a vers ao do MATLAB e para ambiente Windows. A utiliza c ao do toolbox de redes neurais no MATLAB pode ser atrav es de interface gr aca (NNTool), linhas de comando ou arquivo .m. Nas subsequentes se c oes ser ao descritas esses modos de utiliza c ao. 11

2.1

Interface Gr aca NNTool

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

Figura 2.1: NNTool.

Os padr oes (dados de entrada e de sa da) e a arquitetura da rede s ao denidos de acordo com a Figura 2.2 poss E vel visualizar a rede neural pressionando o bot ao View como mostra a Figura 2.3. Ap os a cria c ao da rede, passamos para a fase de treinamento (Figura 2.4). Nesta etapa, determinamos cada par ametro de treinamento, tais como dados de valida c ao e teste, n umero de epocas, valores dos pesos ou bias, etc. Para iniciar o processo de treinamento pressiona-se o bot ao Train Network.

12

Victoria Y. Matsunaga

Figura 2.2: Deni c ao dos padr oes e das caracter sticas da rede.

Figura 2.3: Visualiza c ao da rede.

13

Victoria Y. Matsunaga

Figura 2.4: Visualiza c ao da rede.

2.2

Linhas de Comando e arquivos .m para cria c ao de uma rede neural

Uma rede neural tamb em pode ser desenvolvida atrav es de comandos escritos na Janela de Comandos ou no ambiente de edi c ao do MATLAB. Para o entendimento desta se c ao, utilizaremos uma rede do tipo feed-forward (sem realimenta c ao) como exemplo. As etapas para a implementa c ao de uma rede s ao: 1. Deni c ao dos dados de entrada e sa da 2. Inicializa c ao da rede A fun c ao new cria uma rede do tipo Backpropagation.
net = newff ( [min(P) max(P)], [10 10 1], purelin,tansig, tansig, traingd; (limites dos padr oes de entrada - m n. e m ax.) (n umero de neur onios de cada camada) (fun c ao de transfer encia de cada camada) (algoritmo de treinamento)

Os tipos de fun c oes de transfer encia e de algoritmos de aprendizado s ao descritos nas Tabelas 2.1 e 2.2 . 14
Victoria Y. Matsunaga

Tabela 2.1: Fun c oes de transfer encia. Fun c ao purelin tansig logsig satlin Descri c ao Linear Tangente hiperb olica Sigm oide Linear com satura c ao

Tabela 2.2: Algoritmos de aprendizado.

Algoritmo trainlm traingd traingdm traingda traingdx

Descri c ao 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. Deni c ao dos par ametros de treinamento Tabela 2.3: Par ametros de treinamento. Par ametro Descri c ao net.trainP aram.epochs net.trainP aram.goal net.trainP aram.show net.trainP aram.lr net.trainP aram.time N umero m aximo de epocas de treinamento Erro desejado N umero de itera c oes que aparece na tela Taxa de aprendizado Tempo m aximo (segundos) para o treinamento

4. Treinamento da rede

15

Victoria Y. Matsunaga

A fun c ao train e utilizada para treinar a rede de acordo com net.trainFcn e net.trainParam.

net = train(net, P, T)

5. Simula c ao da rede A fun c ao sim e utilizada para simular a rede.


Y = sim(net, P)

Exemplo Dados os padr oes de entrada e sa 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 realimenta c ao. A solu c ao deste exemplo e descrito na Figura 2.5.

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

16

Victoria Y. Matsunaga

A partir desses comandos, uma janela ser a gerada: Neural Network Training (nntraintool) (Figura 2.6), onde os par ametros de treinamento da rede s ao mostrados, tais como n umeros de camadas, algoritmo de treinamento, n umeros de epocas, tempo de simula c ao e outros. Al em disso, e poss vel plotar algumas caracter 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 compara c ao entre a sa da da rede e a sa da desejada e mostrada na Figura 2.8. Observa-se que a sa da desejada (linha cont nua) e muito pr oxima ` a sa da da rede (c rculos), indicando um bom desempenho da rede neural articial. Vale salientar que o desenvolvimento de uma RNA varia de acordo com o problema em quest ao e o objetivo de cada projeto. Se neste exemplo o objetivo fosse obter uma sa da com um erro bem pr oximo de zero, alguns ajustes poderiam ser feitos para melhorar ainda mais esse desempenho.

18

Victoria Y. Matsunaga

Figura 2.8: A compara c ao entre a sa da da rede e a sa da desejada.

19

Victoria Y. Matsunaga

Refer encias Bibliogr acas


[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, Dispon vel 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

Você também pode gostar