400 likes | 527 Views
AULA03. PERCEPTRON (CONTINUAÇÃO). Perceptron de duas entradas e um bias. f(u). Com os parâmetros w 0 , w 1 e w 2 , a função f(u) separa o espaço de entradas em duas regiões , usando uma linha reta dada por: w 1 x 1 + w 2 x 2 + w 0 = 0. Separação Linear.
E N D
AULA03 PERCEPTRON (CONTINUAÇÃO)
Perceptron de duas entradas e um bias f(u) Com os parâmetros w0, w1 e w2, a função f(u) separa o espaço de entradas em duas regiões, usando uma linha reta dada por: w1x1 + w2x2 + w0 = 0
Separação Linear • Sabe-se que se formarmos uma combinação linear de duas variáveis, e igualá-la a um número, então os pontos no espaço bidimensional podem ser divididos em três categorias: • a) pontos pertencentes à linha com coordenadas tais que w1. x1 + w2 . x2 = q • b) pontos em um lado da linha tem coordenadas tais que w1 . x1 + w2 . x2 < q • c) pontos no outro lado da linha tem coordenadas tais que w1 . x1 + w2 . x2 > q. pois Nota: bias b = - q
Exemplo Pontos 2x1+3x2 posição (x1 , x2 ) (0.0, 2.0) 6 linha (1.0, 1.0) 5 abaixo (1.0, 2.0) 8 acima (2.0, 0.0) 4 abaixo (2.0, 0.66) 6 linha (2.0, 1.0) 7 acima Posição dos pontos em função da linha 2 x1 + 3 x2 = 6 de delimitação. x1 Linha: 2 x1 + 3 x2 = 6 Acima: 2 x1 + 3 x2 > 6 q = 6 Abaixo: 2 x1 + 3 x2 < 6
Problema do XOR (ou-exclusivo) No caso do XOR, não existe uma única reta que divide os pontos (0,0) e (1,1) para um lado, e (0,1) e (1,0) do outro lado. Função xor Conclui-se que um neurônio do tipo perceptron não implementa uma função ou-exclusivo ( constatado por Minsky & Papert, em 1969).
É claro que nenhuma combinação linear ou linha reta pode ser traçada tal que as entradas (0, 0) e (1, 1) fiquem numa categoria e (0, 1) e (1, 0) numa outra categoria, conforme demonstração: Algebricamente tem-se: significando que os dois pontos ficam num lado da linha L1. Mas, somando as duas inequações tem-se: o que significa que (1,1) estaria no mesmo lado da linha L1, o que é indesejável.
PERCEPTRONS MULTICAMADAS A função XOR está além da capacidade de um perceptron simples. Contudo, um perceptron simples pode implementar funções lógicas elementares: AND, OR e NOT. Assim, se uma função pode ser expressa como uma combinação dessas funções lógicas elementares, então essa função pode ser implementada usando mais neurônios. Por exemplo, XOR pode ser expressa por: (x1 or x2 ) and (not (x1 and x2 )).
Separação linear para XOR de duas camadas Em termos de separação linear (demarcação), isso equivale ao traçado de duas linhas. A parte acima da linha L1 corresponde à função OR, e a parte abaixo da linha L2 corresponde à função NOT AND. A área entre as duas linhas corresponde à função XOR, o que corresponde à área ABCD, que contem os pontos (0,1) e ( 1,0).
Delimitação de um cluster usando 3 separações no espaço de entradas
Delimitação de um cluster circular Infinitos neurônios na camada escondida
Dualidade entre o espaço de entradas e espaço de pesos Um valor no espaço de entradas determina uma separação linear no espaço de pesos, e vice-versa.
Exemplos de pontos no espaço de entrada delimitando uma região no espaço de pesos (1,1) (0,1) (1,0) w1+w2 >= 1 w1 < 1 x x w2 <1 x Inequações para a função AND, com w0 = -1 x1w1 +x2w2 < 1 x1w1 +x2w2 >= 1 x1w1 +x2w2 < 1 Entrada = (1,0) Entrada = (0,1) Entrada = (1,1) Equação das linhas: x1w1 +x2w2 + w0=0
Delimitação de regiões no espaço dos pesos • Se o interesse é procurar os vetores pesos para uma função AND, os pesos w0, w1, e w2 devem obedecer as seguintes inequações: entrada (0,0): 0.w2 + 0.w1 +1.w0 <0, saída y = 0 entrada (0,1): 1.w2 + 0.w1 +1.w0 <0, saída y = 0 entrada (1,0): 0.w2 + 1.w1 +1.w0 <0, saída y = 0 entrada (1,1): 1.w2 + 1.w1 +1.w0 >=0, saída y = 1. • Essas inequações definem quatro planos que passam pela origem: Plano 1: w0 = 0 Plano 2: w2 + w0 = 0 Plano 3: w1 + w0 = 0 Plano 4: w2 + w1 + w0 = 0
Polítopo para a função AND • Plano 1: w0 = 0 • Plano 2: w2 + w0 = 0 • Plano 3: w1 + w0 = 0 • Plano 4: w2 + w1 + w0 = 0 • Para a função AND: • w0 < 0 • w2 + w0 < 0 • w1 + w0 < 0 • w2 + w1 + w0 >= 0 Existem infinitas soluções para a função AND, delimitadas pelo polítopo. A figura mostra uma região triangular de soluções para w0 = -1 e w0 = -0.5.
Superfície de erro para AND no espaço de pesos Erro = 0 com w0 = -1 Passos iterativos durante o Treinamento w* é o vetor solução número de erros
Funções booleanas de duas variáveis • As 16 possíveis funções de duas variáveis são: f0(x1,x2) = f0000 (x1,x2) = 0 f1(x1,x2) = f0001 (x1,x2) = ~(x1 v x2) f2(x1,x2) = f0010 (x1,x2) = x1 ^ ~x2 f3(x1,x2) = f0011 (x1,x2) = ~x2 f4(x1,x2) = f0100 (x1,x2) = ~x1 ^ x2 f5(x1,x2) = f0101 (x1,x2) = ~x1 f6(x1,x2) = f0110 (x1,x2) = xor f7(x1,x2) = f0111 (x1,x2) = ~(x1 ^ x2) f8(x1,x2) = f1000 (x1,x2) = x1 ^ x2 f9(x1,x2) = f1001 (x1,x2) = ~xor f10(x1,x2) = f1010 (x1,x2) = x1 f11(x1,x2) = f1011 (x1,x2) = x1 v~ x2 f12(x1,x2) = f1100 (x1,x2) = x2 f13(x1,x2) = f1101 (x1,x2) = ~x1 v x2 f14(x1,x2) = f1110 (x1,x2) = x1 v x2 f15(x1,x2) = f1111 (x1,x2) = 1
Visualização de todas as funções linearmente separáveis no espaço de pesos Plano 2 Plano 3 f(1,0) Plano 2 f(0,1) Plano 3 Plano 1 f(0,0) Plano 1 Plano 4 f(1,1) Plano 4 Considerando-se os pesos normalizados pode-se visualizar todas as 14 funções linearmente separáveis utilizando 4 planos de separação. Como tem 16 funções booleanas no caso de entrada bidimensional (x1, x2), as duas funções que faltam são XOR e NOT-XOR (coincidência).
Projeção no plano L3 L4 L1 f14 = OR f1 = NOR f8 = AND f7 = NAND L2 14 regiões Nota-se que: a) com 3 planos de separação, obtem-se 8 regiões. b) com 4 planos de separação, obtem-se 14 regiões.
perceptrons com camadas escondidas N3 N1 N1 N4 N2 N2 esfera dos vetores de entrada normalizados N3 Nota-se que cada neurônio da camada escondida divide o espaço de entrada em duas hemisferas, considerando vetores de entrada normalizados. As saídas da camada escondida são introduzidas no neurônio de saída, que dependendo da região da esfera computa como 1 ou 0.
Máximo número de elementos no espaço de entrada separáveis genericamente Dado um subconjunto S de um espaço de entrada X, usando uma rede que divide esse subconjunto em duas partes, se os elementos de S com valor 0 ficam de um lado e os elementos com valor 1, do outro lado, dizemos que a rede é treinável. Uma questão importante é qual o máximo número de elementos de um espaço de entrada que uma rede pode classificar, genericamente. No caso do perceptron de duas entradas esse número é 3, pois dados 3 pontos no espaço de entrada sempre é possível separar esses pontos usando uma linha reta. Para o caso de 4 elementos nem sempre isso é possível, como por exemplo, o caso do XOR.
Rede com dois neurônios na camada escondida • Nesse caso, cada neurônio da camada escondida divide a superfície da esfera em dois hemisférios. Portanto, os dois neurônios dividem a superfície da esfera em 4 regiões, codificadas em duas saídas. • Cada uma dessas saídas são recebidas pelo neurôno de saída, que por sua vez tem a capacidade de realizar 14 funções. • O problema do XOR pode ser resolvido usando uma dessas 14 funções e em geral, quaisquer 4 elementos do espaço de entrada podem ser divididos em duas classes usando dois neurônios na camada escondida. • Contudo, 8 elementos no espaço de entrada não são possíveis de serem divididos com dois neurônios escondidos, genericamente.
Dimensão de Vapnik-Chervonenkis • O número máximo de elementosd de um espaço de entrada, que podem ser sempre separados linearmente, é chamado de dimensão de Vapnik-Chervonenkis, ou simplificadamente dimensão VC. • Segundo Cover (1968) e Baum e Haussler (1989), a dimensão VC, para uma rede feedforward constituída de neurônios com uma função de ativação degrau, é de O(WlogW) onde W é o número total de parâmetros livres da rede. • Segundo Koiran e Sontag (1996) a dimensão VC, para uma rede feedforward constituída de múltiplas camadas cujos neurônios utilizam a função de ativação sigmóide, é de O(W2) onde W é o número total de parâmetros livres da rede.
Regiões no espaço de pesos para redes de 2 neurônios escondidos de 2 entradas Para 2 neurônios escondidos e 1 neurônio de saída, tem-se 9 parâmetros livres: 2 pesos de entrada e 1 bias para cada neurônio. Cada neurônio divide o espaço de pesos em quatro hiperplanos: • entrada (0,0): 0.w2 + 0.w1 +1.w0 = 0 • entrada (0,1): 1.w2 + 0.w1 +1.w0 = 0 • entrada (1,0): 0.w2 + 1.w1 +1.w0 = 0 • entrada (1,1): 1.w2 + 1.w1 +1.w0 = 0 Se cada neurônio divide o espaço de pesos em 14 regiões, como 3 neurônios, 14.14.14 = 2744 regiões ou polítopos são gerados. Isso significa que o número de regiões de soluções para uma esfera booleana de nove dimensões é de 2744, sendo que 16 dessas regiões são soluções da função XOR.
Possíveis combinações para XOR usando 2 neurônios escodidos A figura mostra a distribuição de soluções para XOR, usando uma rede de 2x1 neurônios. Dependendo de onde o algoritmo de busca começa (pesos iniciais) a solução pode ser mais fácil, ou difícil.
Contagem do número de regiões • Quantas regiões são definidas usando m hiperplanos de dimensão n-1, num espaço n-dimensional de pesos? (consideramos apenas os hiperplanos passando pela origem) • Caso bi-dimensional ( n = 2) : o hiperplano é uma reta. • Cada novo hiperplano divide o cone definido pelos hiperplanos anteriores gerando mais 2 novas regiões. m =1 m = 2
Contagem do número de regiões (cont.) • Caso tri-dimensional (n = 3): hiperplano é um plano. • Para os casos de 1, 2 e 3 hiperplanos, cada hiperplano aumenta o número de regiões por um fator 2: para m = 1 2 regiões para m = 2 4 regiões para m = 3 8 regiões (m = número de hiperplanos) • Generalizando, n hiperplanos de dimensão n-1, em espaço n-dimensional, define 2n regiões. • Para o caso de m = 4, vimos que tem 14 regiões, ou seja: o quarto hiperplano consegue dividir no máximo 6 das 8 regiões previamente geradas por 3 hiperplanos.
Proposição 1 Seja R(m,n) o número de regiões definidos por m hiperplanos de dimensão n-1, em posição genérica, num espaço de pesos n-dimensional. Inicia-se com R(1, n) = 2 para e R(m,0) = 0, . Para e m > 1 tem-se R(m,n) = R(m-1,n) + R(m-1,n-1) A prova é por indução em m: • Para m = 2 e n = 1, é válida. • Para m = 2 e sabe-se que R(2,n) = 4 e a fórmula é válida novamente: R(2,n) = R(1,n) + R(1,n-1) = 2 + 2 = 4 c) Agora, m + 1 hiperplanos de dimensão n-1 são dados em espaço n-dimensional e posição genérica ( ). Da hipótese de indução segue que os primeiros m hiperplanos definem R(m,n) regiões em espaço n-dimensional. O hiperplano m+1 intersecta os primeiros m hiperplanos, em m hiperplanos de dimensão n-2 (se todos estiverem em posição genérica). Esses m hiperplanos dividem o espaço (n-1)-dimensional em R (m,n-1)regiões. Após a separação com o hiperplano m + 1, exatamente R(m,n-1) novas regiões são criadas. O novo número de regiões é portanto R (m+1,n) = R(m,n) + R(m,n-1) e a prova termina. m+1 = 4 m = 3 6 regiões novas R(m,n-1)=R(3,2)
Cálculo recursivo de R(m,n) Nota-se que: a) R(m,n) = 2m para , isto é, o número de regiões cresce exponencialmente até a dimensão do espaço. b) Após esse limite (m > n) o crescimento passa a ser polinomial Para n = 2, R(m,2) = 2m Para n = 3, R(m,3) = m2-m+2
Proposição 2 Para , R(m,n) é um polinômio de grau n-1 na variável m. A prova é por indução em n: Denotando P(a,b) um polinômio de grau b na variável a. O polinômio é explicitamente dado para n = 2. (R(m,2) = 2m)) Para a dimensão n + 1 e m = 1 sabe-se que R(1, n+1) = 2. Se m > 1 então R(m,n+1) = R(m-1,n+1) + R(m-1,n) Se R (m-1, n) é um polinômio de grau n -1 na variável m segue que R(m,n+1) = R(m-1,n+1) + P(m,n-1) Repetindo essa redução m -1 vezes chega-se finalmente a R(m,n+1) = R(m-(m-1),n+1) + (m-1)P(m,n-1) = 2 + (m-1)P(m,n-1) = P(m,n) R (m,n+1) é então um polinômio de grau n na variável m . Uma fórmula útil para R(m,n) é cuja validade pode ser provada também por indução.
Contagem do número de regiões (cont.) • A fórmula possibilita o cálculo do número de regiões formados por hiperplanos em posições genéricas. • No caso de funções booleanas, as entradas sendo booleanas, os hiperplanos não se posicionam genericamente. • O número de regiões, definido por um espaço 4-dimensional por 8 hiperplanos, é 128. Mas existem somente 104 funções computáveis por um perceptron de 3 entradas, e portanto 4 pesos e 8 possíveis vetores de entrada. • O número R(m,n) deve ser interpretado como um limite superior sobre o número de funções computáveis para entradas binárias. Comparação do número de funções booleanas e funções computáveis de n entradas com dois limites superiores diferentes.
Conseqüências • Primeira consequência: • O número de funções computáveis num espaço n-dimensional cresce polinomialmente enquanto que o número de possíves funções booleanas cresce exponencialmente. • A relação entre funções computáveis e o total de funções lógicas tende a zero com o incremento de n. • Segunda consequência: • Problemas insolúveis para redes com um número pré-determinado de unidades podem ser fabricadas com o incremento do número de linhas de entrada. • Exemplo: Para os neurônios escondidos, o número de entradas considerando o bias é n, e o número de pesos da rede é 2n + 3. O número de diferentes entradas é 2n-1. O número de regiões N no espaço de pesos é dado por Isso significa que N é limitado por uma função da ordem de Se o número F de funções booleanas de n entradas é é possível encontrar n que satisfaçaF > N.
Visualização geométrica dois conjuntos de pontos a serem separados. Sejam Espaço de entrada com bias Espaço de entrada sem bias Um vetor peso w deve ser encontrado tal que w.x > 0 para todo e w.x < 0 para todo
O algoritmo de treinamento do perceptron começa com um vetor w0 aleatoriamente escolhido. • Se o vetor é tal que w.x < 0 significa que o ângulo entre os dois vetores é maior que 900. O vetor peso deve ser rotacionado na direção de xpara que xfique na metade positiva do espaço definido por w. Isso pode ser feito adicionandox a w, como o algoritmo de treinamento faz. • Se o vetor é tal que w.x > 0 significa que o ângulo entre os dois vetores é menor que 900. O vetor peso deve ser rotacionado na direção contrária a xpara que xfique na metade negativa do espaço definido por w. Isso pode ser feito subtraindoxde w. • Se existe solução ela é encontrada após um número finito de passos. • Uma boa heurística é iniciar o peso com a média dos vetores de entrada positivos menos a média dos vetores de entrada negativos.
Ilustração gráfica L Configuração inicial Após correção com x1 Após correção com x3 Após correção com x1
Convergência do algoritmo • Se os conjuntos P e N são linearmente separáveis, o algoritmo de treinamento atualiza o vetor de pesos wt um número finito de vezes até a convergência. • Em outras palavras, se os vetores em P e N são testados ciclicamente, um após o outro, um vetor peso wt, que separa os dois conjuntos, é encontrado após um número finito de passos t. • Para a prova, são feitas 3 simplificações sem prejuízo da generalidade: • Os conjuntos P e N podem ser unidos em P’ =PUN-. Onde N- consiste de elementos de N negados . • Os vetores em P’ podem ser normalizados, pois se um vetor w é tal que w.x > 0 isso é válido para qualquer outro vetor hx, onde h é uma constante. • O vetor peso pode também ser normalizado. Assumindo que uma solução existe, w* é a solução.
Prova da convergência • Assume-se que após t+1 passos o vetor peso wt+1 foi computado. Isso significa que no tempo t um vetor pi foi incorretamente classificado pelo vetor peso wt e assim, wt+1 = wt + pi. • O cosseno do ângulo r entre wt+1 e w* é Para a expressão do numerador sabe-se que com
Cont. Vimos que: e onde • Se o vetor peso w* define uma separação linear absoluta entre P e N sabe-se que d > 0. Por indução obtem-se Por outro lado para o termo do denominador sabe-se que Se é negativo ou zero (caso contrário não teria sido feita a correção) deduz-se que pois os vetores em P são normalizados.
Cont. vimos que: • A indução diz que Lembrando que e tem-se O termo à direita cresce proporcionalmente a e se d é positivo pode tornar-se arbitrariamente grande. Contudo, se , tdeve ser limitado por um valor máximo. Portanto, o número de correções para o vetor peso deve ser finito.