• Nenhum resultado encontrado

As redes neurais artificiais são definidas como sistemas paralelamente distribuídos consti- tuídos por unidades de processamento simples, chamadas de neurônios artificiais, que são responsáveis por calcular funções matemáticas específicas e não lineares, de forma geral (BRAGA; CARVALHO; LUDERMIR,2007).

A semelhança entre uma rede neural artificial e uma rede neural biológica é atribuída à configuração e ao funcionamento. Em relação à configuração, tanto as redes neurais artificiais quanto as biológicas são conjuntos compostos por unidades de computação paralela e distribuída que se comunicam por meio de conexões sinápticas. Já em relação ao funcionamento, as redes neurais artificiais adquirem conhecimento a partir de seu ambiente externo e armazenam o conhecimento através das forças de conexão entre os neurônios, de maneira análoga às redes neurais biológicas (BRAGA; CARVALHO; LUDERMIR,2007). O processo de treinamento de uma rede neural artificial possibilita a obtenção e a memori- zação de informação por meio de um ajuste iterativo dos pesos sinápticos para atingir o objetivo da rede. Esse é o método tradicional utilizado no projeto de redes neurais artificiais, embora também seja possível que a rede modifique sua própria configuração (BRAGA; CARVALHO; LUDERMIR,2007).

Um critério de parada utilizado no processo de treinamento de redes neurais artificiais consiste na validação cruzada, na qual o conjunto de dados é dividido em três subconjuntos denominados como treinamento, validação e teste. Geralmente, o subconjunto de treina- mento contém 60% dos dados e é responsável pelo cálculo dos gradientes, pesos e bias. Já o subconjunto de validação detém 20% dos dados e monitora o erro sobre o mesmo. Os últimos 20% dos dados estão contidos no subconjunto de teste, onde há comparação entre diferentes modelos de redes. O ponto de parada ótimo é determinado pelo mínimo da

curva de validação contida em um gráfico do erro médio quadrático em função do número de épocas (SILVA,2014).

As redes neurais são aplicadas em campos interdisciplinares, como processamento de sinais, controle e automação, reconhecimento de padrões, diagnósticos em medicina, mercado financeiro, entre outros (FAUSETT,1994).

3.2

Características

3.2.1

Modelo de um neurônio

O neurônio é uma unidade de processamento de informação indispensável ao funciona- mento de uma rede neural (HAYKIN,1999). Em um modelo de neurônio, mostrado na Figura

3.1, observa-se a presença de três elementos fundamentais para o mesmo.

O primeiro elemento é o peso sináptico, o qual determina o peso ou a força de um conjunto de sinapses. A notação wkj simboliza o peso sináptico em relação ao neurônio k da sinapse

j cujo sinal de entrada corresponde a xj. O peso sináptico de um neurônio artificial pode

assumir valores positivos e negativos, em contrapartida das sinapses no cérebro. Outro elemento observado é um combinador linear, que soma os sinais de entrada ponderados pelas respectivas sinapses do neurônio. O último elemento é a função de ativação ou função restritiva, responsável por restringir a amplitude do sinal de saída de um neurônio. Geralmente, normaliza-se a amplitude de saída de um neurônio como um intervalo fechado [0,1] ou [-1,1] (HAYKIN,1999).

Além dos elementos descritos anteriormente, também há um bias aplicado externamente, denotado por bk. A função do bias bkou coeficiente de polarização é aumentar ou reduzir

a interferência da função de ativação no sinal de saída do neurônio k. Se o coeficiente de polarização é positivo, a entrada líquida da função de ativação é maior do que no caso contrário (HAYKIN,1999).

Um neurônio k pode ser descrito matematicamente de acordo com as Equações (9) e (10), sendo xj os sinais de entrada, wkj os pesos sinápticos do neurônio k, uk a saída do

combinador linear, bko coeficiente de polarização, ϕ(.) a função de ativação e yk a saída

do neurônio. uk= m X j=1 wkj ∗ xj (9) yk = ϕ(uk+ bk) (10)

Figura 3.1 – Modelo não linear de um neurônio.

Fonte: (HAYKIN,2000).

1999).

vk= uk+ bk (11)

Conforme o sinal do coeficiente de polarização, a relação entre o campo local induzido vke a

saída do combinador linear uké alterada da forma mostrada na Figura 3.2. A consequência

do uso do bias é aplicar uma transformação afim à saída ukdo combinador linear (HAYKIN,

1999).

