• Sonuç bulunamadı

BÖLÜM 3: TÜRKĐYE’DEKĐ SĐVĐL TOPLUM KURULUŞLARININ

3.6. Türkiye Odalar ve Borsalar Birliği (TOBB)

Uma rede neural artificial, RNA, pode ser vista como uma “caixa preta” que aplica algum tipo de transformação (geralmente não-linear) a um dado valor de entrada, com o objetivo de obter uma dada resposta (saída).

O primeiro modelo de neurônio, o perceptron, desenvolvido por McCulloch e Pitts em 1943, é uma simplificação do que se sabia a respeito do funcionamento dos neurônios naquela época. As entradas para um certo nodo, z1..zk*, definem um vetor z que representa as características de entrada

(dendritos). Os elementos deste vetor de entrada são ponderados de acordo com pesos conectivos, wij (sinapses), e somados para formar um sinal de

entrada a um nodo de processamento, netj. Se esse sinal ultrapassar um certo

limiar de excitação, θ, o nodo é ativado ou não, através da aplicação de uma função de ativação, fativ(.), o que definirá a saída da nodo, oj. Incluindo uma

entrada adicional, zo, com o valor fixo de 1 e um peso conectivo, wo, com valor

igual a -θ, é possível representar este modelo de nodo da seguinte forma:

(3.16) (3.15) . * 0 ) (net f o z w net j ativ j k i i i j = =

=

A resposta da rede (oi) é comparada com a resposta desejada (di) e

ajuste dos pesos deve ser proporcional ao produto do erro da rede ( ei = di – oi)

pelo valor de entrada, sendo que µ é a taxa de aprendizado da rede. A forma genérica para atualização dos pesos é dada por:

i i i i z t e t w t w ( +1)= ( )+µ ( ) (3.17)

O mais conhecido e mais comumente paradigma de rede neural utilizado é o aprendizado supervisionado com uma rede do tipo “perceptron” multicamadas, com alimentação para frente (“feed forward”) e retropropagação dos erros (“backpropagation”). Nessa rede, cada camada tem uma função específica. A camada de saída recebe os estímulos da camada intermediária e constrói o padrão que será a resposta da rede.

As camadas intermediárias funcionam como extratoras de características.Os pesos são uma codificação de características apresentadas

nos padrões de entrada e permitem que a rede crie sua própria representação [55)].

Durante o treinamento de uma rede com o algoritmo de retropropragação de erros, a rede opera em duas etapas. Primeiramente, um padrão é apresentado à camada de entrada. A atividade resultante flui através da rede, camada por camada, até que a resposta seja produzida pela camada de saída. Na segunda etapa, a saída da rede é comparada com a resposta desejada para este padrão em particular. Se não estiver correta, o erro é calculado e propagado a partir da camada de saída até a camada de entrada, e os pesos das conexões das camadas internas vão sendo corrigidos, conforme o erro é retropropagado, através de um algoritmo de passos decrescentes (regra delta generalizada).

Figura 3.15– Exemplo de rede “perceptron” multicamadas (MLP) [55)]

A correção dos erros é feita através da regra delta generalizada, onde a função custo a ser minimizada é a função do erro (ou da energia), definida pela soma dos erros quadráticos e representada pela equação abaixo:

∑∑

= − = * * * 1 2 * ) ( 2 1 p k i p i p i o d Err (3.18)

onde Err é a medida do erro total, p* é o número de padrões, k* é o número de unidades de saída, di é a i-ésima saída desejada e oi é a i-ésima saída gerada.

Esta equação define o erro total cometido pela rede. A regra delta requer que as funções de ativação utilizadas pelos nodos sejam contínuas e diferenciáveis. O tipo de ativação depende da topologia de rede utilizada e, também, do problema em questão. As funções de ativação mais utilizadas são: sigmóide, tangente hiperbólica e gaussiana. [55),56)]

O procedimento de aprendizado da rede é semelhante ao perceptron, mas a atualização dos erros é feita da seguinte forma:

ij ij p j p j o t w t w ( +1)= ( )+µ.δ * * (3.19)

onde wij(t) representa o peso do nodo i para o nodo j no tempo t, µ é a taxa de

aprendizado ou termo de ganho, e δp*j é um termo de erro para o padrão p* no

nodo j. Para as unidades de saída,

δp*j =fj′(netp*j)(dp*jop*j) (3.20)

e para camadas intermediárias,

= ′

* * * * * * ( ) k j k k p j p j j p f net δ w δ (3.21)

onde, f’(netjp*) é a derivada da função ativação de rede, d p*j e op*j são as saídas

desejada e da rede, respectivamente, e a somatória é feita para todos os k nodos da camada que antecede o nodo j. [57)].

Há garantia de convergência se a superfície de energia for simples. Os valores dos pesos da rede definem a coordenada de um ponto da superfície de erro. O erro produzido pela rede, para cada combinação de valores de pesos, é dado pela altura da superfície naquele ponto. Assim, quanto mais alto o ponto, maior é o erro produzido pela rede (Figura 3.16).

Figura 3.16 – Superfície de erro para rede MLP [55)]

Uma das maiores vantagens da rede neural é sua capacidade de generalizar, o que significa que uma rede treinada é capaz de classificar um padrão nunca antes visto pela rede, desde que seja da mesma classe que os dados de treinamento [58)]. Uma das formas de se conseguir a generalização da rede é dividindo os dados de treinamento em três conjuntos:

