• Nenhum resultado encontrado

aprendizado que utiliza o m´etodo do gradiente descendente de minimiza¸c˜ao. Essa regra ficou conhecida como regra Delta ou Widrow-Hoff e ´e tamb´em bastante utilizada atualmente [38,41,42].

Em 1958, Rosenblatt demonstrou a rede neural perceptron que apresentavam sinapses ajus- t´aveis que podiam ser treinadas para reconhecimento de certos tipos de padr˜oes. Rosenblatt descreveu uma topologia de RNA, estruturas de liga¸c˜oes entre os neurˆonios e, o mais importante, propˆos um algoritmo para treinar a rede para executar determinados tipos de fun¸c˜oes. A rede descrita por Rosenblatt possui 3 camadas, uma camada que recebe os dados de entrada, uma camada intermedi´aria com pesos ajust´aveis e uma camada de sa´ıda de dados. A rede perceptron ´

e capaz de atuar como um classificador de padr˜oes [38, 42].

Apesar do grande interesse inicial pelo estudo das RNAs, na d´ecada de 1970, esse interesse diminuiu drasticamente. Isso aconteceu devido ao trabalho de Minsky e Papert em 1969. Eles mostraram que as redes perceptron n˜ao eram capaz de realizar tarefas consideradas simples. Por exemplo, as redes perceptron n˜ao eram capazes de detectar paridade, conectividade e simetria, que s˜ao problemas n˜ao-linearmente separ´aveis. A cr´ıtica de Minsky e Papert residia no fato do problema do crescimento explosivo, tanto de espa¸co ocupado como do tempo requerido para a solu¸c˜ao de problemas complexos. Al´em disso, eles argumentaram que n˜ao existia um algoritmo que garantisse convergˆencia para redes perceptron com mais de uma camada. Atualmente, os argumentos de Minsk e Papert podem ser vistos como bastante pessimistas j´a que hoje as redes neurais s˜ao capazes de resolver problemas n˜ao-linearmente separ´aveis e n˜ao sofrem do problema do crescimento explosivo [42].

O campo das redes neurais se tornou novamente de interesse dos pesquisados a partir da d´ecada de 1980. Em 1982, Hopfield publicou um artigo que chamou a aten¸c˜ao para as propriedades associativas das RNAs. Hopfield mostrou a rela¸c˜ao entre redes recorrentes auto- associativas e sistemas f´ısicos. Anos mais tarde pesquisadores desenvolveram o algoritmo de treinamento back-propagation, retro-propaga¸c˜ao. O que mostrou que as ideias de Minsk e Papert eram na realidade muito pessimista e que redes neurais podem aprender at´e mesmo problemas considerados complexos. O que tamb´em ajudou no ressurgimento do interesse nas redes neurais foi o desenvolvimento de computadores mais potentes [38, 42].

Atualmente, diversos pesquisadores continuam interessados em desenvolver trabalhos rela- cionados as redes neurais. O foco atual ´e o desenvolvimento de t´ecnicas de aprendizagem que convirjam mais r´apido [42]. Al´em disso, tamb´em h´a a tentativa de implementar as redes neurais diretamente no n´ıvel de hardware [42]. N˜ao obstante, existe a tentativa de solucionar diversos problemas atuais pela utiliza¸c˜ao desse tipo de rede. Portanto, as redes neurais continuam sendo uma ´area promissora para pesquisa e desenvolvimento de novas tecnologias.

3.3

Fundamentos

3.3.1

Um framework para representa¸c˜ao distribu´ıda

Uma rede neural artificial consiste de um conjunto de unidades de processamento simples que se comunicam enviando sinais entre si por um grande n´umero de conex˜oes ponderadas [7].

ˆ Um conjunto de unidades de processamento ou n´os, neurˆonios ou c´elulas;

ˆ Um estado de ativa¸c˜ao yk para cada unidade, que ´e equivalente a sa´ıda da unidade; ˆ Conex˜oes entre as unidades. Geralmente cada conex˜ao ´e definida por um peso wjk que

determina o efeito do sinal;