Na equação anterior, é possível notar que vk= bkquando uk = 0. Incorporando o bias no

modelo apresentado, as Equações9e10podem ser reescritas pelas Equações (12) e (13). vk= m X j=0 wkj∗ xj (12) yk = ϕ(vk) (13)

Há uma nova sinapse na Equação (12), cuja entrada é x0 = +1 e seu peso é wk0 = bk.

Assim, é possível construir outro modelo do neurônio k (Figura3.3) visualmente diferente do modelo da Figura 3.1, porém matematicamente equivalente. A diferença consiste na presença de um novo sinal de entrada fixo em +1 e de um novo peso sináptico igual ao coeficiente de polarização (HAYKIN,1999).

3.2.2

Funções de ativação

A saída de um neurônio relacionada ao campo local induzido v é definida pela função de ativação, ϕ(v). Dentre as funções de ativação existentes, as três mais usuais são: a função de limiar, a função linear por partes e a função sigmoide.

Figura 3.2 – Transformação afim gerada por um bias.

Fonte: (HAYKIN,2000).

Figura 3.3 – Modelo não linear de um neurônio considerando o bias desde os sinais de entrada.

A função de limiar é descrita pela Equação (14), em que θ é o limiar, threshold, da função de ativação e seu gráfico é ilustrado na Figura 3.4(FAUSETT,1994).

