Slides

Propaganda
Classificação de
Padrões
Abordagem prática com Redes Neurais
Artificiais
Agenda
●
●
●
●
Parte I - Introdução ao aprendizado de máquina
Parte II - Teoria RNA
Parte III - Prática RNA
Parte IV - Lições aprendidas
Aprendizado de
Máquina
Parte I
Aprendizado de máquina?
Aprendizado de máquina - machine learning - é um campo da
inteligência artificial, cujo objetivo é desenvolver algoritmos
capazes de aperfeiçoar seu desempenho ao realizar tarefas
específicas.
Exemplos de aplicações
●
●
●
●
●
●
Identificar fraudes
Reconhecer padrões em imagens
Recomendação de conteúdo
Análise de sentimentos baseada em texto
Filtragem de spam em e-mails
etc...
Tipos de aprendizado
●
●
●
Aprendizado supervisionado
Aprendizado não supervisionado
Aprendizado por reforço
Aprendizado supervisionado
●
●
Dividido em treinamento e classificação.
Exemplos: Identificação de spam e reconhecimento de
fraudes.
Aprendizado não supervisionado
●
●
Quando não existe conhecimento acerca dos dados.
Exemplos: Padrões de compras e consumo, agrupamento
de dados e mapeamento de perfil de usuários.
Aprendizado por reforço
●
●
Aplicado à sistemas dinâmicos e séries temporais.
Exemplos: Forecast e previsões financeiras.
Exemplos
Aprendizado Supervisionado
Redes Neurais
Artificiais - Teoria
Parte II
Redes Neurais Artificiais
São modelo computacionais inspirados no sistema nervoso
central biológico, capazes de aprender tarefas específicas.
Redes Neurais Artificiais
Quando aplicadas à classificação, é uma técnica de
aprendizado supervisionado, normalmente dividida em duas
fases: Treinamento e Classificação.
Separação dos dados
Separar os dados em duas partes:
●
●
70% para treino
30% para teste
Neurônio Biológico vs Artificial
Características importantes
●
●
O valor dos pesos são inicializados aleatoriamente
A função de transferência depende do problema
Treinamento - Neurônio Artificial
X0
X1
X2
S. Esperada
0
1
1
0
1
1
1
1
Treinamento - Neurônio Artificial
Entradas:
Pesos:
X0 = 0
X1 = 1
X2 = 1
W0 = 0.3
W1 = 0.1
W2 = 0.6
X0
X1
X2
S. Esperada
SIGMA (função de soma):
F. Transf. (Y):
0
1
1
0
1
1
1
1
U = (X0 * W0) + (X1 * W1) + (X2 * W2)
U = 0 + 0.1 + 0.6
U = 0.7
SE (U > 0.5)
Y=1
SENAO
Y=0
Treinamento - Neurônio Artificial
Entradas:
Pesos:
X0 = 0
X1 = 1
X2 = 1
W0 = 0.3
W1 = 0.1
W2 = 0.6
X0
X1
X2
S. Esperada
SIGMA (função de soma):
F. Transf. (Y):
0
1
1
0
1
1
1
1
U = (X0 * W0) + (X1 * W1) + (X2 * W2)
U = 0 + 0.1 + 0.6
U = 0.7
SE (U > 0.5)
Y=1
SENAO
Y=0
Treinamento - Neurônio Artificial
Entradas:
Pesos:
X0 = 1
X1 = 1
X2 = 1
W0 = 0.3
W1 = 0.1
W2 = 0.6
X0
X1
X2
S. Esperada
SIGMA (função de soma):
F. Transf. (Y):
0
1
1
0
1
1
1
1
U = (X0 * W0) + (X1 * W1) + (X2 * W2)
U = 0.3 + 0.1 + 0.6
U = 1.0
SE (U > 0.5)
Y=1
SENAO
Y=0
Treinamento - Neurônio Artificial
Entradas:
Pesos:
X0 = 1
X1 = 1
X2 = 1
W0 = 0.3
W1 = 0.1
W2 = 0.6
X0
X1
X2
S. Esperada
SIGMA (função de soma):
F. Transf. (Y):
0
1
1
0
1
1
1
1
U = (X0 * W0) + (X1 * W1) + (X2 * W2)
U = 0.3 + 0.1 + 0.6
U = 1.0
SE (U > 0.5)
Y=1
SENAO
Y=0
Acertou 50%, então vamos treinar
o modelo
Treinamento - Neurônio Artificial
Entradas:
Pesos:
X0 = 0
X1 = 1
X2 = 1
W0 = 0.1
W1 = 0.2
W2 = 0.3
X0
X1
X2
S. Esperada
SIGMA (função de soma):
F. Transf. (Y):
0
1
1
0
1
1
1
1
U = (X0 * W0) + (X1 * W1) + (X2 * W2)
U = 0 + 0.2 + 0.3
U = 0.5
SE (U > 0.5)
Y=1
SENAO
Y=0
Treinamento - Neurônio Artificial
Entradas:
Pesos:
X0 = 1
X1 = 1
X2 = 1
W0 = 0.1
W1 = 0.2
W2 = 0.3
X0
X1
X2
S. Esperada
SIGMA (função de soma):
F. Transf. (Y):
0
1
1
0
1
1
1
1
U = (X0 * W0) + (X1 * W1) + (X2 * W2)
U = 0.1 + 0.2 + 0.3
U = 0.6
SE (U > 0.5)
Y=1
SENAO
Y=0
Treinamento
●
●
Os valores dos pesos podem ser inicializados
aleatoriamente, pois serão ajustados durante o
treinamento
O conhecimento da rede neural está contido nos pesos
(um vetor)
Calculando o treinamento
Função de transferência - Sigmoid:
Ajustando o modelo
Função de custo a ser minimizada:
Ajustando o modelo
Derivando a função custo:
Dado que o fator delta corresponde a
multiplicação dos dados de entrada pelo
erro (diferença entre os valores esperados e
valores obtidos).
Redes Neurais
Artificiais - Prática
Parte III
Experimento Prático
Experimento prático baseado em Redes Neurais Artificiais. Os
requisitos são:
●
●
Implementação em Python 2.7 +
Instalação da biblioteca Numpy
Experimento Prático
O conjunto de treino possui 100 registros em duas dimensões
(x, y). Separamos esse conjunto em duas partes:
●
●
70% para treino
30% para teste
Experimento Prático
Implementando a função sigmoid:
Ajustando o modelo
Derivando a função custo:
Dado que o fator delta corresponde a
multiplicação dos dados de entrada pelo
erro (diferença entre os valores esperados e
valores obtidos).
Considerações
Finais
Parte IV
Considerações Finais
Alguns fatores importantes devem ser considerados:
●
●
●
O fator alpha, necessário para o treinamento deve ser
determinado
É necessário considerar um erro quadrático médio (SME)
mínimo para interromper o treinamento
A análise gráfica do modelo treinado só é possível até
três dimensões.
Considerações Finais
Alguns fatores importantes devem ser considerados:
●
●
●
A rede neural apresentada trata-se de um Perceptron de
Única Camada. Essa rede é restrita à problemas lineares.
Problemas não lineares podem ser tratados a partir de
Redes Neurais de Múltiplas Camadas (MLP).
Todos os dados processados por uma Rede Neural devem
ser convertidos em valores numéricos.
Links relacionados
A seguir, links relacionados com palestras sobre Redes Neurais Artificiais e
Aprendizado de Máquina:
●
●
●
Classificação de Documentos:
https://www.infoq.com/br/presentations/classificacao-de-documentos-b
aseada-em-inteligencia-artificial
Biblioteca Java para Aprendizado de Máquina:
https://www.infoq.com/br/presentations/machine-learning-em-java-com
-apache-mahout
Redes MLP: https://www.youtube.com/watch?v=F1C0k4Mf7ZM
Lições aprendidas
●
A maior parte das bibliotecas de ML são pouco flexíveis
quanto a parametrização, principalmente quanto ao
algoritmo de ajuste (treinamento).
●
A performance e o tempo de treinamento pode variar
bastante entre diferentes algoritmos de classificação.
Lições aprendidas
●
A separação dos conjuntos de treino e teste precisa ser
cuidadosa, pois pode induzir ao erro. A proporção 70 / 30
nem sempre precisa ser respeitada.
●
Em algumas situações é possível obter resultados
melhores aplicando redução de dimensionalidade nos
dados.
Download