As Redes Neurais Artificiais são modelos computacionais inspirados no funcionamento do sistema nervoso de seres vivos. O sistema nervoso dos seres vivos são compostos, principalmente, por neurônios biológicos ou células nervosas. Os neurônios têm como papel principal a recepção e transmissão de sinais, permitindo assim que haja respostas aos estímulos recebidos. As redes neurais busca replicar esta estrutura de forma computacional.
A Figura 1 a seguir apresenta a estrutura de um neurônio biológico, com destaque para suas três partes principais, os dendritos, responsáveis pela captação contínua dos estímulos vindos dos diversos outros neurônios ou do próprio meio, o corpo celular, responsável por processar toda a informação vinda dos dendritos e o axônio, que tem a responsabilidade de conduzir os sinais para outros neurônios.
Já a Figura 2 mostra a estrutura de um neurônio artificial proposto por (McCulloch and Pitts 1943). Assim como no caso biológico, o modelo de neurônio artificial coleta os sinais de entrada, processa esses sinais e conduz outros sinais em sua saída.
Na Figura 2 é possível destacar os principais elementos de um neurônio artificial:
Sinais de Entrada: \(x_{1i}, x_{2i},…, x_{Mi}\). Vetor de covariáveis referentes às características de interesse.
Pesos sinápticos: \(w_1, w_2, …, w_M\). Valores que irão ponderar cada uma das variáveis de entrada da rede (parâmetros desconhecidos a serem estimados).
Combinador Linear: \(\Sigma\). Agregador dos sinais de entrada ponderados por seus respectivos pesos.
Limiar de ativação: \(\theta\). Variável que especifica qual será o limite para que o valor produzido pelo combinador linear possa gerar um valor de disparo.
Função de Ativação: \(g(.)\). Função responsável por receber os sinais de entrada após terem passado pelo combinador linear e aplica uma transformação não linear, que é enviada para a próxima camada da rede neural.
Uma rede neural é uma combinação de neurônios artificiais. Quando nos referimos à arquitetura de uma rede neural estamos nos referindo sobre a disposição dos neurônios nesta combinação. Já a topologia de uma rede se refere às diferentes composições estruturais possíveis dentro da sua arquitetura, como por exemplo, as diferentes quantidades de neurônios. Veja alguns exemplos na Figura 3 a seguir.
De forma geral, como mostra a Figura 4, em toda rede neural temos:
uma camada de entrada, que é responsável pelo recebimento dos dados de entrada a serem analisados;
algumas (ou nenhuma) camada oculta, que tem por finalidade extrair as informações nos dados, sendo também responsável pela maior parte do processamento destes dados;
uma camada de saída, que agrega os dados das camadas anteriores e ativa uma resposta adequada.
A camada de entrada não contém nenhum neurônio artificial. A sua dimensão é o número de covariáveis usadas no problema.
Cada camada de saída é composta por um ou mais neurônios, representados pelos círculos na região azul na Figura 4. Cada círculo é um neurônio composto por pesos sinápticos, um limiar de ativação, uma combinador linear e uma função de ativação.
A camada de saída é composta em geral por um único neurônio, com seus pesos, limiar de ativação, combinador linear e função de ativação. A saída do neurônio de saída é o \(\hat{y}\). A camada de saída pode ter mais de um neurônio, que é o caso dos problemas de classificação com mais de duas classes. Veremos isso mais adiante.
A função de ativação \(g\) tem o papel de restringir o valor da saída, além de capturar a não linearidade dos dados. Segue alguns exemplos.
\[ g(x) = \left\{ \begin{array}{ll} 1 &, \hbox{ se } x>0\\ 0 & , \hbox{ caso contrário}. \end{array} \right. \]
\[ g(x) = \left\{ \begin{array}{ll} 0 & , \hbox{ se } x< -0,5\\ x + 0,5 & , \hbox{ se } -0,5 \le x \le 0,5\\ 1 & , \hbox{ se } x > 0,5. \end{array} \right. \]
\[ g(x) = \tanh(x) =\dfrac{\sinh(x)}{\cosh(x)} = \dfrac{\dfrac{e^x - e^{-x}}{2}}{\dfrac{e^x + e^{-x}}{2}} = \dfrac{e^x - e^{-x}}{e^x + e^{-x}} = \dfrac{e^{2x} - 1}{e^{2x} + 1} . \]
Vale destacar que as funções de ativação, por terem o papel de restringir o valor da saída, apresentam imagem em um intervalo da reta. Para os exemplos citados vimos funções de ativação com imagem no intervalo \([0,1]\) e \([-1,1]\). Por esse motivo o modelo trabalha com variáveis respostas dentro destes intervalos. Caso a variável resposta do problema não esteja contida no intervalo definido pela imagem da função de ativação, é necessário realizar uma transformação nesta variável antes de ajustar o modelo. Por exemplo, a transformação a seguir leva o conjunto de valores observados de \(Y\), \(y_1, y_2, \ldots, y_N\), para o intervalo \([0,1]\): \[ \tilde{y}_i = \dfrac{y_i - \min\{y_i\}}{\max\{y_i\} - \min\{y_i\}}. \]
Se o modelo for usado para realizar previsões, essa transformação deve ser desfeita para que os valores previstos estejam em sua escala correta. Isso será melhor discutido e trabalhado ao longo do curso.