AULA02 Redes Neurais Artificiais REDES NEURAIS ARTIFICIAIS (RNA) • Uma RNA é composta de um número de unidades (neurônios artificiais) interconectadas, tendo cada unidade um comportamento específico (local). Neurônio básico: “Integrate-and-Fire” u(t) é o potencial de membrana, u (t ) u res du (t ) Rm i (t ) m dt ures é o potencial de repouso, Rm é a resistência ao fluxo de corrente i(t) é a soma das correntes geradas pelos neuronios pré-sinápticos, m é a constante de tempo da membrana O neurônio de McCulloch e Pitts (1943) • Consiste basicamente de um neurônio que executa conexões uma função lógica. excitatórias x2 • Os nós produzem somente resultados binários e as conexões transmitem xn exclusivamente zeros e uns. • As redes são compostas de conexões sem peso, de y1 tipos excitatórios e inibitórios. • Cada unidade é caracterizada por um certo conexões limiar (threshold) q. inibitórias x1 q ym A regra para avaliação de um neurônio McCulloch-Pitts • assume–se que a unidade recebe entradas excitatórias através de n conexões de entrada e entradas inibitórias através de m conexões de entrada. • Se m 1 e pelo menos um dos sinais y1, y2, ..., ym é 1, a unidade é inibida e a saída é 0. • Caso contrário, o total de entradas (x = x1 + x2 + ... xn) excitatórias é computado e comparado com o threshold q. Se x q a saída é 1 (a unidade dispara). Se x < q o resultado é 0. saída 1 0 q soma das entradas Exemplos: neurônios AND e OR and x1 or x1 Duas entradas: x2 x2 and or x1 Mais de 2 entradas: x1 x2 x2 x3 x3 x4 Outros exemplos nor x1 and ~x2 x1 x1 x2 not x2 x1 Rede neural com 3 neurônios McCulloch-Pitts x1 x2 x3 F 1 Função F = 1 para (0, 0, 1) e (0, 1, 0); F = 0 para outras entradas. McCulloch-Pitts (cont.) • Como qualquer função lógica pode ser implementada com funções AND, OR e NOT, em duas camadas, – Qualquer função lógica pode ser computada por uma rede de McCulloch-Pitts de duas camadas. • Como as conexões não tem pesos, – Os neurônios de McCulloch-Pitts não são possíveis de serem treinados, por não terem parâmetros livres. O neurônio genérico de Redes Neurais Artificiais (RNAs) • As principais partes de um neurônio genérico de RNAs são: – As sinapses (entradas), com seus pesos associados bias – A junção somadora e bk – A função de ativação. sinais de entrada x1 wk1 x2 wk2 função de ativação uk yk f(uk) saída junção somadora xm wkm pesos sinápticos • O primeiro subscrito k do peso sináptico wkj corresponde ao neurônio póssináptico, e o segundo subscrito à sinapse (ou neurônio pré-sináptico). O neurônio genérico (cont.) – A junção somadora soma todos os sinais de entrada multiplicados pelos respectivos pesos, além do bias bk. – A função de ativação tem a função de limitar a saída e introduzir não-linearidade ao modelo. – O bias bk tem o papel de aumentar ou diminuir a influência do valor das entradas. – É possível considerar o bias como uma entrada de valor constante 1, multiplicado por um peso igual a bk. wk0=bk (bias) entrada fixa x0=+1 wk0 x1 wk1 x2 wk2 sinais de entrada função de ativação uk yk f(uk) saída junção somadora xm wkm pesos sinápticos O neurônio genérico (cont.) • Matematicamente a saída pode ser expressa por: m y k f (u k ) f wkj x j bk j 1 ou considerando o bias como entrada de valor x0=1 e peso wk0=bk, m y k f (u k ) f wkj x j j 0 Função de ativação: semi-linear se puk 1 1 f (u k ) puk se 0 puk 1 0 se puk 0 p constantee positivo (a) (b) Função de ativação semi-linear (a) e sua derivada (b). Função de ativação logística (sigmóide) e puk 1 f (u k ) puk e 1 1 e puk f puk (1 u k ) 0 u k (a) (b) Sigmóide (a) e sua derivada (b). Função de ativação tangente hiperbólica e puk e puk f (u k ) tanh(puk ) puk e e puk (a) f p(1 u k2 ) 0 u k (b) Tangente hiperbólica (a) e sua derivada (b). ARQUITETURAS DE REDES NEURAIS ARTIFICIAIS • Existem basicamente 3 tipos básicos de arquiteturas de RNAs: – Feedforward de uma única camada – Feedforward de múltiplas camadas e – Redes recorrentes. Rede feedforward com uma única camada de processamento • Os neurônios da camada de entrada correspondem aos neurônios sensoriais que possibilitam a entrada de sinais na rede (não fazem processamento). o • Os neurônios da camada de saída fazem processamento. neurônio sensorial neurônio de processamento Rede feedforward com uma única camada de processamento (cont.) Matriz de pesos w10 w W 20 w00 w11 w1m w21 w2 m w01 w0 m 0 onde a primeira coluna de W é o vetor de bias. yi f (w i .x) f ( wij x j ), j 1,...,m. j Matricialmente y f (W.x) onde W o x m , w i 1 x m , i 1,...,o, x m x1 , e y o x1. Rede feedforward de Múltiplas Camadas • Essas redes tem uma ou mais camadas intermediárias ou escondidas. Rede feedforward de Múltiplas Camadas (cont.) Seja Wk a matriz de pesos da camada k. wijk corresponde ao peso da conexão do neurônio pós-sináptico i ao neurônio présináptico j na camada k. Em notação matricial: y f 3 (W3f 2 (W2f 1 (W1x))) REDES RECORRENTES Essas redes possuem pelo menos uma interconexão realimentando a saída de neurônios para outros neurônios da rede (conexão cíclica). Exemplo: Rede de Hopfield FASES DE UMA REDE NEURAL ARTIFICIAL • Uma rede neural artificial pode se encontrar em duas fases: • a primeira fase é a de aprendizagem, ou treinamento, em que a rede se encontra no processo de aprendizado, ajustando os parâmetros livres, para poder posteriormente desempenhar a função destinada; e • a segunda fase é a de aplicação propriamente dita, na função para a qual ela foi destinada, como de classificação de padrões de vozes, imagens, etc. Aprendizagem O processo de aprendizagem implica na seguinte sequência de eventos: 1) a rede neural é estimulada por um ambiente 2) a rede neural sofre modificações nos seus parâmetros livres como resultado desta estimulação 3) a rede neural responde de uma maneira nova ao ambiente, devido as modificações ocorridas na sua estrutura interna REGRA 1: APRENDIZAGEM POR CORREÇÃO DE ERRO Vetor de entrada Uma ou mais camadas de neurônios escondidos x(n) Neurônio de saída k yk(n) dk(n) - + ek(n) Um neurônio k da camada de saída, acionado por um vetor de sinal x(n) produzido por uma ou mais camadas de neurônios ocultos, que são, por sua vez, acionadas por um vetor de entrada (estímulo) aplicado aos nós de fonte (camada de entrada). O argumento n representa o instante de tempo discreto, do processo iterativo envolvido no ajuste de pesos sinápticos. O sinal de saida do neurônio k é representado por yk(n). O sinal de saída é comparado com uma resposta desejada, dk(n) e produzido um sinal de erro, ek (n). Por definição tem-se: ek (n) = dk (n) – yk (n) REGRA 1: APRENDIZAGEM POR CORREÇÃO DE ERRO (cont.) • O sinal de erro ek(n) aciona um mecanismo de controle, cujo proposito é aplicar uma sequência de ajustes corretivos aos pesos sinápticos do neurônio k. • Os ajustes corretivos são projetados para aproximar passo a passo o sinal de saída yk (n) da resposta desejada dk(n). • Este objetivo é alcançado minimizando-se uma função de custo ou índice de desempenho, E(n), definido em termos do sinal de erro como: E (n) = ½ ek2(n) REGRA 1: APRENDIZAGEM POR CORREÇÃO DE ERRO (cont.) • Em particular, a minimização da função de custo E(n) resulta na regra de aprendizagem normalmente referida como regra delta ou regra de Widrow-Hoff. • Supondo-se que wkj(n) represente o valor do peso sináptico wkj do neurônio k excitado por um elemento xj (0) do vetor de sinal x(n) no passo de tempo n. De acordo com a regra delta, o ajuste Dwkj (n) aplicado ao peso sináptico é definido por Dwkj (n) = h ek(n) xj(n) onde h é uma constante positiva que determina a taxa de aprendizado quando avança-se em um passo no processo de aprendizagem. • Em outras palavras, a regra delta pode ser formulada como: O ajuste feito em um peso sináptico de um neurônio, proporcional ao produto do sinal de erro pelo sinal de entrada da sinapse em questão. REGRA 1: APRENDIZAGEM POR CORREÇÃO DE ERRO (cont.) • Nota-se que o sinal de erro deve ser diretamente mensurável, ou seja, a resposta desejada deve ser fornecida por alguma fonte externa, e o neurônio k deve ser visível ao mundo externo. • Tendo calculado o ajuste sináptico, o valor atualizado do peso sináptico é determinado por: wkj (n + 1) = wkj (n) + Dwkj (n). REGRA 2: APRENDIZAGEM BASEADA EM MEMÓRIA • As experiências são armazenadas em uma grande memória de exemplos de entrada-saída classificados corretamente: {(xi,di)} i = 1...n, onde xi representa um vetor de entrada e di representa a resposta desejada correspondente. • Num problema de classificação de padrões binários, por exemplo, há duas classes a serem consideradas, C1 e C2, e a resposta desejada di assume valor 0 para a classe C1 e valor 1 para a classe C2. • Na classificação de um vetor de teste xteste, o algoritmo busca os dados de treinamento em uma vizinhança local de xteste. • Todos os algoritmos de aprendizagem baseada em memória envolvem dois aspectos essenciais: – o critério utilizado para definir a vizinhança local do vetor de teste, e – a regra de aprendizagem aplicada aos exemplos de treinamento na vizinhança local de xteste. Classificador de vizinho mais próximo • Em um tipo simples mas efetivo de aprendizagem baseada em memória conhecido como a regra do vizinho mais próximo, a vizinhança local é igual ao exemplo de treinamento que se encontra mais próximo do vetor de teste. • Em particular, dizemos que o vetor xN’ pertencente a {x 1, x 2, ..., x N } é o vizinho mais próximo de x teste se mini d(xi, xteste) = d(xN’, xteste ) onde d(xi, xteste) é a distância euclidiana entre os vetores xi e xteste. • A classe associada com o vetor de distância mínima, vetor xN’, é apresentada como a classificação de xteste. Classificador de k vizinhos mais próximos • A classificação Implica em: – identificar os k padrões classificados que se encontram mais próximos do vetor de teste, xteste, para um número inteiro k. – atribuir xteste à classe que está mais frequentemente representada nos k vizinhos mais próximos de xteste. • Assim, o classificador pelos k vizinhos mais próximos atua como um dispositivo que calcula a média. Em particular, ele discrimina um dado estranho, que é uma observação que tem um valor improvável em relação a um modelo de interesse. Exemplo de classificador de k vizinhos mais próximos • Na Figura tem-se o ponto d correspondente ao vetor de teste. Com k = 3, o classificador atribui a classe de quadrado escuro ao ponto d, mesmo ele estando perto ao dado estranho (círculo). d estranho REGRA 3: APRENDIZAGEM HEBBIANA • O postulado de aprendizado de Hebb é a mais antiga e mais famosa de todas as regras de aprendizagem, e é baseado no texto a seguir, contido no livro de Hebb (1949), The Organization of Behavior: – O peso de uma conexão sináptica deve ser ajustado se houver sincronismo entre as atividades: do neurônio présináptico e do neurônio pós-sináptico. – Em termos matemáticos Dwij (t ) hyi (t ) x j (t ) que significa que a mudança do peso sináptico Dwij(t) é proporcional ao valor do neurônio pós-sináptico yi(t) e ao valor do neurônio pré-sinático xj (t) multiplicado pelo fator de aprendizado h . Rede Neural baseado na regra de Hebb (Hebb net) • Algoritmo: Passo 0. inicializar todos os pesos: wi = 0 ( i = 1, ..., n) Passo 1. para cada par de vetor de treinamento (s) e alvo (t): a) atribuir o vetor de treinamento às unidades de entrada: xi = si ( i = 1,..., n). b) atribuir o alvo à unidade de saída: y=t c) ajustar os pesos: wi (novo) = wi (velho) + xi y (i = 1,..., n) ajustar o bias: b(novo) = b(velho) + y. Exemplo para AND, com entradas e saídas bipolares Entrada (x1 x2 1) (1 1 1) (1 -1 1) (-1 1 1) (-1 -1 1) Alvo 1 -1 -1 -1 PRIMEIRA ENTRADA: Entrada (x1 x2 (1 1 alvo 1) 1) 1 mudança nos pesos (Dw1 Dw2 Db) (1 1 pesos (w1 w2 b) (0 0 0) (1 1 1) 1) x2 Equação da reta: x2 + x1 +1 = 0 x1 Exemplo AND (Hebb net) (cont.) Segunda entrada: Entrada alvo (x1 x2 1) (1 -1 1) -1 Equação da reta: x2 = 0 Terceira entrada : Entrada alvo (x1 x2 1) mudança nos pesos (Dw1 Dw2 Db) (-1 -1) x2 x1 mudança nos pesos (Dw1 Dw2 Db) (-1 1 1) -1 (1 Equação da reta: x2 + x1 -1 = 0 Quarta entrada : Entrada alvo (x1 x2 1) 1 pesos (w1 w2 b) (0 0 0) (0 2 0) -1 -1) mudança nos pesos (Dw1 Dw2 Db) (-1 -1 1) -1 (1 Equação da reta: x2 + x1 – 1 = 0 1 -1) pesos (w1 w2 b) (0 0 0) (1 1 -1) pesos (w1 w2 b) (0 0 0) (2 2 -2) x2 1 1 -1 -1 x1 REGRA 4: APRENDIZAGEM COMPETITIVA • Na aprendizagem competitiva, os neurônios de saida de uma rede neural competem entre si para se tornarem ativos (disparar). • Somente um único neurônio de saída fica ativo num determinado instante. • Existem três elementos básicos em uma regra de aprendizagem competitiva: 1. um conjunto de neurônios que são todos iguais entre si, exceto pelos pesos sinápticos distribuídos aleatoriamente, e que por isso respondem diferentemente aos padrões de entrada; 2. um limite imposto sobre a força de cada neurônio; e 3. um mecanismo que permite que os neurônios compitam, de forma que somente um neurônio de saida, esteja ativo em um determinado instante. • O neurônio que vence a competição é denominado um neurônio vencedor (winner-take-all, em inglês). Um exemplo de algoritmo para aprendizagem competitiva • Seja X = (x1, x2, ..., xl) um conjunto de vetores de entrada normalizados num espaço n-dimensional que pretende-se classificar em k diferentes clusters. A rede consiste de k unidades, cada uma com n entradas e threshold zero. Passo 0. Os vetores peso normalizados w1, ..., wk são gerados aleatoriamente. Passo 1. Selecionar um vetor x j X aleatoriamente. Computar x j .wi para i = 1,..., k Selecionar wm tal que wm .xj wi .xj para i = 1, ..., k Passo 2. Substituir wm por wm + xj e normalizar Voltar para o passo 1. Ilustração de aprendizado competitivo para a separação de entradas em 3 classes (clusters) cluster B w1 x1 x2 w11 w12 w21 w2 cluster A w3 cluster C Cluster B Cluster A w22 w31 w32 Cluster C MODELOS DE APRENDIZAGEM Os principais modelos (paradigmas) de aprendizagem são: 1) supervisionado; 2) não-supervisionado; e 3) com reforço. SUPERVISIONADO • Também conhecida com aprendizagem com professor, consiste em que o professor tenha o conhecimento do ambiente, e fornece o conjunto de exemplos de entrada-resposta desejada. • Com esse conjunto, o treinamento é feito usando a regra de aprendizagem por correção de erro. Vetor de estado do ambiente ambiente professor Resposta desejada Resposta real + Sistema de aprendizagem - Sinal de erro NÃO-SUPERVISIONADO • Neste caso nao há um professor para supervisionar o processo de aprendizagem. Isso significa que não há exemplos rotulados da função a ser aprendida pela rede. • Nesse modelo, também conhecido como auto-organizado, são dadas condições para realizar uma medida da representação que a rede deve aprender, e os parâmetros livres da rede são otimizados em relação a essa medida. • Para a realização da aprendizagem não-supervisionada pode-se utilizar a regra de aprendizagem competitiva. Vetor de estado do ambiente ambiente Sistema de aprendizagem APRENDIZAGEM POR REFORÇO • Pode ser visto como caso particular de aprendizagem supervisionada. • A principal diferença entre o aprendizado supervisionado e o aprendizado por reforço é a medida de desempenho usada em cada um deles. • No aprendizado supervisionado, a medida de desempenho é baseada no conjunto de respostas desejadas usando um critério de erro conhecido, enquanto que no aprendizado por reforço a única informação fornecida à rede é se uma determinada saída está correta ou não. • A idéia básica tem origem em estudos experimentais sobre aprendizado dos animais. Quanto maior a satisfação obtida com uma certa experiência em um animal, maiores as chances dele aprender. crítico reforço/ penalidade RNA resposta