Inteligência Artificial IA Conexionista: Redes Neurais Artificiais Conceitos básicos Perceptron Renan Rosado de Almeida [email protected] Inteligência Artificial • Historicamente, a IA clássica, seguiu o paradigma da computação simbólica. • A manipulação de símbolos é muito eficiente, permitindo uma interação fácil com o usuário. • Porém este paradigma enfrenta grande dificuldade para lidar com problemas reais, contínuos e desconhecidos. • Abordagens alternativas como as redes neurais originaram a IA conexionista. Abordagem Conexionista • Redes Neurais Artificiais (RNAs) são uma abordagem bottom-up. • A semântica do domínio não precisa ser introduzida explicitamente no sistema. • O sistema pode induzir este conhecimento, através de um processo de aprendizagem. • Porém o conhecimento aprendido não é facilmente interpretável pelo usuário. Aplicações das Redes Neurais • As RNAs são aplicadas em diversas áreas que envolvem: • • • • Reconhecimento de padrões Aproximação de funções Previsão de séries temporais Tarefas de classificação • Exemplos de aplicação: • • • • • Reconhecimento de imagens Reconhecimento de voz Reconhecimento de caracteres Identificação de impressões digitais Diagnóstico médico Aplicações das Redes Neurais • Análise de investimentos: prever o comportamento de ações da bolsa de valores, observando o comportamento anterior. • Análise de assinaturas: mecanismo para comparar assinaturas com outras armazenadas. • Monitoramento: estado de motores (vibração, som), detecção de falhas. • Avaliação de crédito, análise do risco de falência e identificação de fraudes em cartões. Inspiração biológica • Nós processamos informações de forma diferente que os computadores convencionais. • O cérebro humano possui uma grande quantidade de neurônios (100 bilhões) que operam a velocidades muito mais baixas que as portas digitais, porém executam o processamento da informação de forma paralela e distribuída. • Tais características das redes neurais as tornam eficientes em tarefas computacionalmente complexas como a percepção visual e a compreensão da fala. O neurônio biológico O neurônio biológico • O neurônio é composto por um corpo celular (soma), ramificações que recebem as entradas (dendritos) e por um prolongamento (axônio) que transmite os sinais do corpo celular. • As extremidades do axônio são conectadas com dendritos de outros neurônios pelas sinapses, formando grandes redes. • Sinapses são as regiões de comunicação entre os neurônios, onde as extremidades (próximas) de neurônios vizinhos se encontram e o estímulo passa de um neurônio para o seguinte por meio de mediadores físico-químicos (neurotransmissores). O neurônio biológico • Dos axônios são libertadas substâncias (neurotransmissores), que atravessam a fenda e estimulam receptores nos dendritos, transmitindo o impulso nervoso de um neurônio para o outro. Conceitos de RNAs • “Redes Neurais Artificiais (RNAs) são sistemas físicos celulares que podem adquirir, armazenar e utilizar conhecimento extraído da experiência, por meio de algoritmos de aprendizagem”. [Engel] • O elemento processador básico da rede (célula) é o neurônio artificial. • A computação por rede neural é realizada por uma malha de nós processadores (neurônios) conectados. • O conhecimento em uma rede neural é codificado através dos pesos sinápticos das conexões entre estes neurônios. • Algoritmos de aprendizagem em RNAs ajustam os valores dos pesos sinápticos à um determinado problema específico. Conceitos de RNAs • Neurônio (nó): função elementar. Calcula um valor de saída, função dos valores de entrada do nó e dos pesos sinápticos correspondentes. • Conexão: ligação entre dois nós. Determina o caminho para o fluxo de informação. • Pesos sinápticos: determinam a força de conexão entre dois nós. • Topologia da rede: grafo direcionado rotulado, determina a conectividade da rede. Exemplo de uma rede multicamadas Perceptron • Primeiro modelo de neurônio artificial, proposto por Rosenblatt (1958), para aprendizagem supervisionada. • “É a forma mais simples de uma rede neural usada para classificação de padrões ditos linearmente separáveis”. [Haykin] • Consiste, na forma básica, de apenas um nó que modela um neurônio biológico. Perceptron (cont.) • O perceptron realiza a soma ponderada de suas entradas, produzindo a saída 1 se a soma for maior que um valor inicial ajustável; caso contrário sua saída é zero. Funções de ativação • A função de ativação, φ(v), define a saída de um neurônio em termos do potencial de ativação. • É responsável pela determinação da forma e da intensidade de alteração dos valores de saída. • As funções de ativação mais utilizadas são: Funções de ativação (cont.) Exemplo • Implementação de funções lógicas por perceptrons. w0 = w1 = w2 = 0,5 Dado: Função sinal: +1 ϕ(v) = −1 se v ≥ 0 se v < 0 Qual função lógica está sendo implementada? v = w0 + w1 x1 + w2 x2 v = 0,5 + 0,5 x1 + 0,5 x2 x1 x2 x1 x2 v y=φ(v) -1 -1 -1 -1 -0,5 -1 -1 +1 -1 +1 +0,5 +1 +1 -1 +1 -1 +0,5 +1 +1 +1 +1 +1 +1,5 +1 Função OU A superfície de decisão do perceptron • A funcionalidade de um perceptron equivale a uma tomada de decisão segundo uma superfície de decisão linear no espaço de entrada. w0 + w1 x1+w2 x2=0 Treinamento do perceptron • O algoritmo de aprendizagem do perceptron pode ser assim descrito: Se o perceptron dispara quando não deve disparar, diminua cada wi de um número proporcial a xi. Se o perceptron deixa de disparar quando deveria, aumente cada wi de um número proporcial a xi. Regra de aprendizagem do perceptron: w(n + 1) = w(n) + η(d (n) − y (n)) . x(n) Onde: w(n) é o vetor de pesos η é a constante de correção de erro d(n) é a saída desejada y(n) é a saída fornecida x(n) é o vetor de entrada Exemplo • Treine um perceptron para modelar a função OU. (até n=4) Dado: w(0) = [0 0 0] ; ž=0,5 x1 x2 d -1 -1 -1 -1 +1 +1 +1 -1 +1 +1 +1 +1 Arquivo de treinamento n=0 rT r v ( n) = w ( n) . x ( n) + 1 v(0) = [0 0 0] − 1 = 0 − 1 Função sinal: +1 ϕ(v) = −1 se v < 0 w(n + 1r) = w(nr) + η(d (n) − y (n)). x(n) v(n) = wT (n) . x (n) y(0)=+1 d(0)= -1 r r r r r w(1) = w(0) + 0,5(−1 − (+1)). x (0) = w(0) − x (0) 0 + 1 − 1 r w(1) = 0 − − 1 = + 1 0 − 1 + 1 se v ≥ 0 y(0) = ϕ(0) Propagação. Errou! Classificação das RNAs • As redes neurais podem ser classificadas segundo as seguintes características básicas: Tipo de entrada Forma de conexão Tipo de aprendizado Classificação das RNAs: Tipo de entrada • Quanto ao tipo de valores de entrada, as redes neurais podem ser: Binárias: as que possuem entradas discretas, tais como 0 e 1, -1 e 1. Intervalares: as que aceitam qualquer valor numérico como entrada (números reais) Classificação das RNAs: Forma de conexão • Quanto à forma de conexão entre os neurônios: Redes alimentadas adiante (feedforward) - neurônios estão dispostos em camadas conectadas por pesos unidirecionais na direção da entrada para a saída. Classificação das RNAs: Forma de conexão (cont.) • Quanto à forma de conexão entre os neurônios: Redes recorrentes (feedback) - um neurônio pode receber entradas de qualquer outra camada da rede. Tais como as redes com realimentação, nas quais os neurônios da entrada recebem sinais vindos diretamente dos neurônios da saída. Classificação das RNAs: Tipo de aprendizado • Quanto ao tipo de aprendizado da rede neural: Supervisionado – quando se dispõe de exemplos de padrões de entrada juntamente com os respectivos valores de saída. Exemplo: Perceptron Não-supervisionado – quando não se dispõe de exemplos de padrões de entrada juntamente com os respectivos valores de saída. Neste caso, os neurônios ficam responsáveis por aprender protótipos de agrupamentos de dados de entrada com características similares (centros de clusterização). Exemplo: Mapas Auto-Organizáveis (SOM) Exemplo prático: desenvolvimento de uma RNA • Implementação da função OU no Matlab. Código Matlab: perceptron_OU.m • Passos: Definir os padrões de treinamento (pares entrada e saída desejada) – aprendizado supervisionado Definir os parâmetros da rede Treinar a rede Testar a rede Caso o modelo gerado não seja satisfatório, alterar os parâmetros da rede e treinar a rede novamente. Exemplo prático: desenvolvimento de uma RNA (cont.) • Implementação da função OU no Matlab. Código Matlab: perceptron_OU.m Exemplo prático: desenvolvimento de uma RNA (cont.) • Implementação da função OU no Matlab. Código Matlab: perceptron_OU.m • Convergiu para uma solução, pois a função lógica OU é linearmente separável, e portanto pode ser implementada por apenas um perceptron. Exemplo prático: desenvolvimento de uma RNA (cont.) • Já no caso da função XOR, que é não-linearmente separável, percebemos que a resposta gerada pelo perceptron não converge. Código Matlab: (perceptron_XOR.m) • Na próxima aula veremos uma ferramenta para tratar problemas não-linearmente separáveis (perceptrons de múltiplas camadas). Características das RNAs • Vantagens das redes neurais: Generalização: capazes de generalizar o conhecimento a partir de exemplos anteriores. Apresentam bons resultados mesmo com entradas incompletas ou imprecisas. Adaptação Tolerância a falhas Não exigem tanta aquisição do conhecimento Características das RNAs • Limitações das redes neurais: Não fornecem explicações: relação entre entrada/saída é obscura – efeito “caixa preta”. Falta de um formalismo na especificação e análise: necessidade de realizar árduas simulações até encontrar parâmetros e topologia adequados. Tempo de treinamento grande Necessitam muitos exemplos de treinamento Bibliografia * Redes Neurais: princípios e prática. HAYKIN, Simon. Porto Alegre: Bookman, 2001 Redes Neurais Artificias: fundamentos e aplicações. KOVÁCS, Zscolt. São Paulo, 2002. Anotações da disciplina CMP121 - Redes Neurais, UFRGS. Prof. Paulo Engel. Bibliografia Materiais didáticos: UFRJ - Tópicos Especiais em Redes Neurais http://equipe.nce.ufrj.br/thome/grad/nn/curso/mdidatico.htm PUC-RIO - Notas de aula de Redes Neurais (ELE1361) http://www.ica.ele.puc-rio.br/ UFRGS – Prof. Paulo Engel. Redes Neurais (CMP121) http://www.inf.ufrgs.br/~engel/ UFRGS – Prof. Luis Otavio. Inteligência Artificial(INF01048) http://www.inf.ufrgs.br/~alvares/