• Nenhum resultado encontrado

Redes Neurais Artificiais

3. Função de ativação ϕ( ) Restringe a amplitude de saída de um neurônio, limitando a saída

3.4.2. Redes Modulares

Pode-se definir como Rede Modular, uma rede neural que é decomposta em dois ou mais módulos (subsistemas) e que operam sem comunicação entre si. As saídas dos módulos são mediadas por uma unidade integradora (rede de passagem) que não pode alimentar a informação de volta para os módulos. Além disso, a unidade integradora decide como as saídas dos módulos devem ser combinadas para formar a saída final do sistema e é comum que durante o treinamento ela também decida como os padrões de treinamento sejam divididos entre os módulos (Haykin, 1994, Haykin, 2002).

Apresenta-se na Figura 3.4, a arquitetura de uma rede modular. Pela figura, percebe-se o modo como se conectam a saída de cada módulo com a rede de passagem. Além disso, percebe-se que a rede de passagem utiliza como critério de decisão os dados de entrada, e a partir desses dados ela decide a importância que cada módulo possui na decisão do resultado final apresentado (vetor de saída). Apresenta-se na Equação (3.6) o vetor de saída de uma rede modular.

=

=

K 1 k k k

y

g

z

(3.6) Na Equação (3.6), yk representa o vetor de saída do k-ésimo módulo da rede, gk

representa o peso dado pela rede de passagem ao k-ésimo vetor de saída, z representa o vetor de saída da rede e K representa o número total de módulos da rede.

É importante comentar que o vetor de pesos obtido da rede de passagem, deve sempre satisfazer os parâmetros abaixo. A importância desse critério está intimamente ligada à fração de responsabilidade que cada módulo possui na obtenção do resultado final, de modo que o somatório das frações, para qualquer caso analisado resulte sempre igual a um.

1

0

1

1

=

= k K k k

g

g

A partir do que foi exposto até o presente momento percebe-se a grande vantagem da utilização de redes modulares como aproximadores de função universal, já que a mesma cria, a partir do treinamento da rede, “especialistas” aptos em reconhecerem determinadas

Figura 3.4. Arquitetura Neural de uma Rede Modular.

Devido a esta característica de criar especialistas, as redes modulares possuem a capacidade de generalização e obtenção de resultados de alta precisão (Langari et al., 1996; Chen et al., 1997; Ishikawa, 1995; Ronco et al., 1995). Todo o funcionamento da rede se concentra em “dividir para conquistar” (Haykin, 2002, Ronco et al., 1995), para melhor exemplificar esse fato podemos demonstrar o resultado do treinamento de uma RNA com perceptron de múltiplas camadas para modelar a Equação (3.7), mostrada na Figura 3.5.

( )x

x

f

=

(3.7) Pela Figura 3.5 percebe-se claramente que, a rede perceptron de múltiplas camadas não consegue aproximar o dados de modo satisfatório. Porém se dividirmos a função em duas partes ter-se-á como conjunto de treinamento duas funções lineares que são de fácil aprendizado por qualquer arquitetura de RNA. Utilizando-se, desse modo, dois módulos “especialistas”, um para cada região do gráfico se obterá uma Rede Modular que aproxime de modo bastante satisfatório toda a função apresentada (Jacobs et al., 1991).

Além da vantagem de trabalhar com “especialistas” melhorando a capacidade da rede como um todo. As redes modulares possuem ainda a vantagem de aumentarem a velocidade

de aprendizado e dividir tarefas complexas em tarefas simples. Estas características estão de certo modo relacionadas, pois com a divisão dos conjuntos de dados, simplifica-se a função a ser apresentada à rede, diminuindo conseqüentemente a necessidade de uma grande quantidade de iterações no aprendizado. Vale salientar que esse tipo de arquitetura de rede também foi inspirado no cérebro humano, pois, a partir de estudos neurobiológicos, já se sabe que o cérebro pode ser dividido em regiões que se responsabilizam por cada parte do corpo humano (Jacobs et al., 1991; Ballard, 1986).

Figura 3.5. Função modular e função de aproximação utilizando RNA de perceptron múltiplas camadas (Haykin, 1994).

3.5.T

REINAMENTO DE UMA

R

EDE

N

EURAL

A propriedade que é de importância primordial para uma rede neural é a sua habilidade de “aprender” a partir de regras pré-estabelecidas e melhorar conseguintemente o seu desempenho através dessa aprendizagem. A palavra “aprendizagem” possui múltiplas definições associadas a si, ficando difícil defini-la de modo preciso. Por isso utilizar-se-á a definição desta palavra relacionada ao treinamento de redes neurais adaptada de Mendel e McClaren (Mendel et al., 1970 apud Haykin, 2002).

Aprendizagem é um processo na qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente onde a rede está inserida. O tipo de aprendizagem é determinado pela maneira como a modificação dos parâmetros ocorre.

Desse modo, pode-se dizer que a idéia principal do treinamento de uma rede neural é a modificação gradual dos seus pesos sinápticos, seguindo uma regra de aprendizado que determina a forma como esses pesos serão alterados. O aprendizado é realizado utilizando-se um conjunto de dados de treinamento. Esses valores são apresentados à rede e após uma apresentação completa de todos os exemplos tem-se uma época de aprendizado.

Um conjunto pré-estabelecido de regras bem definidas para a solução de um problema de aprendizagem é denominado de algoritmo de aprendizagem ou algoritmo de treinamento. Conforme é fácil de perceber, não existe somente um tipo de algoritmo de aprendizagem para o projeto de redes neurais. Ao invés disso, tem-se uma grande quantidade de algoritmos que podem ser aplicados aos mais diversos casos, cada qual possuindo vantagens e desvantagens. Basicamente, todos os algoritmos diferem somente na forma como se ajusta os pesos sinápticos dos neurônios dentro da rede. Esse ajuste considera, inclusive, a forma como a Rede Neural se relaciona com o seu ambiente, nesse sentido podem-se classificar as formas de aprendizado ou treinamento da rede em três partes, conforme se mostra a seguir:

- Treinamento supervisionado (aprendizado com um professor): o programador dispõe de um banco de dados de entrada e saída que o mesmo deseja que a rede reproduza. A partir disso, se modifica os pesos sinápticos da rede com o objetivo de diminuir o erro existente entre a saída desejada e a saída obtida na rede.

- Treinamento semi-supervisionado (aprendizado por reforço): o programador possui apenas indicações imprecisas sobre o comportamento final desejado. Por exemplo, o programador indica sobre o sucesso ou insucesso da rede, porém não dá meios para obtenção de uma solução acurada.

- Treinamento não-supervisionado (aprendizado sem um professor): o programador não influi no treinamento da rede e a mesma modifica seus pesos sinápticos utilizando critérios internos pré-estabelecidos. Esse tipo de treinamento é parecido com técnicas de análise de dados empregadas na estatística, como, por exemplo, diferenciar quadrados de triângulos, sem ter exemplos para a demonstração desses dois elementos.

Devido a não utilização desses dois últimos treinamentos nesse trabalho, os mesmos não serão abordados, ficando somente reproduzido aqui o treinamento supervisionado ou aprendizado com um professor.

Documentos relacionados