Você está na página 1de 49

Redes Neurais

Disciplina: Inteligência Artificial


Prof: Fernando Buarque Lima Neto

Redes Neurais Artificiais


Alunos
Antônio Alencar
Daniel Negreiros

Recife, dezembro de 2013


introdução
 Sistemas computacionais convencionais são bons em
 Rápida aritmética;
 Fazer exatamente o que são programados para fazer.

 Mas não são tão bons em


 Interagir com dados ruidosos ou dados do ambiente;
 Paralelismo massivo;
 Tolerância a falhas;
 Adaptação às circunstâncias.

 Um grande desejo do homem tem sido a criação de uma máquina que possa operar
independentemente do controle humano.
A inspiração
 O cérebro humano é o mais fascinante processador baseado em carbono existente.
 O sistema nervoso é formado por um conjunto extremamente complexo de células, os
neurônios.
 funcionamento e comportamento
A Sinapse

 É a estrutura dos neurônios através da qual ocorrem os processos de comunicação


entre os mesmos.
 passagem do sinal neural através de processos eletroquímicos específicos, isso graças a
certas características particulares da sua constituição.

 Em uma sinapse os neurônios não se tocam, permanecendo um espaço entre eles


denominado fenda sináptica.

 O sinal nervoso, que vem através do axônio da célula pré-sináptica chega em sua
extremidade e provoca na fenda a liberação de neurotransmissores depositados
em bolsas chamadas de vesículas sinápticas.

 Este elemento químico se liga quimicamente a receptores específicos no neurônio


pós-sináptico, dando continuidade à propagação do sinal.
A Sinapse – Cont.
 Em média, cada neurônio forma entre mil e
dez mil sinapses.

 O cérebro humano possui cerca de 1011


neurônios, e o número de sinapses é de mais de
1014, possibilitando a formação de redes muito
complexa.
Um Breve Histórico
 1943 - McCULLOUGH e PITTS estabeleceram as bases da neurocomputação, com modelos
matemáticos.
 processo eletrônico; "neurônios formais“; neurônio possuía apenas uma saída

 1949 - HEBB traduziu matematicamente a lei de aprendizagem para as sinapse dos


neurônios biológicos. Em “The Organization of Behavior”
 Capacidade da aprendizagem → Alteração da eficiência sináptica
 Pesos das conexões adaptados → Eficiência sináptica

 1951 - MINSKI constrói o Snark, primeiro neurocomputador com capacidade de


aprendizado

 1956 - Darthmouth College: dois paradigmas da I.A , a simbólica e o conexionista.

 1957 – ROSENBLATT concebeu o "perceptron", que era uma rede neural de duas camadas,
usado no reconhecimento de caracteres.
Um Breve Histórico - Cont
 1962 - WIDROW desenvolveu um processador para redes neurais
 fundou a primeira empresa de circuitos neurais digitais, a Memistor Corporation.

 1967 - Fim das verbas destinadas à pesquisa de redes neurais.


 previsão pouco confiável para a época

 1974 - WERBOS lançou bases para o algorítmo de retropropagação


(backpropagation).

 1983 - Hopfield publica artigo que promove parte da retomada das pesquisas na
área.

 1987 - Ocorre a primeira conferência de redes neurais em tempos modernos, a IEEE


International Conference on Neural Networks
Neurocomputação
 Os modelos neurais, procuram aproximar o processamento dos
computadores ao cérebro. 
Aspectos técnicos

 O neurônio artificial é uma estrutura lógico-matemática que


procura simular a forma, o comportamento e as funções de um
neurônio biológico.
Aspectos técnicos - cont

 Redes Neurais Artificiais (RNA)


 Solucionar problemas de inteligência artificial
 Através de circuitos que simulem
 Cérebro humano
 Seus comportamentos
 Aprendizado
 Erros
 Associações

 Estrutura
 Na forma de um grafo direcionado
 Distribuído paralelamente
 Com restrições e definições próprias
Características Gerais das RNA

 Composta por várias unidades de


processamento.
 Essas unidades, geralmente são
conectadas por canais de comunicação
que estão associados a determinado peso.
 As unidades fazem operações apenas
sobre seus dados locais.
 O comportamento inteligente de uma Rede Neural Artificial vem das interações
