Redes Neurais

Cérebro e Redes Neurais Artificiais

Prof. Jodavid Ferreira

UFPE

Introdução



  • O cérebro é o mais requintado dos instrumentos, capaz de refletir as complexidades e os emaranhamentos do mundo ao nosso redor.

  • Centro da inteligência, memória, consciência e linguagem, o cérebro controla, em colaboração com outras partes do encéfalo, as sensações e os órgãos efetores, ele é o ponto mais alto da evolução, o único órgão consciente da sua existência.

Introdução



  • O córtex cerebral é a fina camada de substância cinzenta que reveste o centro branco medular de todo encéfalo e possui uma espessura que varia de 1 a 4 mm.

  • Trata-se de uma das partes mais importantes do sistema nervoso e a maior parte é composta por células nervosas (neurônios) que recebem impulsos dos pontos mais distantes do corpo e os retransmitem ao destino certo.

Introdução



  • No córtex cerebral chegam impulsos provenientes de todas as vias da sensibilidade que aí se tornam conscientes e são interpretadas.

  • Do córtex saem os impulsos nervosos que iniciam e comandam os movimentos voluntários e involutários. Com ele estão relacionados os fenômenos psíquicos como a memória, a inteligência, a linguagem e a consciência.

    • Memória: capacidade de armazenar e recuperar informações.
    • Inteligência: capacidade de raciocinar, planejar, resolver problemas, pensar de forma abstrata, compreender ideias complexas, aprender rapidamente e aprender com a experiência.
    • Linguagem: capacidade de se comunicar por meio de sinais orais, escritos ou gestuais.
    • Consciência: capacidade de perceber a si mesmo e ao ambiente.

Introdução



Sabendo que o Córtex Cerebral é formado em sua maior parte por Neurônios, vamos entender um pouco mais sobre eles!

Introdução



Neurônio


  • O neurônio é a unidade fundamental do cérebro e tem como função básica receber, processar e enviar informações. Ou seja, transmitir os impulsos nervosos

  • O número de neurônios é fixo e não se multiplicam.

  • Durante o desenvolvimento intra-uterino, o cérebro humano produzirá todas as células nervosas que o acompanharão durante a vida.

  • Estima-se que o cérebro humano possui aproximadamente 86 bilhões de neurônios.

  • Cada neurônio pode ter de 1.000 até 10.000 conexões sinápticas.

Introdução - Neurônio


Em geral os neurônios constituem-se dos mesmos compontes básicos:

  • Corpo celular: contém o núcleo e a maioria dos organelos celulares.

  • Dendritos: prolongamentos que recebem sinais de outros neurônios e levam o impulso nervoso até o corpo celular, sendo, na maioria das vezes, responsáveis pela comunicação entre os neurônios através das sinapses.

  • Axônio: prolongamento que transmite sinais para outros neurônios. É responsável pela condução do impulso nervoso para o próximo neurônio

  • Bainha de Mielina: protege o axônio e acelera a transmissão de sinais.

Introdução - Neurônio



  • A região de contato entre o fim do axônio de um neurônio e os dendritos de outro neurônio é chamado de Sinapse;

  • A sinapse é composta por:

    • Botão sináptico: extremidade do axônio que libera neurotransmissores;

    • Fenda sináptica: espaço entre o botão sináptico e os dendritos;

    • Receptor: proteína localizada na membrana do dendrito que recebe os neurotransmissores.

    • O axônio leva os impulsos para fora do corpo celular, as extremidades de cada axônio chegam até bem próximo dos dendritos do próximo neurônio, mas não chega a tocá-lo, ou seja, os neurônios não tem uma ligação física entre eles, mas os mediadores químicos são passados de um neurônio a outro.

Introdução - Neurônio



Redes Neurais Artificiais



Redes Neurais Artificiais são estruturas computacionais inspiradas no sistema nervoso de seres vivos, mais especificamente neurônios. Porém aqui devem ser guardadas as proporções: enquanto as redes neurais biológicas estão entre as estruturas mais complexas já conhecidas e seu funcionamento ainda não é totalmente compreendido, as Redes Neurais Artificiais buscam simular o comportamento dos neurônios para executar apenas tarefas bem específicas, como as de classificar um objeto.


  • As redes neurais artificiais são sistemas paralelos distribuídos compostos por unidades de processamento simples (nodos) que calculam determinadas funções matemáticas (normalmente não-lineares).

Redes Neurais Artificiais



As redes neurais são semelhantes ao funcionamento do cérebro humano em dois aspectos fundamentais:

  • o conhecimento é adquirido pela rede neural por meio de um processo de aprendizado

  • e os pesos das conexões entre neurônios, conhecidas como sinapses, são utilizados para armazenar o conhecimento.


O procedimento utilizado para representar o processo de aprendizado, normalmente conhecido como algoritmo de aprendizado, é uma função para modificar os pesos das conexões da rede com o objetivo de alcançar um valor previamente estabelecido.

