RN Aula Pratica 1 2021 1
RN Aula Pratica 1 2021 1
RN Aula Pratica 1 2021 1
•Ciência de dados
•Desenvolvimento web
•Visão computacional
•Robótica
Python – Uma breve introdução
●
Uma característica atrativa para novos usuários desta
linguagem de programação é a facilidade de aprendizado,
por conta do estilo de tipagem dinâmica.
●
Além disso, Python permite uma leitura simples do
código.
Fonte: https://github.blog/2019-01-24-the-state-of-the-octoverse-machine-learning/
Configuração do ambiente Python
●
Para as aulas práticas desta disciplina, usaremos os
seguintes pacotes:
•Numpy
•Matplotlib
•Tensorflow
•Scikit-Learn
•Pandas
•Seaborn
●
As instruções detalhadas para a instalação e
configuração do ambiente necessário para as atividades
práticas estão presentes no arquivo “Tutorial –
Configuração para aulas práticas Python”
Criando uma Rede Neural do zero
●
Como visto nas aulas de teoria, Redes Neurais são
modelos computacionais com diferentes aplicações, como
classificação de padrões, previsão de séries temporais, entre
outros.
●
Sob a perspectiva matemática, as operações utilizadas
neste modelo (que foram discutidas em sala de aula) não são
extremamente complexas.
Criando uma Rede Neural do zero
●
Neste primeiro contato de Redes Neurais, criaremos o
sistema de Redes Neurais sem o auxílio de Frameworks
tradicionais, como Tensorflow.
●
Algumas vantagens deste tipo de abordagem:
•Melhor assimilação da arquitetura e o funcionamento de
Redes Neurais, que foram apresentados em sala de aula.
•Melhor compreensão, em um nível menor de abstração, das
operações matemáticas e etapas de Redes Neurais.
•Olhar mais crítico para mudanças na arquitetura e suas
implicações no resultado.
Criando uma Rede Neural do zero
●
O arquivo que iremos utilizar para esta prática
(RN_ex1.ipynb) contém a estrutura básica para a
construção do modelo de Redes Neurais.
●
Etapas:
1. Regra de propagação.
2. Função de ativação.
3. Etapa Feedforward.
4. Retropropagação dos erros.
5. Atualização dos pesos.
6. Treinamento do modelo.
Criando uma Rede Neural do zero
●
#1 - Regra de propagação
●
Lembrando a regra de um neurônio, na forma matricial
●
Em Python, usaremos a função np.dot(X,W) para calcular o valor
de net, da seguinte forma:
●
Lembrete: verifique a dimensão dos vetores e matrizes da equação
para evitar problemas.
Criando uma Rede Neural do zero
#2 - Função de ativação.
●
●
Funções populares:
●
Sigmoide
●
Tansig
Criando uma Rede Neural do zero
●
#3 – Etapa Feedforward.
●
Até o momento, sabemos como calcular a saída de uma camada da
rede. Podemos generalizar o processo para uma quantidade arbitrária
n de camadas escondidas. Por exemplo, para apenas uma camada
escondida:
Criando uma Rede Neural do zero
●
#4 – Retropropagação dos erros.
●
A fórmula de cálculo do erro depende da camada:
●
Camada de saída:
●
Camada intermediária:
Criando uma Rede Neural do zero
#5 – Atualização dos pesos.
●
●
A atualização dos pesos depende do erro calculado,
seguindo a fórmula:
Criando uma Rede Neural do zero
●
#6 - Treinamento.
●
A etapa de treinamento de uma Rede Neural engloba todos os
passos realizados anteriormente.
for epoch in epochs
for p in patterns
Aplica o processo feedforward (Etapa 3)
Calcula o erro para cada camada do modelo (Etapa 4)
Calcula a variação dos pesos (Etapa 5)
Acumula a variação dos pesos
Criando uma Rede Neural do zero
●
#7 - Generalização.
●
A última etapa para a criação do script de Redes Neurais
é a generalização.
●
Com o modelo com seus pesos já ajustados, a utilização
do algoritmo para generalização é feita usando a etapa
Feedforward.
●
Como a saída da rede não é categórica, para problemas
de classificação é necessário ajustá-lo (e.g. usar threshold
para classificação binária)
Ferramentas para Redes Neurais
●
Em problemas reais, é comum o uso de ferramentas que tornem o
desenvolvimento e o teste de configurações bastante práticas.
●
Estes Frameworks possuem as funções básicas já implementadas,
e portanto a declaração de um modelo de Rede Neural é mais simples.
●
Algumas distribuições conhecidas:
●
PyTorch
●
Tensorflow
Ferramentas para Redes Neurais
●
Nesta aula prática (e também nas listas de exercícios), escolhemos
a ferramenta Keras para a criação de modelos de Redes Neurais.
●
Para as atividades propostas neste curso, a biblioteca Keras
disponibiliza as funcionalidades essenciais, projetado essencialmente
para ser uma alternativa mais fácil de usar.
Ferramentas para Redes Neurais
●
Exemplo: Base de dados MNIST.
●
Código disponível no arquivo RN_ex.ipynb
Ferramentas para Redes Neurais