entre as unidades de processamento da rede.
Aspectos técnicos - cont

 RNA ajudam quando


 Não podemos formular uma solução algorítmica
 Podemos obter muitos exemplos do comportamento que desejamos
 Precisamos extrair uma estrutura dos dados existentes
A Rede Neural Artificial

 Sistema de neurônios
(perceptrons)
 Ligados por conexões
sinápticas
 Arranjados em
camadas
 Classificação das
camadas
 Camada de Entrada
 Camadas
Intermediárias ou
Ocultas
 Camadas de Saída
Redes Neurais Artificiais

SENTIDO DOS SINAIS


Topologia

 Rummelhart
 Possui no mínimo a camada de entrada
e a de saída;
 Neurônios da mesma
camada não se
comunicam;
 Comunicação
unidirecional.
Topologia

 Hopfield
 Comportamento dinâmico
 Multidirecionamento de dados
 Sem camadas distintas
 Mais complexo
Ciclos
 Redes diretas
 Não possui ciclos
 Pode ser em camadas

 Redes com ciclos


 Contém pelo menos um ciclo
 Chamadas
 Redes com realimentação
 Redes com Feedback

 Redes simétricas
 Caso particular das redes
com ciclos
Processos de Aprendizado

 A propriedade mais importante das redes neurais


é a habilidade de aprender de seu ambiente e com
isso melhorar seu desempenho.
 Isso é feito através de um processo iterativo de
ajustes aplicado a seus pesos, o treinamento.
 O aprendizado ocorre quando a rede neural
atinge uma solução generalizada para uma classe
de problemas.
Aprendizado de uma rede neural artificial

 Por independência de quem aprende:


Memorização, Contato, Analogias.
 Por retroação do mundo:
Realimentação(ou não) do mundo exterior.
Supervisionado(agente externo)
Não-supervisionado(ausência dele)
Aprendizado Supervisionado

 Quando é utilizado um agente externo que indica à rede a


resposta desejada para o padrão de entrada;
Aprendizado Não
Supervisionado
 Quando não existe uma agente externo indicando a resposta
desejada para os padrões de entrada;
Aprendizado de uma rede neural artificial

 Por finalidade do Aprendizado


 Auto-Associador
 (memorizar coleção de exemplos)
 Hetero-Associador
 (variação do Auto-Associador usando pares)

 OBS: É necessário um ‘Detector de Regularidades’


Perceptron

 1957 – Frank Rosenblatt

Ativação Propagação - degrau


Perceptron

 Treinamento
 O treinamento consiste em ajustar os seus pesos W1, ..., Wm
 Algoritmo de Aprendizado:

 Ajustes de pesos:
Perceptron

 Limitações
Adaline
 1958 – Bernard Widrow
 Tem os pesos adaptados em função do erro de sua saída linear, antes da
aplicação da função de ativação
 Tem o objetivo de minimizar o erro das saídas
 E = 1/2 (td - od)2
 Madaline – Muliples ADALINE
MLP
 1986 – Rumelhart
 Algoritmo Backpropagation
 Aprendizado supervisionado
Algoritmo Backpropagation

• Fase forward
Entrada é apresentada à primeira camada da rede e
propagado em direção às saídas
Algoritmo Backpropagation

• Fase backward
A camada de saída calcula o erro da rede
Algoritmo Backpropagation

• Fase backward
Corrige os pesos
Etapas para o Desenvolvimento de
Aplicações
Passos necessários:
1. Coleta de dados;
2. Separação em conjuntos;
3. Configuração da rede;
4. Treinamento;
5. Teste;
6. Integração
Desenvolvimento de Aplicações
1 e 2. Coleta de Dados e Separação em Conjuntos:
- Análise cuidadosa(evitar ambiguidades);
- Dados significativos;
- Devem cobrir exceções e condições limite;
- Separação dos dados(treinamento e teste);
- Conjuntos colocados em ordem aleatória;
- Podem ser pré-processados
Desenvolvimento de Aplicações
3. Configuração da Rede:

Determinar: Paradigma Neural


Topologia da Rede
Parâmetros do Algoritmo

OBS: Há metodologias, ‘dicas’ e ‘truques’!