Redes Neurais Artificiais



  • As redes neurais aprendem a identificar os padrões de uma determinada base de dados por meio da análise dos seus respectivos casos, construindo um mapeamento de entrada e saída analogamente aos ,modelos estatísticos não paramétricos.

  • Dessa forma, os modelos de redes neurais podem identificar padrões que são evidentes ou característicos para um problema em particular e armazenar esse conhecimento com uma base de inferência para classificação ou predição.

  • O conhecimento é representado em uma rede neural pela sua própria estrutura e pelo estado de ativação e pode se adaptar às menores mudanças nas situações utilizadas como base de aprendizado.

Redes Neurais Artificiais


Conceitualmente, uma rede neural artificial consiste de um conjunto de componentes de processamento interconectados entre si, formando uma rede.

Uma unidade da rede é chamada de neurônio, assim como no sistema nervoso humano, e as conexões entre essas unidades são chamadas de sinapses, seguindo a mesma analogia.

  • O componente central de uma rede neural é o neurônio, ou nó. O neurônio recebe um conjunto de informações de entrada \(x_i\) a partir de outros nós, e multiplica cada entrada por um peso \(w_{ij}\), que está associado a cada uma das conexões.

  • O produto resultante dessa multiplicação é somado dentro do neurônio para gerar uma ativação \(\nu_j = \sum x_iw_{ij}\).

  • A ativação é transformada utilizando-se uma função de transferência \(F(\nu_j)\) para produzir a saída do nó.

  • Usualmente, uma função de transferência sigmoidal do tipo \(F(\nu_j) = 1 / (1 + e^{-\nu_j})\) é utilizada, onde \(\nu_j\) é a ativação.

Redes Neurais Artificiais



Redes Neurais Artificiais



Redes Neurais Artificiais



  • Os neurônios são agrupados na rede em camadas, dependendo das suas conexões com o ambiente externo.

  • Enquanto todas as redes neurais possuem uma única camada de entrada e saída, uma estrutura de rede pode possuir uma ou mais camadas escondidas, as quais permitem que a rede possa modelar funções extremamente complexas.

  • Independente do modelo de treinamento implementado, seja ele supervisionado, no qual a saída é conhecida e o treinamento visa adaptar a saída da rede a esta, ou não supervisionado, no qual a saída não é conhecida e o treinamento visa buscar correlações na base de entrada, na maioria das vezes, o modelo resultante da adaptação dos parâmetros da rede não é interpretável, o que torna o modelo de rede neural uma verdadeira caixa-preta.

Redes Neurais Artificiais



O desempenho da rede depende da forma como os neurônios estão conectados, o que define a estrutura da rede.

Conforme visto anteriormente, a saída do neurônio é calculada a partir das entradas ponderadas por um peso associado a conexão.

\[\varphi=F(\nu) = F\left(\sum_i x_iw_{i}\right)\]

\(x\) é a entrada do neurônio, ou valor de observação, \(w\) é o peso da conexão, \(\nu\) é o valor da ativação e \(F\) é a função de ativação.

Diversas funções de ativação podem ser utilizadas na implementação de uma rede neural em multicamadas.

Redes Neurais Artificiais


As funções de ativação mais básicas são a função linear:

\[\varphi=F(\nu) = \nu = \sum_i x_iw_{i}\]

e a função lógica, ou de ativação por limiar (também conhecida como função degrau):