ˆ Uma regra de propaga¸c˜ao, que determina a entrada efetiva sk de uma unidade em rela¸c˜ao `

as v´arias entradas externas;

ˆ Uma fun¸c˜ao de ativa¸c˜ao, tamb´em chamada de fun¸c˜ao de transferˆencia, Fk, que determina o novo n´ıvel de ativa¸c˜ao baseado na entrada efetiva e na ativa¸c˜ao atual;

ˆ Uma entrada externa, chamada de bias ou offset, θk, para cada unidade; ˆ Um m´etodo para reunir informa¸c˜ao, a regra de treinamento;

ˆ Um ambiente dentro do qual o sistema precisa operar, provendo sinais de entrada e sinais de erro.

A Figura 3.2 ilustra os aspectos discutidos acima em uma RNA.

Figura 3.2: Componentes de uma Rede Neural Artificial, adaptado de [7].

3.3.2

N´os de processamento

Cada n´o realiza um trabalho simples: receber uma entrada de seus vizinhos ou de uma fonte externa e us´a-la para calcular um sinal de sa´ıda que ir´a se propagar para outras unidades. Uma segunda tarefa ´e o ajuste de pesos. O sistema ´e inerentemente paralelo, porque muitos n´os podem operar ao mesmo tempo [7].

Faz-se necess´ario distinguir trˆes tipos de n´os: n´os de entradas, que recebem dados de fora da rede, n´os de sa´ıda que enviam dados para fora da rede e n´os escondidos cujas entradas e sa´ıdas permanecem dentro da rede. [7].

Durante a opera¸c˜ao da rede, os n´os podem ser atualizados de forma sincronizada ou n˜ao sincronizada. Na atualiza¸c˜ao sincronizada todos os n´os atualizam suas ativa¸c˜oes de forma

3.3. Fundamentos 25

simultˆanea. Na atualiza¸c˜ao n˜ao sincronizada, cada n´o tem uma probabilidade de atualizar sua ativa¸c˜ao durante um certo tempo, geralmente apenas um n´o ser´a capaz de consegui isso durante esse tempo [7].

3.3.3

Conex˜oes entre n´os

Na maioria dos casos assume-se que cada n´o provˆe uma contribui¸c˜ao positiva a entrada do n´o conectado a ele. A entrada total do n´o k ´e simplesmente a soma ponderada das sa´ıdas de cada n´o conectado mais o bias ou offset θk [7]:

sk(t) = X

j

wjk(t)yj(t) + θk(t). (3.1)

Uma contribui¸c˜ao positiva de wjk ´e considerada uma excita¸c˜ao e uma contribui¸c˜ao negativa de wjk ´e considerada uma inibi¸c˜ao. Em alguns casos mais complexos, regras para combinar entradas s˜ao usadas fazendo-se uma distin¸c˜ao entre entradas excitat´orias e inibit´orias. Os n´os que utilizam a regra de propaga¸c˜ao 3.1 s˜ao chamados de n´os sigma [7].

Existe uma regra diferente de propaga¸c˜ao, chamada de sigma-pi:

sk(t) = X j wjk(t) Y m yjm(t) + θk(t). (3.2)

Geralmente, os yjm s˜ao ponderados antes da multiplica¸c˜ao [7].

3.3.4

Ativa¸c˜ao e regras de sa´ıda

Faz-se necess´ario, a utiliza¸c˜ao de uma regra que determine o efeito da entrada total na ativa¸c˜ao do n´o. ´E necess´ario, uma fun¸c˜ao Fk que tome a entrada total sk(t) e a ativa¸c˜ao atual yk(t) e produza um novo valor de ativa¸c˜ao para o n´o k [7]:

yk(t + 1) = Fk(yk(t), sk(t)). (3.3) Geralmente, a fun¸c˜ao de ativa¸c˜ao ´e uma fun¸c˜ao n˜ao-decrescente da entrada total da unidade:

yk(t + 1) = Fk(sk(t)) = Fk(sk(t)) = Fk( X

j

wjk(t)yj(t) + θk(t)), (3.4)

embora uma fun¸c˜ao de ativa¸c˜ao n˜ao seja restrita a fun¸c˜oes n˜ao-decrescentes. Alguns exemplos de fun¸c˜oes de ativa¸c˜oes usadas em redes neurais s˜ao mostradas na Figura 3.3. A fun¸c˜ao sigmoide ´

e um tipo comum de fun¸c˜ao de ativa¸c˜ao usada em redes neurais:

yk= F (sk) = 1

1 + e−sk. (3.5)

Em algumas aplica¸c˜oes a tangente hiperb´olica ´e utilizada, produzindo valores de sa´ıda entre -1 e +1 [7].

Figura 3.3: Exemplos de fun¸c˜oes de ativa¸c˜ao: (a) fun¸c˜ao sgn, (b) fun¸c˜ao semi-linear, (c) fun¸c˜ao sigmoide. Adaptado de [7].

Em alguns casos, a sa´ıda do n´o pode ser uma fun¸c˜ao estoc´astica da entrada total do n´o. Nesse caso, a ativa¸c˜ao n˜ao ´e determinada de forma determ´ıstica pela entrada do neurˆonio, mas a entrada do n´o determina a probabilidade p do neurˆonio atingir um valor alto de excita¸c˜ao:

p(yk ← 1) = 1 1 + e−skT

, (3.6)

onde T ´e um parˆametro que determina a inclina¸c˜ao da fun¸c˜ao de probabilidade [7].

3.3.5

Topologias de redes

A topologia de uma RNA est´a associada com seu padr˜ao de conex˜oes entre os n´os e a propaga¸c˜ao dos dados. Existem dois tipos principais de topologia [7]:

ˆ Redes feed-forward, onde o fluxo de dados dos n´os de entrada para os n´os de sa´ıda ´e estritamente direto. O processamento de dados pode se estender a v´arias camadas de n´os, mas nenhuma conex˜ao de realimenta¸c˜ao est´a presente.

ˆ Redes recorrentes que cont´em conex˜oes de realimenta¸c˜ao. Ao contr´ario das redes do tipo feed-forward, as propriedades dinˆamicas desta rede s˜ao importantes. Em alguns casos, os valores de ativa¸c˜ao dos n´os sofrem um processo de relaxa¸c˜ao tal que a rede evolui para um estado est´avel em que n˜ao h´a mais varia¸c˜oes nas ativa¸c˜oes.

3.3.6

Treinamento de redes neurais artificiais

Uma rede neural precisa ser configurada para que a aplica¸c˜ao de um conjunto de entradas produza um conjunto de sa´ıdas desejadas. Existem v´arios m´etodos para configurar o peso das conex˜oes. Uma maneira ´e configurar os pesos explicitamente, usando conhecimentos a priori. Outra maneira ´e treinar e ensinar padr˜oes `a rede deixando que os pesos mudem de acordo com uma regra de treinamento.

Paradigmas de aprendizagem

Existem dois tipos de aprendizagem [7]:

ˆ Aprendizagem supervisionada na qual a rede ´e treinada utilizando-se entradas e padr˜oes de sa´ıda fornecidos. Os pares de entrada e sa´ıda podem ser fornecidos por uma fonte externa, ou pelo sistema que cont´em a rede.