Desenvolvimento de Aplicações
4. Treinamento :
- Ajustes dos pesos das conexões;
- Fator importante: Tempo de treinamento;
- Problema: Overtraining!
- Quando parar?
Taxa de erro: Mínima
Capacidade de Generalização: Máxima
Desenvolvimento de Aplicações
5. Teste:
- Determina a performance da rede;
- Análise dos pesos atuais(eliminar discrepâncias);
6. Implementação:
- Integrada em um sistema do ambiente operacional
da aplicação;
- Deve conter facilidades(ex: interface conveniente)
- Monitoramento e manutenção da rede;
- Novas versões/Novos produtos.
Aplicações de Redes Neurais

Análise de Diagnose
mercado Proc. voz
médica

Análise de Interfaces
crédito

Det. fraudes
Proc. sinais

Data mining
Nossa Aplicação

 Ataques e intrusões
 Ferramentas tradicionais dependem de conhecimento prévio e
não são capazes de detectar novos ataques
 Segurança de sistemas interconectados tornou-se requisito
obrigatório
 Problema: Criar uma ferramenta que detecte ataques conhecidos e
desconhecidos, afim de evitar intrusões na rede
Nossa Aplicação

 Este trabalho investiga a aplicação de redes neurais artificiais no


auxílio à detecção de intrusão em redes de pacotes TCP/IP,
utilizando a capacidade de generalização das redes neurais
Base de Dados

 Os dados utilizados para treinamento e testes da rede neural


correspondem a subconjuntos da base de dados disponibilizada na
competição internacional de mineração de dados KDD Cup –
Knowledge Discovery and Data Mining Competition - em 1999 e
gerados em projeto de análise de sistemas de detecção de intrusão
realizado no MIT
 A base de dados resultante possui aproximadamente 5.000.000 de
registros de conexões, dos quais usamos apenas alguns milhares.
 Cada conexão é caracterizada por 9 variáveis, classificadas em 1
categoria: Características básicas TCP/IP
Base de Dados

 As variáveis da base de dados do KDD Cup 1999 não estavam


normalizadas e, portanto, não podiam ser apresentadas como
entrada de uma rede neural. Foi realizado um pré-processamento
destes dados convertendo todas as variáveis para valores
numéricos, normalizados dentro do intervalo [0,1]
Base de Dados

 Numero de Amostras
 Utilizamos 2100 amostras na base de dados. Destas 100 para
treinamento e 2000 para teste
 Entrada
 São 9 características de entradas utilizadas que são atributos que
caracterizam conexões TCP/IP
 Saída
 São 5 saídas possíveis que de acordo com o seu valor que é uma
tupla
 O índice que possuir o maior valor será o “vencedor”
Atributos (Entrada)
MLP
Saída
Resultados
Conclusão

 Apresentamos resultados obtidos com a aplicação de redes


neurais MLP ao problema de detecção de intrusos em redes
TCP/IP
 Taxas de acerto acima de 97% foram obtidas para as
configurações testadas.
 Finalmente, a utilização de redes neurais pode aumentar a
precisão da resposta do sistema, simultaneamente diminuindo a
quantidade de falsos-positivos
Considerações finais

 Apesar da neurocomputação ter praticamente nascido juntamente


com a computação programada nas décadas de 40 e 50, deve-se
salientar que a implementação de uma rede neural naquela época
era inviável, pois a fase de aprendizado, a fase mais difícil e
demorada no desenvolvimento de uma rede, dependia (e ainda
depende) de complicados algoritmos e de um número grande de
iterações, algo que um ENIAC em 1946 não teria a capacidade
apropriada para realizá-las

 Hoje, com a tecnologia que dispomos, a implementação das redes


neurais tem sido facilitada
Referências Bibliográficas
Fundamentos de Redes Neurais, exemplos em JAVA, Valença, Mêuser, editora
Livro Rápido, 2ª edição

http://www.icmc.usp.br/~andre/research/neural/

http://www.din.uem.br/ia/neurais/

http://en.wikipedia.org/wiki/Artificial_neural_network

http://ulcar.uml.edu/~iag/CS/Intro-to-ANN.html
Redes Neurais
Disciplina: Inteligência Artificial
Prof: Fernando Buarque Lima Neto

Redes Neurais Artificiais


Alunos
Antônio Alencar
Daniel Negreiros

Recife, dezembro de 2013

Você também pode gostar