\[\begin{align} %\begin{eqnarray} \varphi = F(\nu) =\left\{ \begin{array}{c l} 0, & \nu < \beta\\ 1, & \nu > \beta \end{array}\right. %\end{eqnarray} \end{align}\]

\(\beta\) é o ponto de transição do neurônio. Nesse caso, o ponto de transição pode ser incorporado ao neurônio, o que resulta em uma função da seguinte forma:

\[\varphi=F(\nu) = F \left( \sum_i x_iw_{i} + \beta \right)\]

Redes Neurais Artificiais



Entretanto, a função de ativação degrau possui algumas limitações como mapeia valores de entrada para 0 ou 1, tem uma derivada zero quase em todos os lugares, exceto no ponto de mudança (o limiar). Isso faz com que o gradiente seja zero para quase todas as entradas, resultando no “vanishing gradient problem” (problema do gradiente desaparecendo), onde os pesos não são ajustados adequadamente durante o treinamento.

Uma função contínua da função de ativação, que permite a implementação de algoritmos mais complexos para o treinamento da rede, é a função sigmoide:

\[\varphi=F(\nu) = \dfrac{1}{1+e^{-\alpha \nu}}\] onde \(\alpha\) é um parâmetro de ajuste da função.

Redes Neurais Artificiais



A função de ativação sigmoide limita a saída de um neurônio entre o intervalo 0 e 1, o que implica na necessidade de discretização dos valores da base de entrada da rede, fazendo com que os valores de observação \(x\) fiquem dentro desse intervalo.

Temos também a função a função tangente hiperbólica:

\[\varphi=F(\nu) = tanh(\nu)\]

A função tangente hiperbólica é uma função sigmoide que limita a saída de um neurônio entre -1 e 1.

Existem outras funções de ativação que podem ser utilizadas, dependendo do problema a ser resolvido e da arquitetura da rede.

Redes Neurais Artificiais



Uma função que está sendo muito utilizada ultimamente é a função de ativação ReLU (Rectified Linear Unit), dada por:

\[\varphi=F(\nu) = max(0,\nu)\]

essa função é muito utilizada em redes neurais profundas, pois acelera o treinamento da rede, visto que ela não satura para valores muito grandes de \(\nu\).

Outra que vem em crescente uso, é a função de ativação Leaky ReLU, dada por:

\[\varphi=F(\nu) = max(0.01\nu,\nu)\]

Essa função é uma variação da ReLU, que permite que valores negativos de \(\nu\) sejam passados adiante, o que pode ajudar no treinamento da rede.

Redes Neurais Artificiais


Em geral quando temos um problema de multiclasse utilizamos a função de ativação Softmax, que é uma generalização da função sigmoide para múltiplas classes, dada por:

\[\varphi=F(\nu) = \dfrac{e^{\nu_i}}{\sum_{j=1}^{n}e^{\nu_j}}\]

onde \(n\) é o número de classes do problema.

Essa função de ativação está presente em redes como a MLP (Multilayer Perceptron) e a CNN (Convolutional Neural Network).

Redes Neurais Artificiais


  • O modelo neuronal matemático também pode incluir uma polarização ou viés de entrada, representado pela letra \(b\).

  • Esta variável é incluída ao somatório da função de ativação, com o intuito de aumentar o grau de liberdade desta função e, consequentemente, a capacidade de aproximação da rede.

  • O valor do viés é ajustado da mesma forma que os pesos sinápticos.

  • O viés possibilita que um neurônio apresente saída não nula ainda que todas as suas entradas sejam nulas.

  • Por exemplo, caso não houvesse o viés e todas as entradas de um neurônio fossem nulas, então o valor da função de ativação \(\varphi\) seria nulo.

  • Assim, se estivermos usando, por exemplo, a função de transferência tangente hiperbólica, a saída seria nula.

  • Desta forma não poderíamos por exemplo, fazer com que o neurônio aprendesse a relação \(x=[0\, \,0]^\top\) e \(y=1\), pertinente ao problema “ou exclusivo” da lógica.

Redes Neurais Artificiais


Perceptron


  • O perceptron, invenção de Rosenblatt, foi um dos primeiros modelos de redes neurais.

  • Dentre os tipos de redes neurais existentes, o perceptron é a arquitetura mais simples, apresentando apenas um conjunto de neurônios de entrada e um conjunto de neurônios de saída, sem haver nenhuma camada de neurônios intermediária.

  • Este tipo de rede neural, embora simples, apresenta problemas específicos, não podendo ser utilizada em aplicações mais avançadas, mas apenas em estruturas de decisão simples.

  • O perceptron modela um neurônio pegando uma soma ponderada de suas entradas e enviando o resultado 1 se a soma for maior que algum valor inicial ajustável ( caso contrário, ele envia o resultado 0).

  • A próxima Figura mostra o dispositivo.

Redes Neurais Artificiais - Perceptron



  • Note que, em um perceptron as conexões são unidirecionais

  • As entradas (\(x_1, x_2, \ldots, x_n\)) e os pesos das conexões (\(w_1, w_2, \ldots, w_n\)) na figura são tipicamente valores reais, tanto positivos quanto negativos.

  • Se a presença de alguma característica \(x_i\) tender a disparar o perceptron, o peso \(w_i\) será positivo; se a característica \(x_i\) inibir o perceptron, o peso \(w_i\) será negativo.

  • O perceptron em si, consiste nos pesos, no processador de soma (valor de ativação) e no processador de limite ajustável (função de ativação).

  • E temos que neste caso, a Aprendizagem é o processo de modificar os valores dos pesos e do limite.

Redes Neurais Artificiais - Perceptron



Redes Neurais Artificiais - Perceptron



Apesar de ter causado grande euforia na comunidade científica da época, o perceptron não teve vida muito longa, já que as duras críticas de Minsky e Papert (1969) à sua capacidade computacional causaram grande impacto sobre as pesquisas em RNAs, levando a um grande desinteresse pela área durante os anos 70 e início dos anos 80.


Essas críticas são relacionadas a um problema denominado de problema da linearidade, que é a incapacidade do perceptron de aprender funções não-lineares. Um exemplo clássico é o problema do XOR, que vamos apresentar a seguir.

Redes Neurais Artificiais - Perceptron



Problema do XOR

  • A disjunção exclusiva ou XOR (escrito como \(\oplus\), \(+\), ou ainda \(\neq\)) é uma operação sobre dois ou mais valores lógicos, tipicamente os valores de duas proposições, que produz um valor verdadeiro apenas se a quantidade de operadores verdadeiros for ímpar.

Tabela da Verdade

A tabela de verdade para p XOR q de duas entradas é a seguinte:

p q p \(\oplus\) q
F F F
F V V
V F V
V V F

Redes Neurais Artificiais - Perceptron



  • mudando-se os valores de \(w_1\) e \(w_2\) e \(\theta\), muda-se a inclinação e a posição da reta;

  • entretanto é impossível achar uma reta que divide o plano de forma a separar os pontos \(A_1\) e \(A_2\) de um lado e \(A_0\) e \(A_3\) do outro.

  • redes de uma única camada só representam funções linearmente separáveis.

Redes Neurais Artificiais - Perceptron



Exemplo de problema linearmente separável

  • Considere o problema da classificação de padrões mostrado na Figura a seguir. Este problema é separável linearmente, porque podemos desenhar uma linha que separa uma classe da outra.

Redes Neurais Artificiais - Perceptron



  • Esta visão pessimista da capacidade do perceptron e das Redes Neurais Artificiais de uma maneira geral mudou com as descrições da rede de e Hopfweld (1982) e e do algoritmo backpropagation em 1986.


  • Foi em consequência destes trabalhos que a área de Redes Neurais Artificiais ganhou novo impulso, ocorrendo, a partir do final dos anos 80, uma forte expansão no número de trabalhos de aplicação e teóricos envolvendo Redes Neurais Artificiais e técnicas correlatas.






Redes Neurais Artificiais

Perceptrons de Múltiplas Camadas (MLP)


Redes Neurais Artificiais


Perceptrons de Múltiplas Camadas (MLP)


  • As redes de uma só camada resolvem apenas problemas linearmente separáveis.

  • A solução de problemas não linearmente separáveis passa pelo uso de redes com uma ou mais camadas intermediárias ou escondidas.

Redes Neurais Artificiais - MLP



  • O perceptron de múltiplas camadas ou multilayer perceptron (MLP) é uma rede com uma camada sensorial ou camada de entrada, que possui tantos nós de entrada quantos forem os sinais de entrada, uma ou mais camadas ocultas de neurônios e uma camada de saída com um número igual ao número de sinais de saída.

  • O sinal de entrada se propaga para frente através das camadas até a camada de saída, ou seja, é uma rede alimentada para frente.

Redes Neurais Artificiais - MLP



  • O MLP é uma generalização da rede perceptron e, assim como esta, é treinada de forma supervisionada, através da regra de aprendizagem que minimiza o erro.

  • O mecanismo utilizado para a aprendizagem no caso do MLP, é conhecido como algoritmo de retropropagação de erro.

  • De maneira similar ao perceptron, no MLP necessita da definição do sinal de erro e da taxa de aprendizagem.

Redes Neurais Artificiais - MLP



  • Entretanto, para o melhor funcionamento e mais correta definição das correções nos pesos das saídas dos neurônios em cada camada, algumas especificidades são atribuídas no sinal de erro.

  • Isto, de certa forma, garante uma maior convergência no aprendizado da rede.

  • Todo o procedimento do treinamento do MLP é baseado no sinal do erro, o que é visto a seguir.

  • No MLP, o sinal do erro do neurônio de saída \(j\), na iteração \(t\), é definido por:

\[e_j(t) = y_j - \hat{y}_j(t),\]

em que \(\hat{y}_j(t)\) é a resposta calculada pelo neurônio \(j\) e \(y_j\) é a resposta real referente ao neurônio \(j\).

Redes Neurais Artificiais - MLP



O sinal de erro global e instantâneo da rede, para os \(J\) neurônios da camada de saída, na iteração \(t\), é definido por:

\[E(t) =\dfrac{1}{2} \sum\limits_{j=1}^J e_j^2(t).\]

O erro de cada neurônio é elevado ao quadrado para evitar que um erro negativo oriundo de um neurônio compense um erro positivo de outro.

Vale destacar que ao fazermos isso, temos que

\[e_j^2(t) = \left( y_j - \hat{y}_j(t) \right)^2\] é a distância euclidiana entre a resposta desejada e a calculada pela rede.

Redes Neurais Artificiais - MLP


  • O erro global médio da rede para todo o ciclo de treinamento, ou seja, para um número \(T\) de iterações definidas, é dado pela média aritmética dos erros globais instantâneos, conforme a expressão a seguir:

\[\overline{E} =\dfrac{1}{T} \sum\limits_{t=1}^T E(t).\]

O erro global instantâneo médio, assim como, o erro global instantâneo \(E(t)\) são funções de todos os parâmetros livres (pesos sinápticos e viés) da rede.

Dessa forma, a questão passa a ser em como atribuir uma parcela de culpa, pelo erro global instantâneo, a cada um dos parâmetros, com finalidade de possibilitar o ajuste destes parâmetros em direção a um erro global mínimo.

Redes Neurais Artificiais - MLP



  1. Para compreendermos, imagine uma rede perceptron de múltiplas camadas com função de transferência sigmoide, na qual são atribuídos valores arbitrários para os pesos sinápticos e para os vieses.

Redes Neurais Artificiais - MLP



  1. Em seguida, é utilizado o primeiro conjunto de sinais de entrada\((\mathbf{X})\), os quais resultariam num conjunto de sinais de saídas (\(\mathbf{y}\)) que, comparados ao conjunto de sinais de saída desejado (\(\mathbf{\hat{y}}\)), resultariam no erro global instantâneo \(\left(E(t)\right)\).

Redes Neurais Artificiais - MLP



  1. Supondo que seja desejado ajustar o peso hipotético \(w(k,j) = w_{kj}\), ou seja, um peso \(w\) de uma sinapse entre o neurônio \(k\) e o neurônio \(j\). Podemos, escrever a equação do erro global instantâneo \(E(t)\) em função de \(w_{kj}\) mantendo os outros pesos constantes. Assim, ter-se-ia uma equação com a forma geral vista na equação a seguir:

\[E(t) = \dfrac{1}{2}\sum\limits_{j=1}^{J} \left(y_j - \varphi \left( \sum\limits_k w_{kj}\varphi \left( \ldots \varphi \left( \sum\limits_l w_{lg} \varphi \left(\ldots \varphi \left( \sum\limits_i w_{iu} x_i \right) \right) \right) \right) \right) \right)^2 \]

Redes Neurais Artificiais - MLP



Esta equação é composta de somatórios de funções sigmoides aninhados, onde \(y_j\) representam os sinais de saída desejados, \(x_i\) representam os sinais de entrada e \(\varphi\) a função sigmoide de transferência. A representação gráfica teria a forma similar a figura apresentada a seguir:

Representação gráfica para o processo de minimização do erro entre \(E \, \times\, w_{kj}(t)\).

Redes Neurais Artificiais - MLP


  • Pelo gráfico que podemos visualizar a reta tangente que pode ser obtida por:

\[\dfrac{\partial E(t)}{\partial w_{kj}(t)},\] Essa derivada parcial traz insights sobre o peso \(w_{kj}(t)\):

se o valor da derivada parcial for positivo, significa que, se for aplicada uma correção positiva ao peso sináptico \(w_{kj}(t)\), ter-se-ia um acréscimo no erro global \(E(t)\), devendo, neste caso, deve ser aplicada uma correção negativa e vice-versa.

se o valor da derivada parcial for pequeno, estamos próximos a um \(E(t)\) mínimo para \(w_{kj}\), devendo assim ser aplicada uma correção a \(w_{kj}\) pequena.

Redes Neurais Artificiais - MLP



se o valor desta derivada fosse grande, o valor de \(w_{kj}\) está distante do valor que resultaria em \(E(t)\) mínimo, portanto seria necessário aplicar uma correção maior para \(w_{kj}(t)\).

Então, nesse caso utilizamos a regra delta para corrigir o peso sináptico \(w_{kj}(t)\), conforme a equação a seguir:

\[\Delta w_{kj}(t) = -\eta\dfrac{\partial E(t)}{\partial w_{kj}(t)},\]

em que \(\eta\) é a taxa de aprendizado.

O processo é repetido até caminhar por todos os pesos e vieses da rede. Em que, após a finalização de uma iteração é dito que foi executado 1 época (epoch).

Redes Neurais Artificiais - MLP



Entretanto, o cálculo da derivada parcial \(\partial E(t)/\partial w_{ij}(t)\) para cada um dos pesos não é simples, pois, como já foi visto, \(E(t)\) é uma equação composta de somatórios de funções de ativação (\(\varphi\)) aninhados.


\[E(t) = \dfrac{1}{2}\sum\limits_{j=1}^{J} \left(y_j - \varphi \left( \sum\limits_k w_{kj}\varphi \left( \ldots \varphi \left( \sum\limits_l w_{lg} \varphi \left(\ldots \varphi \left( \sum\limits_i w_{iu} x_i \right) \right) \right) \right) \right) \right)^2 \]


Como podemos resolver isso?

Redes Neurais Artificiais - MLP


Para nosso entendimento, vamos utilizar como base a estrutura abaixo:

Legenda:

  • \(\hat{y}_i(t)\): saída do neurônio \(i\) na iteração \(t\);
  • \(w_{ij}(t)\): peso sináptico entre o neurônio \(i\) e o neurônio \(j\) na iteração \(t\);
  • \(\nu_j(t)\): valor de ativação do neurônio \(j\) na iteração \(t\);
  • \(\varphi_j(\nu_j(t))\): função de ativação do neurônio \(j\) na iteração \(t\);
  • \(\hat{y}_j(t)\): saída do neurônio \(j\) na iteração \(t\);
  • \(y_j(t)\): saída real do neurônio \(j\) na iteração \(t\);
  • \(e_j(t)\): erro do neurônio \(j\) na iteração \(t\);

Redes Neurais Artificiais - MLP



Vamos utilizar o Backpropagation

como o próprio nome sugere:

  • começa pela última camada de neurônios em direção à primeira
  • são calculados gradientes locais em uma camada, e estes serão utilizados no cálculo dos gradientes de erro da camada imediatamente anterior.


O objetivo é determinar a derivada parcial \(\partial E(t)/\partial w_{ij}(t)\), para aplicar a correção \(\Delta w_{ij}(t)\) ao peso sináptico \(w_{ij}(t)\).

Redes Neurais Artificiais - MLP



De acordo com a regra da cadeia, é possível expressar a derivada parcial como sendo a equação a seguir

\[\begin{equation} \dfrac{\partial E(t)}{\partial w_{ij}(t)} = \dfrac{\partial E(t)}{\partial e_{j}(t)} \dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)} \dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)} \dfrac{\partial \nu_{j}(t)}{\partial w_{ij}(t)}, \label{equacao56} \end{equation}\]

