Redes Neurais Artificiais #1 — Conceito Básico

Original article was published by Francke Peixoto on Deep Learning on Medium


Perceptron
É o modelo mais simples e antigo de uma RNA, o perceptron é um classificador linear usado para previsões binárias.

Multi-layer
É mais sofisticada do que perceptron, uma RNA com várias camadas (por exemplo: Rede Neural Convolucional, Rede Neural Recorrente, etc …) é mais eficiente na solução de tarefas de classificação e regressão.

Funções de Ativação

🔘 Em redes neurais artificiais, a função de ativação de um nó define a saída desse nó, dada uma entrada ou conjunto de entradas.

Sigmoid

Uma função sigmóide é uma função matemática que possui uma curva em forma de “S” ou curva sigmóide.
Geralmente usado em casos que geram um conjunto de saídas de probabilidades entre 0 e 1.

Sigmoid(x)=11+e(−x)=ex1+exSigmoid(x)=11+e(−x)=ex1+ex

A função de ativação sigmóide é bastante usada em tarefas de classificação binária.

Code

Tan-h

Como a sigmoide, a função tan-h (tangente hiperbólica), também é sigmoidal (em forma de “S”), mas em vez disso gera valores que variam de -1 e 1

tanh(x)=21+e−2x−1tanh(x)=21+e−2x−1

Code

Softmax

Uma função softmax é usada para a classificação de várias classes. Ela calcula a distribuição de probabilidades do evento em diferentes eventos. As probabilidades calculadas são úteis para determinar a classe de destino para as entradas fornecidas.

Softmax(x)=ej∑ieiSoftmax(x)=ej∑iei

Code

Out[3]:

Text(0, 0.5, 'Softmax(x)')

ReLU

Uma ReLU (Unidade Linear Retificada) possui saída 0 se a entrada for menor que 0 e saída não é processada. Ou seja, se a entrada for maior que 0, a saída será igual à entrada.

ReLU(x)=max(0,x)ReLU(x)=max(0,x)

Code

Out[4]:

Text(0, 0.5, 'ReLU(x)')

Leaky ReLU

A Leaky ReLU funciona da mesma forma que a função de ativação ReLU, exceto que, em vez de substituir os valores negativos das entradas por 0, os últimos são multiplicados por um valor alfa, na tentativa de evitar o problema “morte de ReLU”.

LeakyReLU(x)={x,αx,if x > 0.otherwise.LeakyReLU(x)={x,if x > 0.αx,otherwise.

Code

Out[5]:

Text(0, 0.5, 'Leaky ReLU(x)')

Por que usamos funções de ativação?

Então.. ☕👌😌, sem uma função de ativação, deixaremos de introduzir a não linearidade na rede.
Uma função de ativação nos permitirá modelar uma variável de resposta (variável de destino, rótulo de classe ou pontuação) que varia de maneira não linear com suas variáveis explicativas.

“não linear significa que a saída não pode ser reproduzida a partir de uma combinação linear.”

Sem uma função de ativação não linear, uma rede neural artificial,se comportará como um Perceptron de camada única, porque a soma dessas camadas daria a você apenas outra Função linear.

Qual função de ativação é a 🏆 “melhor”?

🥱 Resposta: Não existe a “melhor” função de ativação.

O uso de uma função de ativação depende da tarefa com a qual você está lidando.
A tarefa é um problema de regressão ou classificação?
Se é um problema de classificação, então é uma classificação binária ou uma tarefa de classificação em várias classes?

tudo se resume à tarefa com a qual você está lidando.

https://www.kaggle.com/franckepeixoto/redes-neurais-artificiais-conceito-b-sico

Referências: