• Sonuç bulunamadı

A aplica¸c˜ao utilizada neste trabalho trata do problema do treinamento de perceptrons de m´ultiplas camadas usando retropropaga¸c˜ao do erro e processamento paralelo, desen- volvida em [ALV02]. A escolha se deveu ao fato de j´a se encontrar bem estabelecido na literatura o grande potencial de aplica¸c˜ao desse tipo de rede neural como classificador de padr˜oes ou como interpolador universal.

Como o conhecimento da rede encontra-se armazenado em seus ganhos sin´apticos, sua aplicabilidade a problemas complexos exige topologias cada vez mais densas, seja em n´umero de camadas ocultas, seja no n´umero de neurˆonios por camada. Esse aumento

de complexidade implica em processos de treinamento muito lentos do ponto de vista computacional.

Uma abordagem utilizada ´e o emprego de t´ecnicas de processamento paralelo para acelerar o treinamento da rede. Dentre os diferentes procedimentos, foram escolhidos dois algoritmos paralelos: um baseado na explora¸c˜ao do paralelismo por decomposi¸c˜ao do conjunto de padr˜oes de treinamento e outro que faz uso de t´ecnicas paralelas e competitivas para a resolu¸c˜ao do problema.

A paraleliza¸c˜ao por decomposi¸c˜ao do conjunto de treinamento consiste em dividir o conjunto de amostras que ser´a apresentado `a rede em v´arios subconjuntos, de preferˆencia do mesmo tamanho. Cada subconjunto de treinamento ´e utilizado ent˜ao para o treina- mento de uma c´opia da rede. Todas as redes s˜ao inicializadas com a mesma matriz de ganhos sin´apticos. Assim sendo, cada tarefa paralela ´e constitu´ıda de uma estrutura de dados composta por um subconjunto dos padr˜oes de treinamento e de uma c´opia da rede a ser treinada.

Inicialmente, ´e realizado em cada tarefa o processamento referente `as etapas de com- puta¸c˜ao para frente e computa¸c˜ao para tr´as do algoritmo da retropropaga¸c˜ao e, ao final, cada uma delas tem em m˜aos as varia¸c˜oes acumuladas dos ganhos sin´apticos associadas ao seu subconjunto de treinamento. Cada tarefa envia ent˜ao as varia¸c˜oes acumuladas para uma tarefa coordenadora e esta faz a atualiza¸c˜ao da matriz global de varia¸c˜oes de ganhos. Esta matriz global ´e transmitida de volta para cada uma das tarefas e ´e iniciada uma nova itera¸c˜ao do processo de atualiza¸c˜ao local dos ganhos, onde cada tarefa toma como base a nova matriz de pondera¸c˜ao de ganhos. Este processo ´e repetido at´e que seja atingindo um valor pr´e determinado. O grafo que representa uma itera¸c˜ao do algoritmo paralelo descrito acima ´e mostrado na Figura 5.1.

Pode-se observar que este algoritmo tem uma estrutura do tipo fork-and-join, ou seja, expans˜ao-e-contra¸c˜ao. Na expans˜ao, s˜ao executadas um grande n´umero de tarefas (no caso da Figura 5.1, N tarefas), enquanto na contra¸c˜ao, apenas uma. Isto imp˜oe um perfil de comunica¸c˜ao do tipo todos-para-um (transi¸c˜ao da expans˜ao para a contra¸c˜ao) e um- para-todos (transi¸c˜ao da contra¸c˜ao para a expans˜ao). Por se tratarem de comunica¸c˜oes globais (envolvem um n´umero elevado de tarefas), s˜ao elementos de perda de eficiˆencia do algoritmo (baixo ´ındice de localidade).

T1 T2 Ti

Ti

TN

Ti

T1 T2 TN

Figura 5.1: Algoritmo paralelo de treinamento por decomposi¸c˜ao do conjunto de padr˜oes