Lembrem-se que \(\hat{y}_j(t) = \varphi_j(\nu_j(t))\).

É importante também definir o gradiente local do neurônio \(j\), que é definido por \(\delta_j(t)\), que é dado pela derivada \(\partial E(t) / \partial \nu_j(t)\), que pode ser escrita como

\[\begin{equation} \delta_j(t) = \dfrac{\partial E(t)}{\partial \nu_{j}(t)} = \dfrac{\partial E(t)}{\partial e_{j}(t)} \dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)} \dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)}, \label{equacao57} \end{equation}\]

ou seja, o gradiente é formado pela multiplicação dos três primeiros fatores da função \(\partial E(t) / \partial w_{ij}(t)\).

Redes Neurais Artificiais - MLP



Vamos desenvolver cada fator da equação:

\[ \dfrac{\partial E(t)}{\partial w_{ij}(t)} = \color{red}{\dfrac{\partial E(t)}{\partial e_{j}(t)}} \dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)} \dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)} \dfrac{\partial \nu_{j}(t)}{\partial w_{ij}(t)}, \]

Temos

\[E(t)=\dfrac{1}{2}\sum\limits_{j=1}^J e^2_j(t),\]

logo,

\[ \color{red}{\dfrac{\partial E(t)}{\partial e_{j}(t)} = e_j(t) = y_j - \hat{y}_j(t).} \]