ϕ(v) = (

1 se v ≥ θ

0 se v < θ (14)

Figura 3.4 – Função de limiar com θ = 0.

Fonte: (HAYKIN,1999).

O segundo tipo de função de ativação é a função linear por partes, definida pela Equação (15) e mostrada na Figura3.5. Nela, considera-se que o valor de amplificação na região linear é um (HAYKIN,1999). ϕ(v) =      1, v ≥ +12 v, +12 > v > −12 0, v ≤ −12 (15)

Figura 3.5 – Função linear por partes.

Fonte: (HAYKIN,1999).

O terceiro tipo de função de ativação, função sigmoide, é o tipo mais usado na elaboração de redes neurais artificiais. Seu gráfico possui o formato de um s como pode ser visto na Figura 3.6. Essa função apresenta um equilíbrio entre os comportamentos linear e não linear, além de ser definida como estritamente crescente.

A função logística, exibida pela Equação (16), é um exemplo de função sigmóide. A função de ativação sigmoide logística é utilizada quando os valores de saída desejados são binários

Figura 3.6 – Função sigmoide.

Fonte: (HAYKIN,2000).

ou estão contidos no intervalo contínuo entre 0 e 1 (FAUSETT,1994).

ϕ(v) = 1

1 + exp(−av) (16)

Nessa função, a é um parâmetro que descreve a inclinação. Com a variação deste parâmetro, obtém-se funções sigmóides com diferentes inclinações mostradas na Figura 3.6.

Quando os valores de saída estão contidos em um intervalo entre -1 e 1, utiliza-se a função sigmoide bipolar, descrita pela Equação (17) (FAUSETT,1994).

ϕ(v) = 1 − exp(−av)

1 + exp(−av) (17)

A função tangente hiperbólica, expressa pela Equação (18), corresponde à função sigmoide bipolar. Essa extensão a valores negativos traz benefícios analíticos (FAUSETT,1994).

ϕ(v) = tanh(v) (18)

3.3

Arquitetura Multicamada

Uma rede neural com arquitetura multicamada difere da rede de uma única camada pela presença de uma ou mais camadas ocultas, cujos nós são denominados como neurônios ocultos ou unidades ocultas. Os neurônios ocultos são responsáveis pela intervenção entre a entrada externa e a saída da rede. Assim como na rede monocamada, é possível configurar a arquitetura da rede multicamada ao determinar o número de camadas ocultas e quantidade de neurônios em cada uma. Devido ao conjunto extra de conexões sinápticas e da dimensão extra de interações neurais, a rede assume um comportamento global, embora sua conectividade seja local (HAYKIN,1999).

Os elementos do padrão de ativação ou vetor de entrada são obtidos dos respectivos nós de fonte da camada de entrada e transmitidos como sinais de entrada aos neurônios

da segunda camada, a primeira camada oculta. Os sinais de saída da segunda camada são aplicados como os sinais de entrada da terceira camada e assim sucessivamente. Geralmente, os sinais de entrada dos neurônios em uma determinada camada são apenas os sinais de saída da camada anterior. A reposta global da rede para o padrão de ativação fornecido pelos nós de fonte da camada de entrada é o conjunto de sinais de saída dos neurônios da última camada. A Figura3.7mostra o grafo de uma rede neural com múltiplas camadas alimentada adiante com uma camada oculta. A rede dessa figura é mencionada como uma rede 10-4-2, pois possui 10 nós de fonte, 4 neurônios ocultos e 2 neurônios de saída. Além disso, a rede da Figura 3.7 é totalmente conectada, porque cada nó de uma camada da rede está conectado a todos os nós da camada seguinte. Porém, se faltar alguma conexão sináptica na rede, a mesma é classificada como parcialmente conectada (HAYKIN,1999).

Figura 3.7 – Grafo de uma rede neural com arquitetura multicamada alimentada adiante com uma camada oculta.

Fonte: (HAYKIN,2000).

É possível constatar três características distintas em um perceptron - modelo de RNA com adição de uma regra de treinamento proposto por Rosenblatt - de múltiplas camadas, correspondentes à função de ativação, aos neurônios ocultos e ao alto grau de conectividade. A função de ativação de cada neurônio é não linear e diferenciável em contraponto da limitação abrupta empregada no perceptron de Rosenblatt. A não linearidade sigmóide é a forma mais utilizada e é definida pela função logística, expressa pela Equação (19), em que vj corresponde ao campo local induzido, obtido pela soma ponderada de todas as entradas

sinápticas acrescidas do bias do neurônio j e yj à saída do neurônio j (HAYKIN,1999).

yj =

1 1 + exp(−vj)

Ressalta-se que a ausência de não linearidades acarreta em uma relação de entrada- saída da rede semelhante àquela de um perceptron monocamada. Os neurônios ocultos tornam a rede capaz de aprender tarefas complexas, por meio da extração progressiva dos aspectos mais importantes dos vetores de entrada. A última característica de um perceptron multicamada é seu alto grau de conectividade proveniente das sinapses da rede. Ao alterar a conectividade da rede, é necessário mudar a população das conexões sinápticas ou de seus respectivos pesos (HAYKIN,1999).

De acordo com o Teorema da Aproximação Universal, uma camada oculta é suficiente para que a rede neural seja capaz de aproximar qualquer função contínua dado um conjunto de treinamento constituído do conjunto de entradas e a saída desejada (CYBENKO,1989).

3.3.1

Algoritmo de Levenberg-Marquardt

O algoritmo de Levenberg-Marquardt é uma técnica padrão empregada para aproximar dados numéricos com uma função não linear por meio de mínimos quadrados. O objetivo desse algoritmo é minimizar a soma dos quadrados dos erros entre a função e os dados obtidos (GAVIN,2013). Esse algoritmo de treinamento será utilizado neste trabalho e, por isso, será descrito detalhadamente.

Para tanto, um método de vizinhança máxima foi desenvolvido, o qual consiste em uma interpolação ótima entre o método de descida gradiente e o método Gauss-Newton (MAR- QUARDT,1963).

Para aproximar uma função ˆy(t; p) de uma variável independente t e um vetor de n parâ- metros p para um conjunto de m pontos (ti, yi), é adequado minimizar a soma dos erros

quadrados ponderados entre os dados obtidos y(ti) e a função ˆy(t; p). O critério de erro

qui-quadrado corresponde ao escalar mínimo determinado pela Equação (20), em que wi

representa a medida do erro para y(ti). Além disso, a matriz de ponderação W é diagonal

e seus elementos são determinados por Wi12.

χ2(p) = m X i=1  y(ti) − ˆy(ti; p) wi 2

= (y − ˆy(p))TW(y − ˆy(p)) (20) = yTWy − 2yTWyˆ+ ˆyTWyˆ

Assim, o objetivo a cada iteração é encontrar a perturbação h para os parâmetros p que minimizam χ2(GAVIN,2013).

O método de descida gradiente é um método de minimização geral cuja função é atualizar os valores dos parâmetros na direção oposta do vetor gradiente da função objetivo. Esse

método converge rapidamente para o mínimo de funções objetivo simples, como as funções quadráticas. Entretanto, há problemas com uma grande quantidade de parâmetros que somente o método de descida gradiente resolve adequadamente (GAVIN,2013).

A Equação (21) expressa o gradiente do critério de erro qui-quadrado em relação aos parâmetros, em que a matriz mxn Jacobiana

h

∂ ˆy ∂p

i

corresponde à sensibilidade local da função ˆy em relação a variação dos parâmetros p e é simbolizada por J (GAVIN,2013).

∂ ∂pχ

2 = (y − ˆy(p))T

W ∂

∂p(y − ˆy(p)) = −(y − ˆy(p))TW ∂ ˆy(p)

∂p 

(21) = −(y − ˆy)TWJ

A perturbação h, responsável por mover os parâmetros na direção oposta ao vetor gradiente, é determinada pela Equação (22), em que o escalar positivo α estabelece o comprimento do passo na direção já definida (GAVIN,2013).

hgd = αJTW(y − ˆy) (22)

O método de Gauss-Newton considera que a função objetivo é aproximadamente quadrática nos parâmetros próximos à solução ótima. A convergência desse método é mais rápida em relação ao método de descida gradiente para problemas de tamanho médio (MARQUARDT,

1963).

Dessa forma, a função com os parâmetros perturbados pode ser aproximada localmente por uma expansão da série de Taylor de primeira ordem, de acordo com a Equação (23) (GAVIN,2013). ˆ y(p + h) ≈ ˆy(p) + ∂ ˆy ∂p  h = ˆy + Jh (23)

Ao substituir a aproximação da função perturbada, ˆy + Jh, por ˆy na Equação (20), obtém-se a equação 24e nota-se que χ2 é aproximadamente quadrático na perturbação h e que sua respectiva matriz Hessiana é aproximadamente JTWJ (GAVIN,2013).

χ2(p + h) ≈ yTWy + ˆyTWˆy − 2yTWˆy − 2(y − ˆy)TWJh + hTJTWJh (24)

A perturbação h que minimiza χ2 é obtida por ∂χ2

∂h = 0 e resulta na Equação (25) e a

equação para a perturbação de Gauss-Newton é mostrada na Equação (26) (GAVIN,2013). ∂

∂hχ

2

[JTWJ]hgn = JTW(y − ˆy) (26)

O algoritmo de Levenberg-Marquardt atualiza adaptativamente o parâmetro alternando o método de descida gradiente e o método Gauss-Newton, conforme a equação27(GAVIN,

2013).

[JTWJ + λI]hlm = JTW(y − ˆy) (27)

Se o parâmetro λ apresenta um valor pequeno, seu valor está perto do seu ótimo, e o método Gauss-Newton é utilizado para a atualização, ao passo que se λ está longe de seu valor ótimo, o método da descida gradiente é usado. O parâmetro λ é inicializado com um valor alto e o mesmo aumenta quando a iteração resulta em uma aproximação pior. Ao longo das iterações, a solução se aproxima do mínimo, o valor de λ diminui e o método Levenberg-Marquardt utiliza o método Gauss-Newton, o qual converge rapidamente para o mínimo local. Portanto, Marquardt propôs uma relação de atualização expressa pela Equação (28) (GAVIN,2013).

O Pseudocódigo1apresenta o algoritmo de Levenberg-Marquardt. Algoritmo 1: Algoritmo de Levenberg-Marquardt

Entrada: Uma função vetorial f : Rm → Rn, com n ≥ m, um vetor de medida x ∈ Rne uma

estimativa inicial dos parâmetrosp0 ∈ Rm.

Saída: Um vetor p+ ∈ Rmminimizando kx − f (p)2k. Início

k = 0; v = 2; p = p0;

A = JTJ; 

p = x − f (p); g = JTp;

Parada = (kgk∞≤ ε1); µ = τ ∗ max1,...,m(Aii);

Repita k = k + 1; Repita Faça (A + µI)δp = g; se (kδpk ≤ ε2kp)k parada = verdadeiro; se não pnew = p + δp; ρ = (kεpk2− kx − f (pnew)k2)/(δpT(µδp+ g)); se ρ > 0 p = pnew; A = JTJ; p = x − f (p); g = JTp; Parada = (kgk∞≤ ε1) ou (kεpk2 ≤ ε3); µ = µ ∗ max(13, 1 − (2ρ − 1)3); v = 2; se não µ = µ ∗ v; v = 2 ∗ v; Até até (ρ > 0) ou (parada); Até (não parada) e k < kmax;

p+= p;

Fim

Capítulo 4

Metodologia

No documento COMPORTAMENTO MECÂNICO MARIANA PRESOTI (páginas 31-42)

Documentos relacionados