Redes Neurais Artificiais #1 — Conceito Básico
Redes Neurais Artificiais
🧠 Redes neurais artificiais (RNA), são sistemas de computação inspirados nas redes neurais biológicas.
RNA é um conjunto de neurônios conectados organizados em camadas.
Tipos de RNAs
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:
- Deep Learning Brasil (Em português) — Perceptron e Adaline
- Deep Learning Brasil (Em português) — Parametrização de redes neurais profundas
- Deep Learning Brasil (Em português) — Algoritmo da retropropagação de erros (Backpropagation) para redes multi-layer perceptron
- https://medium.com/@franckepeixoto/mlp-multilayer-perceptron-conceito-de-b%C3%A1sico-93afa91dd03e
- https://medium.com/@franckepeixoto/machine-learning-indaga%C3%A7%C3%B5es-f0fce290451c
- https://en.wikipedia.org/wiki/Artificial_neural_network
- https://en.wikipedia.org/wiki/Activation_function
- https://en.wikipedia.org/wiki/Sigmoid_function
- https://theclevermachine.wordpress.com/tag/tanh-function/
- http://dataaspirant.com/2017/03/07/difference-between-softmax-function-and-sigmoid-function/
- https://github.com/Kulbear/deep-learning-nano-foundation/wiki/ReLU-and-Softmax-Activation-Functions
- http://ml-cheatsheet.readthedocs.io/en/latest/loss_functions.html
- https://en.wikipedia.org/wiki/Backpropagation