Redes Neurais Artificiais - MLP



Desenvolvendo o segundo fator

\[ \dfrac{\partial E(t)}{\partial w_{ij}(t)} = \dfrac{\partial E(t)}{\partial e_{j}(t)} \color{blue}{\dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)}} \dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)} \dfrac{\partial \nu_{j}(t)}{\partial w_{ij}(t)}, \]

em que \(\color{red}{e_j(t) = y_j - \hat{y}_j(t)}\), tem-se:

\[\color{blue}{\dfrac{\partial e_j(t)}{\partial \hat{y}_j(t)} = -1,}\]

Redes Neurais Artificiais - MLP


Desenvolvendo o terceiro fator

\[ \dfrac{\partial E(t)}{\partial w_{ij}(t)} = \dfrac{\partial E(t)}{\partial e_{j}(t)} \dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)} \color{green}{\dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)}} \dfrac{\partial \nu_{j}(t)}{\partial w_{ij}(t)}, \]

sendo \(y_j(t) = \varphi_j(\nu_j(t)),\) encontra-se

\[\color{green}{\dfrac{\partial \hat{y}_j(t)}{\partial \nu_j(t)} = \varphi^\prime_j (\nu_j(t)).}\]

Se por exemplo, a função de ativação \(\varphi\) for sigmoide \(\left( \varphi_j(\nu_j(t)) = \dfrac{1}{1+e^{- \nu}} \right)\), a derivada parcial acima teria a seguinte forma:

\[ \varphi^\prime_j (\nu_j(t)) = \dfrac{e^{-\nu_j(t)}}{(1+e^{-\nu_j(t)})^2} \]

Redes Neurais Artificiais - MLP



Dado os resultados anteriores, podemos escrever a equação do gradiente local do neurônio \(j\), da seguinte forma:

\[\delta_j(t) = \dfrac{\partial E(t)}{\partial \nu_{j}(t)} = \color{red}{\dfrac{\partial E(t)}{\partial e_{j}(t)}} \color{blue}{\dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)}} \color{green}{\dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)}} = \color{blue}{-}\color{red}{e_j(t)}\color{green}{\varphi^\prime_j(\nu_j(t))}.\]

E desenvolvendo o quarto fator

\[ \dfrac{\partial E(t)}{\partial w_{ij}(t)} = \dfrac{\partial E(t)}{\partial e_{j}(t)} \dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)} \dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)} \color{orange}{\dfrac{\partial \nu_{j}(t)}{\partial w_{ij}(t)}}, \]

temos que, para o neurônio \(j\) com

\[\nu_j(t) = \sum\limits_iw_{ij}(t)\hat{y}_i(t) \quad \quad \Longrightarrow \quad \quad \color{orange}{\dfrac{\partial \nu_j(t)}{\partial w_{ij}} = \hat{y}_i(t).} \]

Redes Neurais Artificiais - MLP



Substituindo os fatores desenvolvidos, temos

