NEOCOGNITRON Introdução Arquiteturas como perceptron multicamadas tendem a ser de aplicação genérica. Em contraste, o neocognitron é uma rede proposta originalmente para a aplicação de reconhecimento de caracteres manuscritos. Apesar disso essa rede tem uma grande quantidade de aplicações práticas. Fukushima propôs a rede baseada no modelo biológico da visão, cujos estudos foram feitos por Hubel e Wiesel. Sistema de Visão Biológico Cones e Células bastonetes bipolares da retina Células ganglionares Células do núcleo geniculado lateral Células simples do cortex visual Células complexas do cortex visual Olho esquerdo Quiasma Núcleo óptico geniculado lateral Olho direito Cortex visual Sistema de Visão Biológico O sistema de visão por baixo do cérebro Olho esquerdo Corpo geniculado lateral Quiasma óptico Cortex visual Olho direito • Hubel e Wiesel fizeram estudos das células nervosas do sistema visual usando microeletrodos para registrar a resposta dos neurônios individuais do córtex enquanto estimulava a retina com luzes. • Aplicando uma variedade de padrões e formas, eles determinaram o estímulo particular que cada neurônio era mais sensitivo. • Alguns desses campos receptivos geram uma resposta excitatória para um feixe de luz centralizado, e uma resposta inibitória para um feixe de luz mais largo em difuso. Córtex Visual (área 17) • O córtex visual é composto de seis camadas de neurônios. • A maioria dos neurônios do LGN terminam nas células da camada IV. • Células da camada IV projetam a um grupo de células diretamente acima chamadas de células simples. Células simples respondem a linhas de segmentos com uma orientação particular. • As células simples projetam a células chamadas células complexas. As células complexas respondem a linhas tendo a mesma orientação, correspondentes às células simples, embora integrem as respostas para um campo receptivo maior. Em outras palavras, as células complexas são menos sensitivas à posição da linha na retina que as células simples. • Células em diferentes camadas da área 17 projetam-se a diferentes localizações do cérebro. Por exemplo, as células da camada II e III projetam a células das áreas 18 e 19. Essas áreas contem células chamadas hipercomplexas, que respondem a linhas que formam ângulos ou cantos e que movem em várias direções ao longo do campo receptivo. NEOCOGNITRON • É o modelo que emerge dessa hierarquia de células com respostas crescentes em complexidade. • Os neurônios propagam os sinais da esquerda para a direita começando da camada U0, que corresponde à camada de entrada, cujos sinais correspondem aos sinais captados pelas células fotoreceptivas da retina. • Esses sinais são enviados para a camada US1 de células simples, que por sua vez enviam sinais para a camada UC1 de células complexas. • Os sinais da camada UC1 são enviados para a camada US2, e assim, por diante, até a última camada. • Cada conjunto de camadas USi e UCi denomina-se estágio hierárquico i da rede. • Em princípio o número de estágios é ilimitado. Em cada camada nota-se os planos celulares, compostos de um conjunto de células dispostas em forma matricial camadas plano celular saídas Camada de entrada Estágio 1 Estágio 2 Estágio 3 • A hierarquia é representada por estágios, cada qual com a função de reconhecer fatores em níveis de complexidade diferentes. • Quanto mais complexo o fator, maior será a hierarquia, finalizando com o último estágio, que reconhece o padrão de entrada como um todo. • Os fatores mais simples são reconhecidos pelo primeiro estágio (normalmente linhas retas em várias direções) e em cada um dos próximos estágios, fatores mais complexos são reconhecidos (ângulos, extremidades, polígonos, etc.). • Somente informações obtidas no estágio anterior são utilizadas pelo estágio posterior (feedforward). • Exemplo de fatores reconhecidos pelos neurônios nos 3 estágios de uma implementação do neocognitron. Us1 Uc1 Us2 Uc2 Us3 Uc3 U0 Estágios e camadas USi UCI • Numa implementação do neocognitron pode ter quantos estágios forem necessários. • No estágio 0 tem uma única camada, a camada de entrada. • Todos os demais estágios contêm uma camada-S e uma camada-C. • Após a camada-C do último estágio, vem a camada de saída. Camada S Camada C Planos celulares • • • Cada camada do neocognitron consiste de um certo número de planos celulares bidimensionais. O número de planos celulares de cada camada-S e camada-C depende do número de fatores reconhecidos pelo estágio correspondente da rede. Um plano celular é um grupo de células justapostas em forma de matriz 2D. célula Plano celular camada Células • Os planos celulares são compostos por elementos básicos de processamento, chamados células (neurônios). • O número de células é o mesmo para todos os planos em uma camada, e diminui com o avanço do estágio da rede. • Existem os seguintes tipos de células no neocognitron: - células-S, num plano-S, serve para extrair fatores - células-C, num plano-C, serve para generalização dos fatores. - células-Vc, para calcular a atividade das células Células-S • Serve para extrair fatores • Cada célula-S conecta-se a uma pequena área (região) de conexão, com os planos celulares da camada anterior. • O tamanho da área de conexão é o mesmo para todas as células-S de uma camada. • As células da camada US1 tem uma área de conexão de um único plano celular, camada de entrada. • . As demais camadas-S tem uma área de conexão, com cada plano celular-C do estágio anterior. Célula-S da camada US1 Célula-S da camada US2 área de conexão entrada US1 UC1 US2 Exemplo: duas células–S disparando durante o reconhecimento de segmentos de linha vertical. Cálculo da célula-S 1 e uS ~ 1 1 h e onde K l 1 a k k 1 iS l l 1 l 1 , i, k l u Cl 1 k l 1 , n i l peso valor da célula-C (entrada) ( o valor de e varia proporcionalmente ao fator a ser extraído) h bl k l vCl n threshold valor em (0,1) peso valor da célula-Vc (entrada) ( o valor de h varia de acordo com a atividade das células da camada anterior) 1 e uS ~ 1 1 h Cálculo de e e K l 1 a k k 1 iS l l 1 l 1 , i, k l u Cl 1 k l 1 , n i l pesos al peso valor da célula-C (entrada) células uCl-1 Plano 1 Os pesos al são diretamente proporcionais ao fator que a célula reconhece, e são maiores ou iguais a zero. Plano kl Sl e Sl Plano Kl-1 Estágio l-1 Estágio l 1 e uS ~ 1 1 h Cálculo da célula-Vc vCl n Kl 1 2 c i u Cl 1 kl 1 , n i l k 1 iS l 1 h bl k l vCl n l célula-C, quadrado (entrada) células Os pesos cl são distribuídos de forma uCl-1 gaussiana positiva (monotonicamente decrescente) e o seu somatório é igual a 1. peso Plano 1 Kl 1 Pesos cl Plano kl Sl c (i) 1 kl 1 1 iSl l célula vCl Sl O valor de vCl é proporcional ao número de células ativas uCl-1. O peso bl(k) é maior ou igual a zero. Plano Kl-1 Estágio l-1 Estágio l Exemplo de pesos cl de células vcl para área de conexão 7x7 1.0/s pesos cl 0.65/s 0.72/s 0.72/s 0.72/s 0.72/s 0.72/s 0.65/s 0.5/s 0.72/s 0.72/s 0.81/s 0.81/s 0.81/s 0.72/s 0.72/s 0.72/s 0.81/s 0.81/s 0.9/s 0.81/s 0.81/s 0.72/s -3 0.72/s 0.81/s 0.9/s 0.72/s 0.81/s 0.81/s 1/s 0.9/s 0.9/s -2 -1 1 2 0.81/s 0.72/s 0.81/s 0.81/s 0.72/s Esses valores devem ser normalizados (/s) para que a soma dos pesos seja igual a 1. 0.72/s 0.72/s 0.81/s 0.81/s 0.81/s 0.72/s 0.72/s Kl 1 0.65/s 0.72/s 0.72/s 0.72/s 0.72/s 0.72/s 0.65/s c (i) 1 kl 1 1 iSl l 3 Diagrama completo de interconexão entre as células S,C e Vc uc a us c vc Estágio l-1 b Estágio l Grafo ilustrativo para célula-S Função de ativação Equação completa para célula-S Kl 1 1 al kl 1 , i, kl uCl 1 kl 1 , n i kl11 iSl uSl kl , n 1 1 1 bl kl vCl n plano celular da célula-S posição da célula-S no plano x x 0 se se x0 x0 Threshold (limiar) 1 e uS . 1 1 1 h 8 7 6 h bl k l vCl n 5 4 3 0< <1 2 1 0 0.5 1.0 Quanto maior o limiar, maior é o fator de inibição h (menos generalização, maior seletividade à extração do fator) da célula us Células-C As células-C tem o efeito de generalização (borramento). Pesos dl Recebem entradas de apenas um plano-S Os pesos das entradas são fixos, portanto não precisam de treinamento Plano 1 Uma célula-C conecta-se a uma pequena região do plano-S Todas as células de uma determinada camada C tem pesos iguais Plano Kl US UC Diagrama ilustrativo das conexões das Células-C Cálculo de uma célula-C • A saída da célula C é definida como: uCl k l , n d l i u Sl k l , n i iSl peso célula-S (entrada) • onde dl(i) representa o peso da conexão, e Sl representa a área de conexão da célula. A função de ativação é definida como: x 1 x x 0 se x0 se x0 Exemplo de pesos de interconexões das células-C com área de conexão 5x5 pesos d +2 +1 j 0.60 0.69 0.72 0.69 0.60 0.69 0.81 0.9 0.81 0.69 0 0.72 0.9 1 0.9 0.72 -1 0.69 0.81 0.9 0.81 0.69 -2 0.60 0.69 0.72 0.69 0.60 -2 -1 0 +1 +2 i Os pesos dl são também funções monotonicamente decrescentes, porém o seu somatório não é normalizado para 1 como os pesos cl. Uma célula C representa um conjunto de células-S tendo as células-S centrais maiores pesos. Resulta que as células C vizinhas tem valores próximos(generalização). Função de ativação Os valores das células C são normalizados, ficando no intervalo [0, 1). x 1+x 1.0 x 1 x x 0 0.5 x 0 1 2 3 4 se x0 se x0 • Para a célula-C disparar, é suficiente no mínimo uma célula-S ativa na respectiva área de conexão. Em conseqüência disso, uma célula-S afeta o disparo de um grande número de células-C. • A célula-C assegura à rede a tolerância a deformações e deslocamentos dos fatores. – Uma célula-C dispara se existir uma célula-S ativa na área de conexão. – Quando um fator é deslocado na camada de entrada, a célula-S ativa é deslocada. – Se essa célula-S ativa pertencer ainda à área de conexão da célula-C, essa célula-C continua disparando, garantindo a tolerância a deslocamentos dos fatores. • A tolerância será tanto maior quanto for a área de conexão das células-C, porém menor será a especificidade. Treinamento • Das várias camadas existentes na rede, os neurônios das camadasS são os que recebem o treinamento, usando o paradigma de treinamento supervisionado ou não-supervisionado. os pesos pesos a e b são treinados os pesos c são fixos • Os neurônios da camada de entrada, obviamente não necessitam de treinamento. Já, os neurônios das camadas-C, tem seus pesos de conexões pré-fixados, e não precisam de treinamento. os pesos d são fixos • O treinamento da rede é realizado de forma hierárquica, da esquerda para a direita, de estágios de níveis mais baixos para os estágios de níveis mais altos. TREINAMENTO NÃO-SUPERVISIONADO • Lembramos que, na aprendizagem não-supervisionada, também conhecida como auto-organizada, nao há um professor externo para supervisionar o processo de aprendizado. • 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 Sequência de treinamento do neocognitron • Inicialmente, nenhuma camada-S ainda recebeu treinamento. Isso significa que a primeira camada a ser treinada é a camada US1. • Durante o procedimento de treinamento não-supervisionado, o sistema de aprendizagem deve competitivamente aprender a reconhecer novos fatores da camada de entrada. • Como cada plano celular é responsável pelo reconhecimento de um único fator, a medida que a rede aprende a reconhecer um novo fator, a camada deve ir aumentando o número de planos celulares. • Após todos os fatores correspondentes àquela camada-S tenham sido treinados, usando um conjunto de treinamento, passa-se para o treinamento da camada-S do estágio seguinte, uma vez que a camada-C não necessita de treinamento. • Esse procedimento prossegue até a última camada-S. Apenas a última camada-C recebe um treinamento supervisionado, para o estabelecimento das classes de reconhecimento. TREINAMENTO DE UM PLANO CELULAR • Para o treinamento de um plano celular é usado um plano celular especial com pequenos pesos, compartilhados entre todos as células, denominado de seed-selection-plane (SSP). • Ao apresentar um padrão de entrada, os neurônios do plano SSP são capazes de dispararem para todos os fatores presentes naquele padrão, porém, com intensidades diferentes. • Usando a regra de aprendizagem competitiva, é escolhido o neurônio de maior intensidade, chamado de neurônio vencedor. Se o fator correspondente a esse neurônio não tiver sido treinado até aquele momento, então é acrescentado um novo plano celular para o reconhecimento daquele fator. Caso esse fator já tiver sido treinado então existe um plano celular já treinado ativo naquela posição. Nesse caso escolhe-se um próximo neurônio vencedor. • Reforça-se os pesos a e b do neurônio vencedor, e faz-se com que todos os neurônios do novo plano celular compartilhem os mesmos pesos do neurônio vencedor. • Como existe apenas um único neurônio vencedor, esse tipo de treinamento é também conhecido como vencedor-leva-tudo (em inglês, winner-take-all). Sequência de treinamento Plano 1 Planos 1 Planos já treinados Planos já treinados Plano Kl Seed selection plane (SSP) Planos Kl Novo SSP US US REFORÇO DAS CONEXÕES • Somente os pesos das conexões de entrada que apresentam sinais diferentes de zero serão reforçadas (aprendizado de Hebb). • Os pesos a e b são reforçados de acordo com as equações: al kl 1, i, kˆl ql cl i uCl 1 kl 1, nˆ i b kˆl ql vCl nˆ ql é a taxa de aprendizado, nˆ e k l indicam a posição e o plano celular do neurônio vencedor. Exemplo de pesos iniciais al e b e fator de aprendizado, usados pelo Seed-Selection-Plane pesos al 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 Peso b = 2.0 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.2 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 Fator de aprendizado ql = 20000 Algoritmo de treinamento de um estágio procedure treinar_estagio (l); begin repeat for k = 1 to Kl do computar as células-S ; for SSP computar as células-S; repeat encontrar o vencedor no SSP; for k = 1 to Kl do if vencedor contido em planos já treinados then procura próximo vencedor no SSP until (vencedor encontrado ou não haver mais células ativas); if vencedor encontrado then begin ajustar pesos; acrescentar um novo plano entre os treinados (Kl := Kl +1) end until (não ter outras células ativas para o conjunto de treinamento); end Redução do tamanho dos planos celulares • Durante a implementação da rede neocognitron é feita uma redução do tamanho dos planos celulares para que o último estágio termine com apenas um neurônio por plano celular. • Assim após o processamento de cada camada-S, para cada área do plano celular é escolhido um neurônio representante daquela área, para se obter uma nova camada S’ reduzida. Exemplo de matriz de pesos para a redução dos planos celulares pesos d 0.60 0.69 0.72 0.69 0.60 +1 0.69 0.81 0.9 0.81 0.69 0 0.72 0.9 1 0.9 0.72 -1 0.69 0.81 0.9 0.81 0.69 -2 0.60 0.69 0.72 0.69 0.60 -2 -1 0 +1 +2 +2 j i Usa-se os mesmos pesos dl das células-C Exemplo de implementação US1 US1’ UC1 US2 US3 US2' UC2 US3’ UC3 Output Input Contrasted pattern (on-center) UG U0 Class1 Class k Reduced 57x57 20x20 57x57 Class n 13x13 20x20 1x1 13x13 7x7 7x7 13x13 7x7 3x3 3x3 Matriz de pesos para cálculo do contraste (on-center) 0 0 -0.0625 -0.0625 -0.0625 0 0 0 -0.0625 -0.15 -0.15 -0.15 -0.0625 -0.0625 -0.15 0.125 0.125 0.125 -0.15 -0.0625 -0.0625 -0.15 0.125 1.8 0.125 -0.15 -0.0625 2.0 0 1.0 -3 -0.0625 -0.15 0.125 0.125 0.125 0 -0.0625 -0.15 -0.15 -0.15 -0.0625 0 0 -0.0625 -0.0625 -0.0625 -0.15 -0.0625 0 0 0 -2 -1 1 2 3 Exercício 1 Dado um padrão de entrada com valores 0 e 1: A) calcular o valor de us para o plano SSP, para a área de conexão 3x3 assinalada. a) 0.6 Padrão de entrada 7x7 b) 0.7 B) calcular os novos pesos de al e b 0 0 0 1 0 0 usando q = 10000 para a criação de um 0 0 0 1 0 0 plano celular correspondente, usando o resultado (a). pesos al iniciais 0.1 0.1 0.1 0.1 0.2 0.1 0.1 0.1 0.1 peso b = 1.0 pesos cl normalizados 0.10 0.11 0.10 0.11 0.13 0.11 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.10 0.11 0.10 Exercício 2 A) Dado o plano celular obtido no exercício 1, aplicar o padrão de entrada (ao lado) e verificar o resultado para a área assinalada, usando o limiar 0.9. B) Obter os valores para as demais células usando o limiar 0.9 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C) Aplicar o plano celular C para o resultado anterior, usando uma area de conexão 3x3 com pesos dl ao lado. Pesos dl 0.81 0.9 0.81 0.9 1 0.9 0.81 0.9 0.81