• conjunto de treinamento: usado para treinar a rede, este conjunto de dados tem seu erro minimizado durante o treinamento;

• conjunto de validação: determina o desempenho da rede através de padrões que não são treinados durante o aprendizado;

• conjunto de teste: testa o desempenho final da rede.

A validação da rede neural é especialmente problemática quanto se trabalha com um grupo reduzido de dados, pois a decisão de como melhor utilizar esses dados para a construção e validação do modelo é bastante crítica. Vários métodos de re-amostragem têm sido desenvolvidos, sendo importantes por dois aspectos. Primeiro por utilizar todos os dados para construção e validação do modelo e, segundo, por serem técnicas não- paramétricas e não dependerem de hipóteses probabilísticas.

Dentre estas técnicas de re-amostragem está a validação cruzada em grupo (“Grouped Cross Validation”). Nesta técnica, os dados disponíveis são divididos em k’ grupos. Um total de k’ modelos são construídos, cada um utilizando k’-1grupo de dados para o modelo de construção e um grupo é separado para a validação do késimo modelo. O modelo final que é usado para a aplicação é construído utilizando-se todos os dados disponíveis. O erro verdadeiro da rede é estimado usando a média dos erros do conjunto de teste dos k’ modelos de validação cruzada em grupo. Este método usa todos os dados disponíveis tanto para construção quanto para validação, mas requer a construção de k’+1 modelos, isto é, o treinamento de k’+1 redes neurais [59)]

O conjunto de padrões de treinamento é apresentado à rede diversas vezes, até que a relação entrada-saída seja aprendida, ou seja, até que seja encontrada a melhor combinação de pesos para representar o modelo entrada/ saída. Uma vez atingido um erro em um nível aceitável, os pesos conectivos são fixados e a rede neural será capaz de avaliar corretamente os padrões treinados e, também, interpolar entre esses padrões [60)].

O erro do treinamento é sobreposto ao erro de validação, sendo que a validação é feita após um dado número de ciclos ou épocas de treinamento (um ciclo é uma passada completa por todos os dados de treinamento). O treinamento deve ser interrompido quando o erro de validação é mínimo, pois é neste ponto que ocorre a melhor generalização da rede. Quando o treinamento não é interrompido, ocorre a memorização da rede (“overtraining”), exibindo alta variância e reduzindo seu desempenho no modelamento do conjunto completo dos dados, apesar de diminuir o erro de treinamento. Após o treinamento, o erro verdadeiro da rede, que representa o erro da população inteira de dados, pode ser calculado a partir do conjunto de teste. É a partir deste erro que uma determinada rede é selecionada para representar uma aplicação [57),59)].

A arquitetura correta para uma rede é altamente dependente do problema, uma função da diversidade dos dados de treinamento e da complexidade da função subtendida. A complexidade de uma rede é tipicamente medida em termos do número de pesos ajustáveis. Para uma rede

multicamadas com alimentação para frente e função de ativação linear, o número de vetores de treinamento, vet, necessários para uma dada dimensão de rede (número de pesos), dim, e erro de generalização, eG, é da ordem de (

onde O(.) representa “da ordem de”):

      ≥ G e O vet dim (3.22)

Esta estimativa também pode ser aplicada para funções de ativação não-lineares, como a sigmóide. Esta equação pode ser considerada como a estimativa teórica do pior caso e assumem que o dado espaço do problema está uniformemente povoado. Na prática, isto nem sempre ocorre e há vários exemplos de redes de sucesso treinadas com apenas uma fração deste número de dados de treinamento teórico [54)] . Há uma série de heurísticas propostas, mas, infelizmente, nem sempre funcionam bem para todos os problemas. Portanto, o método mais comum em determinar o número de camadas intermediárias e o número de nodos nestas camadas é através da tentativa e erro [61)]

Há vários fatores críticos na formulação e treinamento de uma rede neural, como número de nodos nas camadas de entrada e de saída; número de camadas intermediárias e número de nodos nestas camadas; tamanho e composição do conjunto de dados de treinamento, tamanho e composição do conjunto de dados para validação da rede, os parâmetros de treinamento da rede, tipo de algoritmo da retropropragação de erros mais adequado para o sistema, tipo de função ativação dos nodos das camadas; estratégia de treinamento e validação, definição do tipo de erro, definição do critério de parada de treinamento da rede, entre outros.

As redes neurais têm habilidade de formar modelos baseados apenas em dados experimentais. Para garantir confiabilidade da rede, é necessário que o modelo seja construído e validado com dados experimentais que representem o domínio do processo adequadamente e precisamente [54),62)]. A informação contida no conjunto de dados deve ser maximizada, o que significa que dados não-redundantes e relevantes ao processo de predição irão

fornecer a maioria das informações adicionais. O planejamento de experimentos pode ser utilizado para escolher os dados que serão mais importantes do ponto de vista teórico [54)].

Ao contrário das relações físicas ou modelos baseados no conhecimento, nas redes neurais, não é possível interpretar os componentes da rede, como os pesos conectivos, como é feito com os coeficientes dos modelos de regressão. O entendimento do processo deve ser obtido, então, por outras técnicas. Entretanto, as redes neurais podem ser usadas para simular processos e obter entendimentos intuitivos através da operação em um ambiente virtual, ou seja, fazendo simulações de mudanças no processo e verificando os efeitos preditos [62)].