\[\dfrac{\partial E(t)}{\partial w_{ij}(t)} = \color{red}{\dfrac{\partial E(t)}{\partial e_{j}(t)}} \color{blue}{\dfrac{\partial e_j(t)}{\partial \hat{y}_{j}(t)}} \color{green}{\dfrac{\partial \hat{y}_j(t)}{\partial \nu_{j}(t)}} \color{orange}{\dfrac{\partial \nu_{j}(t)}{\partial w_{ij}(t)}} = \color{blue}{-}\color{red}{e_j(t)}\color{green}{\varphi^\prime_j(\nu_j(t))}\color{orange}{\hat{y}_i(t)} = \delta_j(t)\color{orange}{\hat{y}_i(t)}.\]

Com os resultados anteriores, é possível aplicar a correção a todos os pesos sinápticos e viés dos neurônios da última camada.

A correção se dará pela aplicação da regra delta dada por

\[ \Delta w_{ij} = -\eta \dfrac{\partial E(t)}{\partial w_{ij}(t)} = -\eta \delta_j(t)\hat{y}_i(t). \]

em que \(\eta\) é um hiperparâmetro que define a taxa de aprendizado e geralmente é previamente definido pelo usuário.

Redes Neurais Artificiais - MLP



Vamos agora entender como é o processo de ajuste dos pesos sinápticos e viés dos neurônios de uma camada anterior, nesse caso vamos utilizar como auxílio a imagem abaixo e fazer o procedimento para a camada \(i\).

Na Figura aterior, temos um grafo de fluxo de sinal, em que é representado, o neurônio da camada de saída visto anteriormente (camada J), e um neurônio de camada imediatamente anterior (camada I).

Redes Neurais Artificiais - MLP


Ao observar a equação abaixo para o neurônio \(i\)

\[\dfrac{\partial E(t)}{\partial w_{ki}(t)} = \color{red}{\dfrac{\partial E(t)}{\partial \hat{y}_{i}(t)}} \color{green}{\dfrac{\partial \hat{y}_i(t)}{\partial \nu_{i}(t)}} \color{orange}{\dfrac{\partial \nu_{i}(t)}{\partial w_{ki}(t)}},\]

Entretanto, podemos reescrever \(\partial E(t)\) como

\[\begin{eqnarray} \begin{array}{r l} \partial E(t) =& \sum\limits_{j=1}^J \partial E_j(t) \\ = & \sum\limits_{j=1}^J \delta_j(t) \partial \nu_j(t), \end{array} \end{eqnarray}\]

em que \(J\) é o número de neurônios da camada \(J\).

Redes Neurais Artificiais - MLP


dado que podemos expressar \(\color{green}{\partial \nu_j(t)}\), como:

\[\color{green}{\partial \nu_j(t) = \varphi_i^{\prime}(\nu_i(t)) \hat{y}_k(t) \partial w_{ki}(t) w_{ij}(t)}\]

então,

\[\begin{eqnarray} \begin{array}{r l} \partial E(t) = & \sum\limits_{j=1}^J \delta_j(t) \color{green}{\partial \nu_j(t)}\\ = & \sum\limits_{j=1}^J \bigg( \delta_j(t) \color{green}{\varphi_i^{\prime}(\nu_i(t)) \hat{y}_k(t) \partial w_{ki}(t) w_{ij}(t)} \bigg), \end{array} \end{eqnarray}\]

e assim, temos:

\[\dfrac{\partial E(t)}{\partial w_{ki}(t)} = \varphi_i^{\prime}(\nu_i(t))\hat{y}_k(t) \sum\limits_{j=1}^J \bigg( \delta_j(t) w_{ij}(t) \bigg).\]

Redes Neurais Artificiais - MLP



Substituindo a derivada \(\partial E(t) / \partial w_{ki}(t)\) na regra delta, encontra-se:

\[\begin{equation} \Delta w_{ki}(t) = -\eta \dfrac{\partial E(t)}{\partial w_{ki}(t)} = -\eta \varphi_i^{\prime}(\nu_i(t)) \hat{y}_k(t) \sum\limits_{j=1}^J \bigg( \delta_j(t) w_{ij}(t) \bigg). \label{5-30} \end{equation}\]

Assim, é possível ajustar todos os pesos da camada \(I\).

Entretanto, é conveniente determinar o gradiente local \(\delta_i(t)\), para todos os neurônios desta camada, pois estes serão necessários quando se ajustarem os pesos da camada imediatamente anterior, ou seja, a camada \(K\).

Tomando \(\delta_i(t)\) como \[\delta_i(t) = \varphi_i^{\prime}(\nu_i(t)) . \sum\limits_{j=1}^J \bigg( \delta_j(t). w_{ij}(t) \bigg),\]

Redes Neurais Artificiais - MLP



temos que, a equação \(\Delta w_{ki}(t)\) pode ser reescrita como:

\[\begin{equation} \Delta w_{ki}(t) = -\eta \delta_i(t) \hat{y}_k(t). \label{5-35} \end{equation}\]

Asssim, segue, em que o procedimento para ajuste dos parâmetros das demais camadas ocultas é o mesmo.

A taxa de aprendizagem \(\eta\) é responsável pela velocidade com que se dá a busca no espaço de pesos, em direção aos valores que resultam em um erro global mínimo.

Quanto menor for a taxa de aprendizagem, mais suave e precisa será a trajetória através do espaços de pesos, entretanto o aprendizado será lento.






Resumo do processo de treinamento

Perceptrons de Múltiplas Camadas (MLP)


Redes Neurais Artificiais - MLP


Resumo do Algoritmo


Em resumo, o algoritmo debackpropagation pode ser descrito em cinco etapas, conforme apresentadas a seguir:

  • Inicialização: arbitram-se valores aleatórios aos pesos sinápticos e viés, em uma distribuição uniforme, cuja média deverá ser zero.

  • Apresentação dos exemplos de treinamento: apresenta-se uma época de exemplos à rede. Para cada exemplo, realiza-se a propagação dos sinais e a retropropagação dos erros com a correção dos pesos e viés, conforme descrito nos dois próximos itens.

  • Propagação dos sinais: aplica-se á camada da rede o vetor de sinais de entrada \(x(i)\) e calcula-se o campo local induzido e o sinal de saída para todos os neurônios, começando da camada de entrada até a camada de saída, onde se obtém o vetor de sonais funcionais da rede \(\hat{y}_j(t)\).

Redes Neurais Artificiais - MLP


Resumo do Algoritmo


  • Em seguida, calcula-se o sinal de erro \(e_j(t)\) para cada neurônio da camada de saída, pela comparação de \(\hat{y}_j(t)\) com o vetor de sinais de saída desejados \(y\). Daí, calculam-se o erro instantâneo e com este, o erro médio global, para teste de finalização.

  • backpropagation dos sinais de erro: calculam-se os gradientes locais para todos os neurônios da camada de saída: \[\delta_j(t) = -e_j(t)\varphi'_j(\nu_j(t))\]

Redes Neurais Artificiais - MLP


Resumo do Algoritmo


Em seguida, calculam-se os ajustes para os pesos daquela camada, bem como dos viés, os quais devem ser somados aos valores atuais: \[ \Delta w_{ij} = \eta e_j(t)\varphi'_j(\nu_j(t))\hat{y}_i(t) = -\eta \delta_j(t)\hat{y}_i(t)\] \[ \Delta b_{j} = \eta e_j(t)\varphi'_j(\nu_j(t))\hat{y}_i(t) = -\eta \delta_j(t)\hat{y}_i(t)\]

O próximo passo é o cálculo do gradiente local para os neurônios da penúltima camada (camada oculta): \[\delta_i(t) = \varphi'_i(\nu_i(t))\sum\limits_{j=1}^J(\delta_j(t)w_{ij}(t)).\]

Redes Neurais Artificiais - MLP


Resumo do Algoritmo


Então, calcula-se o ajuste para todos os pesos desta camada, bem como dos viés, os quais devem ser somados aos valores atuais. \[\Delta w_{ki} = -\eta \varphi'_i(\nu_i(t))\hat{y}_k(t) \sum\limits_{j=1}^J(\delta_j(t)w_{ij}(t)) = -\eta_i(t)\hat{y}_k(t)\] \[\Delta b_{i} = -\eta \varphi'_i(\nu_i(t))\hat{y}_k(t) \sum\limits_{j=1}^J(\delta_j(t)w_{ij}(t)) = -\eta_i(t)\hat{y}_k(t)\]

O processo prossegue de forma idêntica para as demais camadas ocultas, assim como para a camada de entrada, em que os valores dos ajustes na primeira camada oculta (após a entrada da rede) deve ter o valor \(\hat{y}_k(t)\) substituído pelo valor de \(x_k\).

Redes Neurais Artificiais - MLP


Resumo do Algoritmo


  • Iteração: iteram-se as computações apresentando novas épocas de exemplos de treinamento para a rede de forma aleatória de época para época, até que seja satisfeito o critério de parada, que pode ser o número máximo de iterações ou um valor limite para o erro global médio da rede.

Tomando como base estes passos, é possível obter uma rede MLP.

Referências para serem utilizadas


BRAGA, A. P.; CARVALHO, A.; LUDEMIR, T. Redes Neurais Artificiais: Teoria e Aplicações. .: [s.n.], 2000.

HOPFWELD, J. J. Neural networks and physical systems with emergent collective computational abilities. Proc. NatL Acad. Sci., v. 79, p. 2554–2558, 1982.

LUDWIG, O.; MONTGOMERY, E. Redes Neurais - Fundamentos e Aplicações com Programas em C. .: Ciência Moderna, 2007.

MINSKY, M.; PAPERT, S. Perceptrons: an introduction to computationational geometry. [S.l.]: MIT Press, 1969.

PINHEIRO, C. A. R. Inteligência Analítica: Mineração de Dados e Descoberta de Conhecimento. .: [s.n.], 2008.

RICH, E.; KNIGHT, K. Inteligência Artificial. .: [s.n.], 1993.

ROSENBLATT, F. Principles of Neurodynamics: Perceptrons and Theory of Brain Mechanisms. .: Washigton, DC, 1962.

https://acervolima.com/funcoes-de-ativacao/




OBRIGADO!


Slide produzido com quarto