O outro algoritmo baseia-se em uma vis˜ao paralela do problema, conforme descrito a seguir:

• Cada tarefa utiliza uma c´opia da rede a ser treinada e matrizes de ganhos sin´apticos

pr´oprias;

• O conjunto de padr˜oes de treinamento ´e apresentado em sua totalidade a cada uma

das c´opias da rede.

• Ap´os um n´umero pr´e-determinado de itera¸c˜oes, as tarefas trocam informa¸c˜oes sobre

o andamento de seus processos de aprendizagem, tomando decis˜oes sobre a conti- nuidade dos mesmos;

• A estrutura de comunica¸c˜ao ´e simplificada, evitando comunica¸c˜oes do tipo todos-

para-um e um-para-todos.

A utiliza¸c˜ao de m´ultiplas inicializa¸c˜oes das matrizes de ganhos sin´apticos permite que cada tarefa explore regi˜oes diferentes do espa¸co de busca, objetivando cobrir a maior ´area poss´ıvel do espa¸co de parˆametros da superf´ıcie do erro. Isto, na pr´atica, acelera a con- vergˆencia, pois inicializando as matrizes de ganhos sin´apticos em pontos diferentes podem ser geradas nas tarefas trajet´orias diferentes em busca dos m´ınimos do problema. A cada itera¸c˜ao do algoritmo de retropropaga¸c˜ao, as matrizes s˜ao atualizadas localmente segundo o m´etodo do gradiente. Al´em disso, ap´os um n´umero pr´e-determinado de itera¸c˜oes, as tarefas trocam informa¸c˜oes sobre as trajet´orias exploradas por cada uma delas e tomam decis˜oes sobre o caminho a seguir. Dentro da caracter´ıstica fundamental do algoritmo que

´e a explora¸c˜ao de trajet´orias diferentes por cada tarefa, ap´os a tomada de decis˜ao, cada uma delas deve continuar o aprendizado com matrizes de ganhos pr´oprias. Dois aspectos devem ser considerados no novo algoritmo:

• a defini¸c˜ao do n´umero de itera¸c˜oes ap´os as quais as tarefas trocam informa¸c˜oes; • as regras de decis˜ao para a altera¸c˜ao das matrizes de ganhos sin´apticos. Para uma

discuss˜ao detalhada dessas quest˜oes, consultar [ALV02].

Um aspecto importante a ser observado ´e que o processo de tomada de decis˜ao pode ser feito localmente por cada tarefa. Entretanto, para que isso seja poss´ıvel, todas devem ter conhecimento de todos os conjuntos de ganhos sin´apticos obtidos por cada uma das tarefas individualmente. Isso define a estrutura de comunica¸c˜ao do algoritmo. Para isso poder- se-ia usar comunica¸c˜oes do tipo todos-para-todos, mas estas s˜ao bastantes onerosas do ponto de vista do tempo de execu¸c˜ao do algoritmo. Optou-se portanto pela comunica¸c˜ao de forma iterativa sobre um anel (ring), como mostrado na Figura 5.2

Figura 5.2: Comunica¸c˜ao em anel entre as tarefas do algoritmo paralelo competitivo

Na primeira itera¸c˜ao do processo de comunica¸c˜ao, cada tarefa calcula e armazena o erro referente `a sua parti¸c˜ao de dados e seu conjunto de ganhos sin´apticos, transmitindo posteriormente o conjunto de ganhos e o valor do erro para a tarefa vizinha, no sentido de percurso do anel. Na segunda itera¸c˜ao, cada tarefa calcula o erro referente ao conjunto de treinamento recebido, armazena esse valor e transmite o conjunto de ganhos e todos os erros armazenados e recebidos na itera¸c˜ao anterior. As outras itera¸c˜oes sobre o anel procedem da mesma forma at´e que todos os conjuntos de ganhos sin´apticos tenham sido enviados/recebidos.

Benzer Belgeler