• Nenhum resultado encontrado

Redes neurais artificiais: do neurônio artificial à convolução

N/A
N/A
Protected

Academic year: 2021

Share "Redes neurais artificiais: do neurônio artificial à convolução"

Copied!
84
0
0

Texto

(1)

MAURÍCIO MARQUES SOARES FILHO

REDES NEURAIS ARTIFICIAIS:

DO NEURÔNIO ARTIFICIAL À CONVOLUÇÃO

NITERÓI

2018

(2)

REDES NEURAIS ARTIFICIAIS:

DO NEURÔNIO ARTIFICIAL À CONVOLUÇÃO

Trabalho de Conclusão de Curso submetido ao Curso de Tecnologia em Sistemas de Computação da Universidade Federal Fluminense como requisito parcial para obtenção do título de Tecnólogo em Sistemas de Computação.

ORIENTADOR:

CLEDSON OLIVEIRA DE SOUSA

NITERÓI

2018

(3)

Bibliotecária responsável: Fabiana Menezes Santos da Silva - CRB7/5274 S676r Soares Filho, Maurício Marques

Redes Neurais Artificiais :Do Neurônio Artificial à Convolução / Maurício Marques Soares Filho ; Cledson Oliveira de Sousa, orientador. Niterói, 2018. 84 p. : il.

Trabalho de Conclusão de Curso (Graduação em Tecnologia de Sistemas de Computação)-Universidade Federal Fluminense, Escola de Engenharia, Niterói, 2018.

1. Redes Neurais Artificiais. 2. Redes Neurais

Convolucionais. 3. Deep Learning. 4. Produção intelectual. I. Sousa, Cledson Oliveira de, orientador. II. Universidade Federal Fluminense. Escola de Engenharia. III. Título. CDD

(4)

-REDES NEURAIS ARTIFICIAIS:

DO NEURÔNIO ARTIFICIAL À CONVOLUÇÃO

Trabalho de Conclusão de Curso submetido ao Curso de Tecnologia em Sistemas de Computação da Universidade Federal Fluminense como requisito parcial para obtenção do título de Tecnólogo em Sistemas de Computação.

Niterói, ___ de _______________ de 2018. Banca Examinadora:

_________________________________________ Prof.: Cledson Oliveira de Sousa, MSc. – Orientador

UFF – Universidade Federal Fluminense

_________________________________________ Prof. Leandro Soares de Sousa, DSc. – Avaliador

(5)

A Gisele Vieira Rocha, que me ajudou uma última vez.

(6)

A todos empenhados no sucesso continuado da Fundação CECIERJ / Consórcio CEDERJ, sem os quais minha formação em Computação não seria possível.

A meu orientador Cledson Sousa pela atenção dispensada e paciência homérica demonstrada.

A minha mãe, Ivane Rosa Gomes Soares, pelo incentivo e por se fazer sempre presente.

(7)

I never am really satisfied that I understand anything; because, understand it well as I may, my comprehension can only be an infinitesimal fraction of all I want to

understand about the many

connections and relations which occur to me (…)

(8)

O presente é uma compilação técnico-histórica no que diz respeito às Redes Neurais Artificiais. Vamos vislumbrar os esforços iniciais no campo e como eles foram inspirados por trabalhos na área da Biologia. Passaremos ao empenho em treinar as Redes Neurais Artificiais para que desenvolvam generalizações válidas. Oportunamente, apresentaremos duas das arquiteturas pioneiras de Redes Neurais. Por fim, abordaremos a arquitetura de Redes Convolucionais, herdeira das técnicas e tecnologias anteriores, e seu estado da arte.

Palavras-chaves: redes neurais artificiais, redes neurais convolucionais, deep learning.

(9)

Figura 1 - Representação das principais estruturas do neurônio. ... 22

Figura 2 - Diagrama de aprendizado com professor. ... 32

Figura 3 - Diagrama de aprendizado não-supervisionado. ... 33

Figura 4 - Diagrama para o Aprendizado por Reforço. ... 36

Figura 5 - Linearmente separável e não-linearmente separável. ... 38

Figura 6 - Modelo do Perceptron. ... 39

Figura 7 - Interpretação geométrica para a situação 𝑑 = 1 e 𝑦 = 0. ... 41

(10)

Adaline Adaptative Linear Neuron (Neurônio Linear Adaptativo)

CNN Convolutional Neural Network (Redes Neurais Convolucionais) ConvNets Convolutional Neural Network

IA Inteligência Artificial

IT Inferior Temporal Cortex (Córtex Inferotemporal)

LGN Lateral Geniculate Nucleus (Núcleo Geniculado Lateral) LMS Least Mean Square (Mínimo Quadrado Médio)

MCP McCulloch e Pitts (Modelo ou Neurônio de) MLP Multilayer Perceptron (Perceptron Multicamada) RC Resistor-Capacitor

ReLU Rectified Linear Unit (Unidade Linear Retificada) RNA Redes Neural Artificial

RNC Rede Neural Convolucional

TDNN Time-Delay Neural Network (Rede Neural com Atraso Temporal) VC Vapnik-Chervononkis (Dimensão de)

(11)

RESUMO ... 8

LISTA DE ILUSTRAÇÕES ... 9

LISTA DE ABREVIATURAS E SIGLAS... 10

1 Introdução ... 13

1.1 Escopo ... 15

1.2 Justificativa e Objetivos ... 16

1.3 Metodologia ... 16

2 Modelos Conceituais das RNA ... 18

2.1 O Que São Redes Neurais Artificiais – RNAs ... 19

2.2 Insights Biológicos ... 21

2.3 Modelos de Neurônio ... 22

2.3.1 Neurônios Artificiais ... 24

2.3.2 Função de Ativação Sigmoide ... 25

2.3.3 Realimentação ... 26

2.4 Principais Arquiteturas de RNAs ... 27

2.4.1 Redes Alimentadas Adiante com Camada Única ... 27

2.4.2 Redes Alimentadas Adiante com Múltiplas Camadas ... 27

2.4.3 Redes Recorrentes ... 28

3 Aprendizagem em RNAs ... 30

3.1 Aprendizagem Supervisionada ... 31

3.2 Aprendizagem Não-Supervisionada... 33

3.3 Aprendizado por Reforço ... 34

4 Perceptrons de Camada Única ... 38

4.1 O Perceptron ... 39

4.1.1 Algoritmo de Aprendizagem ... 40

4.1.2 Exemplo de Implementação do Algoritmo de Treinamento 42 5 Perceptrons Multicamadas ... 44

5.1 Arquitetura ... 46

5.1.1 Bias and Variance Dilemma ... 48

(12)

6.1 Cérebro, ConvNets e Deep Learning ... 56

6.2 A Operação de Convolução ... 62

6.2.1 Exemplo Unidimensional de Convolução ... 65

6.3 Arquitetura das ConvNets ... 67

6.3.1 Camada Convolucional ... 68

6.3.2 Parâmetros Compartilhados e Convolução ... 70

6.3.3 Pooling ... 71

6.3.4 Camadas Não-Lineares ... 72

6.3.5 Camadas de Normalização ... 73

6.3.6 Camadas Totalmente Conectadas ... 74

6.3.7 Exemplos de Arquitetura ... 74

7 Conclusão ... 77

(13)

1 Introdução

O presente trabalho consiste em uma revisão teórica de uma arquitetura de construção de Redes Neurais Artificiais, RNAs, designada como Redes Neurais Convolucionais, acompanhada da apresentação de conceitos fundamentais da área e da análise de alguns resultados pertinentes constantes na literatura.

As Redes Neurais Convolucionais, RNCs, foram também bio-inspiradas, construídas tendo por base a arquitetura do córtex visual de mamíferos – composto este por milhões de grupos complexos de células que são sensíveis apenas a pequenas regiões do campo visual, chamadas “campos receptivos”. Da mesma forma as RNC possuem seus “campos receptivos”, subconjuntos do chamado vetor de características (representação numérica de toda a imagem) sobre os quais se procede aos métodos de análise (Haykin, 2001).

A inspiração para a arquitetura das Redes Convolucionais leva a crer que uma de suas principais aplicações é justamente reconhecimento de imagens: no contexto de visão de máquina, essa é a capacidade de um software identificar pessoas, lugares e objetos – padrões. Auxiliadas por grandes bancos de dados e identificando surgimento de padrões específicos, as máquinas podem proceder à análise e classificação de imagens, formulando tags (“rótulos” para classificação) e categorias relevantes e com sentido prático.

O procedimento convencional, de reconhecimento de imagens para dados não estruturados até há pouco tempo se dava pelo uso de metadados, através da categorização manual: esse procedimento é inaplicável em um cenário de bibliotecas de mídias contendo um enorme número de imagens (estáticas ou em movimento) e com mais elementos sendo adicionados ao sistema ou mesmo em atividades como aprendizado aplicado à navegação de carros autônomos.

Existem inconvenientes para a utilização de Redes Neurais Artificiais convencionais para o tratamento desse problema. Da perspectiva computacional é muito dispendioso: o número de parâmetros necessários pode aumentar exponencialmente (Haykin, 2001). A sobreposição pode ser mais um inconveniente: ela acontece quando uma RNA se adapta muito bem aos dados

(14)

com os quais foi treinada – a exposição a novas entradas pode ocasionar um decréscimo no desempenho geral.

As Redes Neurais Convolucionais – também designadas CNN ou ConvNets – são uma arquitetura de RNAs que transforma o tratamento de imagens em tarefas executáveis dentro de um tempo razoável. Contudo, dado que elas são projetadas para ter uma inclinação para o tratamento de imagens (e outros problemas específicos), sua aplicabilidade perde em generalidade.

O interesse por Aprendizagem de Máquina, Machine Learning, teve aumento muito significativo nas últimas décadas, trazendo uma revolução que gerou, tem gerado e gerará em um futuro próximo grande número de aplicações tecnológicas e comerciais.

Em termos simples, Machine Learning é a aplicação de algoritmos e ferramentas de análise a dados brutos com o objetivo de se extrair informações que possam ser representadas através de um modelo matemático. Uma vez estabelecidos os parâmetros do modelo escolhido, espera-se poder fazer inferências a partir de outro conjunto de dados da mesma “espécie” que o original. O uso de RNAs como meio de modelagem se firmou como método pluripotente na área.

No início dos anos 2000, o poder computacional já havia crescido o suficiente para tornar viável a aplicação de certos procedimentos a determinados problemas insolúveis até então: emergem as técnicas de Aprendizado Profundo, Deep Learning, que serão o principal mecanismo de construção de sistemas de Inteligência Artificial (Goodfellow, et al., 2016).

A Aprendizagem Profunda, Deep Learning, é um ramo da família dos métodos de Aprendizado de Máquina, Machine Learning, calcados na aprendizagem de representação de dados. Está na intersecção entre as áreas de pesquisa de redes neurais, inteligência artificial, modelagem gráfica, otimização, reconhecimento de padrões e processamento de sinais. Deep Learning, aprendizagem profunda, baseia-se em um conjunto de algoritmos que têm por objetivo modelar, a partir de dados, abstrações de alto nível usando um grafo profundo com várias camadas de processamento e que usam tanto transformações lineares como não-lineares.

Para a arquitetura de RNA não há um limite universalmente aceito para distinguir aprendizagem superficial de aprendizagem profunda, mas há

(15)

certo consenso na área que a aprendizagem profunda apresenta várias camadas com funções de ativação não-lineares.

Os primeiros algoritmos de aprendizagem profunda com múltiplas camadas, funções não-lineares e seleção de recursos por métodos estatísticos remontam a Aleksei Grigorévich Ivakhnenko e Valentin Grigorévich Lapa em 1965 (Ivakhnenko, et al., 1965). A partir de 1999 os computadores começaram a se tornar mais rápidos no processamento de dados e houve o desenvolvimento e implementação das GPUs (Graphics Processing Unit, ou Unidade de Processamento Gráfico) – com o uso dessas houve um aumento da velocidade computacional numa escala de 1000 em um período de 10 anos. As RNAs, em disputa de espaço com outras tecnologias, acabam por se tornar preferidas em diversas realizações.

Com o aumento significativo da velocidade das GPUs ao longo das décadas, houve a possibilidade de aprimoramento nas técnicas de redes neurais convolucionais (e.g., eliminação do pré-treino camada por camada, e a emergência da aprendizagem profunda sem supervisão). Nesse cenário, o Deep Learning ganhou vantagens significativas em termos de eficiência e velocidade.

Na atualidade duas áreas de vanguarda, o processamento de Big Data (consiste na análise e interpretação de grandes volumes de dados valiosos e de grande variedade, armazenados em servidores de bancos de dados confiáveis, sendo, portanto, necessárias ferramentas específicas que permitam aos profissionais trabalhar com informações não-estruturadas a uma grande velocidade) e a implementação da Inteligência Artificial, são ambas intimamente conectadas à Aprendizagem Profunda.

1.1 Escopo

Compreender o que é uma operação matemática de convolução e como ela é traduzida no escopo das Redes Neurais Artificiais, além de quais são as possíveis aplicações das Redes Neurais Convolucionais é o tópico central do nosso trabalho. De forma a viabilizar e aprofundar nossa exposição, serão abordados temas que são bases do estudo de RNAs, como arquiteturas de rede e técnicas de aprendizado.

(16)

1.2 Justificativa e Objetivos

Redes Neurais Convolucionais têm apresentado múltiplas aplicações e valiosas contribuições em diversas áreas, como visão computacional, veículos autônomos, análise de falsificação de assinaturas e obras de arte, reconhecimento automático de fala, processamento de linguagem natural, reconhecimento de áudio e bioinformática, diagnósticos médicos etc., onde têm se mostrado capazes de produzir resultados de excelência em todas as frentes (Goodfellow, et al., 2016).

Dada a importância crescente da área e o exíguo material disponível em nosso idioma, configura-se oportuna qualquer iniciativa de apresentação das ConvNets ao público interessado.

Os objetivos aqui buscados se dividem em dois tópicos principais: apresentar um conteúdo sucinto, mas coeso, sobre Redes Neurais Artificiais, o histórico e as bases de seu desenvolvimento, características de treinamento de uma rede e arquiteturas básicas; introduzir a operação de convolução, como ela é utilizada nas ConvNets e como é o modelo básico que guia o funcionamento dessas, apresentar exemplos de aplicação prática das mesmas, e relacioná-las com Deep Learning.

1.3 Metodologia

O presente trabalho será tecido amparado numa ostensiva revisão bibliográfica, baseada em livros amplamente utilizados na Academia, artigos de relevo, monografias relacionadas ao tema, e material selecionado disponível na internet.

Há uma revisão histórica breve, calcada em alguns artigos clássicos e em excetos de obras consagradas. As etapas de definição de métodos de treinamento e estruturas básicas de RNAs seguirão o mesmo caminho de livros voltados ao público acadêmico – espera-se que os leitores interessados em nosso assunto de trabalho possam descobrir nessas partes do texto um sumário mais específico que o ordinário que se encontra costumeiramente na grande rede hoje.

(17)

Na segunda etapa desta monografia, vão-se concentrar esforços sobre a principal temática de estudos, Redes Neurais Convolucionais. Aqui será valiosa a contribuição de trabalhos, mormente aqueles de conclusão de pós-graduações, que demonstram a pluralidade de aplicações das ConvNets, além de artigos e de guias primorosos disponíveis para uso livre. A secção de comentários e comparações sobre resultados encontrados na literatura será baseada principalmente em artigos científicos do estado da arte.

A estrutura do trabalho se apresenta da seguinte forma: O capítulo 2 aborda o histórico dos estudos em Redes Neurais Artificiais, desde a modelagem matemática original a partir de conceitos estudados na biologia até aplicações modernas e perspectivas.

O capítulo 3 apresenta os processos de aprendizagem de uma RNA, as principais técnicas de treinamento de redes, sua natureza estatística e a adaptação dinâmica do sistema.

O capítulo 4 trata da arquitetura perceptron de camada única, sua concepção e possíveis aplicações dela e de desenhos análogos.

O capítulo 5 continua o quarto ao apresentar o perceptron de múltiplas camadas: vai-se defini-lo e apresentar as principais questões que suscitam enquanto estrutura de Redes Neurais Artificiais.

O capítulo 6 aborda o tema Redes Neurais Convolucionais: sua arquitetura geral e técnicas de aplicação.

O capítulo 7 inclui a conclusão do trabalho: relacionando Deep Learning e ConvNets aos resultados apresentados e perspectivas para o futuro.

(18)

2 Modelos Conceituais das RNA

A história da computação baseada na arquitetura neuronal biológica começa ainda em 1943, com os estudos de Warren S. McCulloch e Walter H. Pitts. Em seu artigo, A Logical Calculus of the Ideas Immanent in Nervous Activity (McCulloch, et al., 1943), os autores apresentaram o primeiro modelo artificial para um neurônio biológico, que segue uma lei de “tudo ou nada”. Esse artigo, geralmente aceito como o nascimento das disciplinas de redes neurais e inteligência artificial, estabeleceu que com um número suficiente dessas unidades básicas conectadas através de sinapses ajustadas e operando sincronicamente é possível a realização de qualquer função computável.

Em 1949, no livro The Organization of Behavior (Hebb, 1949), Donald O. Hebb definiu o conceito de aprendizado de uma rede neural biológica através de estímulo: propôs uma teoria para explicar o aprendizado em neurônios baseada no reforço das ligações sinápticas entre os mesmos (Hebb, 1949).

Em 1952 foi publicado o livro Design for a Brain: The Origin of Adaptive Behavior, de William Ross Ashby. A obra trata da noção básica de que o comportamento adaptativo não é inato, mas sim aprendido, e que através da aprendizagem o comportamento do sistema muda para melhor, e enfatiza os aspectos dinâmicos do organismo biológico como uma máquina e o conceito de estabilidade (Ashby, 1960).

Em 1958, Frank Rosenblatt (Rosenblatt, 1958) apresentou um novo modelo e método inovador de aprendizagem supervisionada, o perceptron. O que Rosenblatt buscava e que continua sendo objetivo dos estudiosos de RNAs é projetar redes que fossem capazes de fazer descobertas interessantes sem a necessidade de regras explícitas.

Em 1969 Marvin Lee Minsky e Seymour Papert chamaram a atenção para uma ampla gama de problemas (e.g., a criação de portas lógicas XOR a partir de perceptrons de uma camada) que não eram contemplados pelas arquiteturas em voga em seu livro Perceptrons, os chamados hard learning problems (Minsky, et al., 1972). A publicação dessa obra marca o início de um período de poucos avanços na abordagem de redes neurais – entre os principais fatores responsáveis por esse tempo de arrefecimento que duraria

(19)

até o início da década de 1980 destaca-se a razão tecnológica: não havia então computadores pessoais ou estações de trabalho para a experimentação.

Nos anos 1970, o conexionismo1 ficou adormecido em grande parte devido à repercussão do trabalho de Minsky e Papert (Minsky, et al., 1972) sobre as perspectivas de financiamento de pesquisas: são poucas e esparsas as equipes de pesquisadores que alcançam parcos resultados notáveis na área.

Em 1982, John Hopfield publicou um artigo, Neural Networks and Physical Systems with Emergent Collective Computational Abilities, que chamou a atenção para as propriedades associativas das RNAs, que foi em parte responsável pela retomada de pesquisas na área. O grande feito de Hopfield é apontado como sendo estabelecer a relação entre redes recorrentes auto-associativas e sistemas físicos, o que abriu espaço para se utilizar as teorias correntes da Física para o estudo de tais modelos (Hopfield, 1982).

A concepção do algoritmo de backpropagation (retropropagação, que permite treinamento no sentido reverso ao fluxo de informação normal da rede) mostra que RNAs de múltiplas camadas são capazes de resolver os hard learning problems de Minsky e Papert. Embora tenha sido descrito anteriormente, a prioridade da sua utilização em aprendizagem de máquina e da demonstração de como poderia funcionar é atribuída ao trabalho de 1986 de David Rumelhart, Geoffrey Hinton e Ronald Williams (Rumelhart, et al., 1986).

A partir de meados dos anos de 1980 houve uma nova explosão de interesse pelas RNAs na comunidade internacional, dado o avanço da tecnologia que agora permitia a realização física de modelos de nodos e sua interconexão. Elas se estabeleceram, como um tema interdisciplinar com raízes profundas em neurociências, psicologia, matemática, física e engenharia e continuam até hoje sendo motivo de pesquisa e inovação.

2.1 O Que São Redes Neurais Artificiais – RNAs

Antes de falarmos sobre Redes Neurais Artificiais – RNAs tem-se necessariamente de abordar os modelos que servem de inspiração para a sua

1Conexionismo é um conjunto de técnicas de diversos campos que modelam fenômenos mentais e de comportamento.

(20)

concepção. O cérebro é um sistema de processamento de informação “altamente complexo, não-linear e paralelo” (Haykin, 2001) – ele organiza suas unidades constitutivas, os neurônios, de forma a proceder a tarefas altamente especializadas muito mais rápido do que os computadores digitais.

A plasticidade do cérebro é o que permite que o sistema nervoso associado se adapte ao meio ambiente. Essa plasticidade se espelha nos neurônios de forma a viabilizar seu desenvolvimento ao longo do tempo: isso significa que as conexões sinápticas se reformulam em função das experiências do indivíduo, das necessidades e dos fatores do meio ambiente.

Uma Rede Neural Artificial é uma máquina concebida para mimetizar o modo como o cérebro realiza uma tarefa ou implementa uma função – trata-se de uma forma de computação não-algorítmica que é caracterizada por sistemas que, em algum nível, lembram a estrutura do cérebro: não sendo baseada em regras ou programas, a computação via RNAs se apresenta como alternativa à computação algorítmica consagrada. Para alcançar seus objetivos, RNAs empregam uma interligação maciça de unidades de processamento mais simples, denominadas neurônios artificiais – essas células computacionais são implementadas através de componentes eletrônicos ou simuladas através de programação em um computador digital, e calculam respostas a sua entrada por meio de funções matemáticas (normalmente não-lineares, e.g., função degrau ou sigmoide, e mesmo funções trigonométricas). Tais unidades estão dispostas em camadas interligadas por um grande número de conexões: em grande parte das arquiteturas essas conexões estão associadas a pesos que servem para ponderar a entrada recebida por cada neurônio da rede, e é nessa estrutura que o conhecimento é representado pela arquitetura da rede em questão.

Conforme (Haykin, 2001):

Uma rede neural é um processador maciçamente paralelamente distribuído constituído de unidades de processamento simples, que têm a propensão natural para armazenar conhecimento experimental e torná-lo disponível para o uso. Ela se assemelha ao cérebro em dois aspectos:

1. O conhecimento é adquirido pela rede a partir de seu ambiente através de um processo de aprendizagem.

(21)

2. Forças de conexão entre neurônios, conhecidas como pesos sinápticos, são utilizadas para armazenar o conhecimento adquirido. Deve-se salientar que as RNAs obtêm seu poder de computação de sua estrutura paralelamente distribuída e de sua competência de aprender, sendo capaz, portanto de generalizar – generalização pode ser definida como a habilidade de produzir saídas adequadas para entradas não mapeadas no treinamento: essas duas características das RNAs redundam na capacidade de solução de problemas complexos e de grande escala intratáveis pelo modelo tradicional da computação digital (Haykin, 2001). As capacidades das RNAs vão além de mapear relações de entrada e saída: elas são capazes de extrair informação não explicitada nos exemplos utilizados no aprendizado. RNAs são capazes de atuar como mapeadores universais de funções multivariáveis, com custo computacional que cresce linearmente com o número de variáveis, enquanto na computação tradicional, no pior dos casos, esse crescimento pode ser polinomial ou mesmo exponencial (Haykin, 2001).

Propriedades ou capacidades únicas associadas às RNAs (Haykin, 2001):

 Não-linearidade, que reflete a natureza das entradas;  Mapeamento de entrada-saída;

 Adaptabilidade a novos ambientes, mediante retreino dinâmico ou com professor;

 Resposta a evidências, como confiança estatística sobre respostas dadas;

 Disposição natural para lidar com Informação Contextual;  Tolerância a falhas, devido à sua natureza distribuída;  Implementa tecnologias de Integração em Larga Escala;  Uniformidade de Análise e Projeto;

 Analogia neurobiológica, o que as torna naturalmente transdisciplinar.

2.2 Insights Biológicos

O estudo sobre o cérebro humano e de como as redes neurais biológicas funcionam não chegou a termo: existem modelos (Bear, et al., 2015),

(22)

mas não se sabe ao certo como as funções cerebrais são realizadas. Contudo, a estrutura fisiológica básica destas redes e neurônios naturais é conhecida, e é nela que se baseiam as RNAs. O cérebro humano tem em torno de 1011 neurônios (Figura 1), e cada um destes processa sinais da comunicação com milhares de outros continuamente e em paralelo – a estrutura individual das unidades, a topologia de suas conexões e o seu comportamento em conjunto são a base para o projeto das RNAs.

As RNAs que nossa tecnologia atual permite implementar não superam a complexidade dos circuitos locais e inter-regionais do cérebro. Ainda há muitas oportunidades para os pesquisadores da área de RNAs aprenderem com o cérebro biológico, tanto em termos de unidades computacionais, quanto em arranjos dessas e arquiteturas de processamento - da mesma forma, as RNAs podem ser laboratório para teorias e modelos de neurocientistas, o que as transforma numa tecnologia pluripotente e interdisciplinar.

2.3 Modelos de Neurônio

Podemos apontar três elementos fundamentais do modelo neuronal (Haykin, 2001):

1. Um conjunto de sinapses ou elos de conexão, cada uma caracterizada por um peso ou força própria. Especificamente, um Figura 1 - Representação das principais estruturas do neurônio.

(23)

sinal x na entrada da sinapse j conectada ao neurônio k é multiplicado pelo peso sináptico w . É importante notar a maneira como são escritos os índices do peso sináptico w . O primeiro índice se refere ao neurônio em questão e o segundo se refere ao terminal de entrada da sinapse à qual o peso se refere. Ao contrário de uma sinapse do cérebro, o peso sináptico de um neurônio artificial pode estar em um intervalo que inclui valores negativos bem como positivos.

2. Um somador para somar os sinais de entrada, ponderados pelas respectivas sinapses do neurônio – as operações descritas aqui constituem um combinador linear.

3. Uma função de ativação para restringir a amplitude da saída de um neurônio. A função de ativação é também referida como função restritiva já que restringe (limita) o intervalo permissível de amplitude do sinal de saída a um valor finito. Tipicamente o intervalo da amplitude da saída de um neurônio é escrito como o intervalo fechado unitário [0, 1] ou alternativamente [-1, 1].

4. Um modelo neuronal também pode incluir um bias aplicado externamente, representado por b – ele tem o efeito de aumentar ou diminuir a entrada líquida da função de ativação, dependendo se ele é positivo ou negativo, respectivamente.

Matematicamente um neurônio 𝑘 é descrito pelas equações 2.1 e 2.2:

𝑢 = ∑ 𝑤 𝑥 (2.1)

𝑦 = 𝜑(𝑢 + 𝑏 ) (2.2)

onde 𝑥 são os sinais de entrada, 𝑤 são os pesos sinápticos do neurônio 𝑘, 𝑢 é a saída do combinador linear agindo sobre os sinais de entrada, 𝑏 é o bias, 𝜑 é a função de ativação, 𝑦 é o sinal de saída do neurônio. A presença do bias 𝑏 implica na aplicação de uma transformação afim2 à saída 𝑢 do combinador linear (Haykin, 2001):

𝑣 = 𝑢 + 𝑏 (2.3)

Ou seja, conforme o bias 𝑏 assume valores positivos ou negativos, a dependência entre o campo local induzido ou potencial de ativação 𝑣 do

2 Na geometria, uma transformação afim, um mapa afim ou uma afinidade é uma função entre espaços afins que preserva pontos, linhas retas e planos. Além disso, conjuntos de linhas paralelas permanecem paralelas após uma transformação afim. São exemplos a translação, escala, rotação, reflexão e o cisalhamento.

(24)

neurônio 𝑘 e a saída do combinador linear 𝑢 é alterada – ver-se-á, o bias altera a margem de disparo do neurônio.

O bias 𝑏 é um parâmetro externo do neurônio artificial 𝑘. Pode-se formular a combinação das equações 2.1, 2.2 e 2.3 como segue:

𝑣 = ∑ 𝑤 𝑥 (2.4)

𝑦 = 𝜑(𝑣 ) (2.5)

Na Equação 2.4, ao se adicionar uma nova sinapse que fará às vezes do bias, a sua entrada é 𝑥 = +1 , e o seu peso é 𝑤 = 𝑏 .

Essas considerações matemáticas simples são a base para o progresso dentro do assunto Redes Neurais Artificiais: todos os tópicos vindouros dependem de um bom entendimento das noções básicas, que não mudaram conforme o assunto necessariamente se complexifica.

2.3.1 Neurônios Artificiais

O modelo matemático correspondente ao funcionamento do neurônio proposto por McCulloch e Pitts (McCulloch, et al., 1943) – modelo MCP – é um sistema idealizado e simplificado a partir do que era sabido então sobre o neurônio biológico. As simplificações necessárias para tornar a modelagem factível gerou um modelo com 𝑛 terminais de entrada designados por 𝑥 (representam as projeções dendritais) e somente um terminal de saída 𝑦 (faz às vezes do axônio). Para simular as sinapses, os terminais 𝑥 do neurônio têm pesos associados 𝑤 que podem assumir valores positivos ou negativos, levando em consideração se as sinapses correspondentes são inibitórias ou excitatórias. O papel dos pesos é ponderar os sinais de entrada, quantificar a importância para o estado interno do neurônio dos impulsos sinalizados por cada conexão.

Em seguida, deve-se necessariamente abordar o fenômeno do disparo: estabeleceu-se que uma célula neuronal emite um impulso quando a soma dos impulsos mediados pelos pesos das sinapses ultrapassa um certo limiar de excitação (threshold) – o corpo do neurônio é, então, traduzido como um mecanismo matemático simples que proverá a soma ponderada dos valores de entrada, 𝑥 𝑤 , e fica a cargo de decidir se o neurônio disparará

(25)

(saída igual a 1) ou não (saída igual a 0) comparando o resultado da somatória ao threshold do neurônio. Nesse modelo, a ativação é processada através de uma função de ativação – na descrição do modelo MCP original, o papel de função de ativação é assumido pela função de limiar descrita na Equação 2.6:

∑ 𝑥 𝑤 ≥ 𝜃 (2.6)

onde 𝜃 é o limiar ou threshold do neurônio (Braga, et al., 2000), e pode-se assumir aqui que 𝜃 = 0 (assumir o threshold como 0 é assumir que não há “preferência” de sinal nos pesos, é só uma forma de simplificar o modelo).

O modelo MCP é resultado de simplificações, principalmente em termos de dinâmicas temporais. No modelo de McCulloch e Pitts os neurônios de cada camada de uma rede disparam simultaneamente: todas as células têm suas funções de ativação ponderadas sincronicamente, em um tempo discretizado. No cérebro, sistema biológico que embasa o modelo, não existe sincronização da ação neuronal, e a ativação de uma célula pode se dar a qualquer instante. Outro elemento tornado menos complexo é a ação de longo prazo dos neurotransmissores sobre os neurônios: como essas substâncias químicas levam certo tempo para se recombinar, sua permanência no meio influencia ativações ulteriores: a saída seguinte dos neurônios biológicos depende em certo grau dos estados anteriores.

As principais limitações na concepção do modelo MCP original podem ser apontadas conforme segue (Braga, et al., 2000):

1. Redes MCP com apenas uma camada só conseguem implementar funções linearmente separáveis.

2. Pesos negativos são mais adequados para representar disparos inibidores.

3. O modelo foi proposto com pesos fixos, não ajustáveis.

2.3.2 Função de Ativação Sigmoide

A chamada função de ativação, 𝜑(𝑣), é responsável por determinar a saída de um neurônio (que pode ter um valor qualquer, não necessariamente binário) em dependência com o campo local induzido 𝑣 (Haykin, 2001). As funções de ativação podem assumir muitas formas – Função de Limiar (threshold), Função Polinomial, Função Linear por Partes, Funções Não-Lineares – cada uma com propriedades intrínsecas que colaborarão no projeto

(26)

de uma RNA em particular. Será descrita aqui a Função Sigmoide, uma função não-linear útil para aplicações em redes neurais artificiais multicamada.

Função Sigmoide: essa classe de funções de ativação é bastante comum no projeto de RNAs, conforme ver-se-á nos próximos capítulos: sua característica é ser crescente em todo seu domínio e possuir segmentos de comportamento não-linear e aproximadamente linear. Pode-se exemplificar a classe de funções sigmoides pela chamada função logística, definida como:

𝜑(𝑣) =

( ) (2.7)

onde 𝑎 é chamado de parâmetro de inclinação da função sigmoide (Haykin, 2001).

São normalmente descritas funções de ativação cujo conjunto imagem é [0, 1], mas por vezes é necessário uma função que assuma um comportamento antissimétrico em relação à origem, uma função ímpar do potencial de ativação – neste caso ela poderia ter, por exemplo, saídas entre -1 e 1. Como alternativa à função sigmoide apresentada é possível optar pela função tangente hiperbólica, Equação 1.13:

𝜑(𝑣) = tanh (𝑣) (2.8)

2.3.3 Realimentação

Pode-se fazer referência à realimentação em um sistema quando um ou mais sinais seus de saída influenciam em alguma medida as entradas aplicadas a esse mesmo sistema – trata-se da formação de um ciclo ou “caminho fechado” no processo de transmissão de sinais através do sistema. Esse fenômeno acontece por todo o sistema nervoso dos animais superiores. No âmbito das RNAs, é crucial na abordagem de uma espécie especial de redes neurais artificiais designadas por redes recorrentes3 devido a sua característica bidirecional.

3 Uma rede neural recorrente pertence a uma classe de RNAs que inclui conexões ponderadas entre camadas anteriores e posteriores (em comparação com as redes de feed forward tradicionais, onde conecta alimentação apenas para camadas subsequentes). O fato desse tipo de rede incluir loops implica que elas podem armazenar informações ao processar novas entradas. Essa memória os torna ideais para tarefas de processamento onde as entradas anteriores devem ser consideradas (como dados da série temporal). (fonte:

https://imasters.com.br/data/um-mergulho-profundo-nas-redes-neurais-recorrentes, visitado em

(27)

2.4 Principais Arquiteturas de RNAs

Uma arquitetura de rede é um parâmetro que influencia na concepção da RNA e restringe os tipos de problemas matemáticos que podem ser preferencialmente abordados por ela. Por exemplo, RNAs de camada única e de neurônios tipo MCP restringem seu escopo de problemas tratáveis aqueles linearmente separáveis; redes recorrentes, que apresentam realimentação, agem mais apropriadamente sobre problemas que apresentem processamento temporal (como dados de uma série). “Fazem parte da definição da arquitetura da rede os seguintes parâmetros: números de camadas da rede, número de nodos em cada camada, tipo de conexão entre os nodos e topologia da rede” (Braga, et al., 2000).

A arquitetura de uma rede neural é diretamente conectada ao algoritmo de treinamento usado para habilitar a rede – diz-se que os algoritmos ou regras de aprendizagem sobre os quais se baseia o projeto de uma RNA são estruturados. Segundo (Haykin, 2001), podem-se apontar três tipos de arquiteturas de rede que são diferentes entre si em essência, segundo número de camadas e existência de laços de realimentação nos neurônios.

2.4.1 Redes Alimentadas Adiante com Camada Única

Diz-se que uma RNA é em camadas porque seus nodos computacionais estão organizados camadas paralelas sucessivas. Na concepção mais simples desse sistema, tem-se uma camada de nós de entrada de dados e uma camada de neurônios de saída, necessariamente desempenhando esses papéis e nessa ordem – esta rede é designada como alimentada adiante ou acíclica. Ela também é classificada como rede camada única, onde essa qualificação se refere à camada de nodos de saída (única que realiza computação, neste caso).

2.4.2 Redes Alimentadas Adiante com Múltiplas Camadas

Nessa classificação estão as RNAs que apresentam camadas ocultas, cujos nodos são chamados de neurônios ocultos ou unidades ocultas. O papel a ser desempenhado por esses é promover processamento útil entre a camada

(28)

de entrada e a saída da rede. Quanto mais camadas ocultas a rede possua, tornar-se-á mais capaz de extrair estatísticas de mais alta ordem (medidas sobre atributos que seriam ignorados em ordens mais baixas, analogamente a uma expansão em série truncada), capacidade essa bastante valiosa quando o número de nodos da camada de entrada é grande.

No caso mais comum, nodos de uma camada da RNA têm como entradas de dados somente saídas dos neurônios da camada precedente: o vetor final de saída da rede será uma resposta global ao padrão fornecido como entrada. Uma rede é dita totalmente conectada quando cada um dos nós de uma camada está conectado a todos os nós da camada posterior – caso faltem conexões sinápticas, classificamos a rede como parcialmente conectada.

2.4.3 Redes Recorrentes

O que distingue uma RNA recorrente de uma rede alimentada adiante é a presença de ao menos um laço de realimentação. A presença da auto-realimentação (quando a entrada de um neurônio é realimentada pela própria saída) não é obrigatória: por exemplo, uma rede de camada única na qual cada um dos neurônios realimenta seu próprio sinal de volta para as entradas de todos os outros nodos ainda é classificada como uma rede recorrente. Existindo laços de realimentação, há possibilidades não triviais para a capacidade de aprendizado e desempenho da rede. Deve-se notar também que operações de realimentação possibilitam a exploração de atraso temporal na rede, o que pode resultar em comportamentos mais complexos.

No presente capítulo viu-se um histórico das primeiras arquiteturas de Redes Neurais Artificiais. Foi apresentada uma definição do que são RNAs a partir das suas propriedades. Deve se salientar que a inspiração biológica para as RNAs, que não mudou (só se aprimorou) com o passar dos anos. Viu-se um modelo matemático do neurônio artificial ou nodo da rede: dentro desse modelo, viu-se a importância das funções de ativação. Outro elemento crucial na construção de um neurônio artificial é a existência ou não de realimentação, que foi explicado brevemente. Em outra seção, foram apresentadas as

(29)

principais arquiteturas de RNAs - uma em especial, a de Redes Alimentadas Adiante com Múltiplas Camadas, é aquela a que pertence à classe de redes neurais a que nos propomos explicar, as Redes Neurais Convolucionais – essas também são fruto de inspiração biológica, usam unidades neuronais como definidas aqui, com funções de ativação que podem ser do tipo sigmoide apresentado ou seguir uma outra função não-linear.

(30)

3 Aprendizagem em RNAs

Redes neurais artificiais têm como diferencial para com as formas de computação algorítmica e característica fundamental a habilidade de aprender a partir do seu ambiente e aprimorar seu desempenho através de interpolações e extrapolações do aprendido.

Refere-se a Algoritmo de Aprendizagem como um conjunto de regras ou procedimentos bem definidos para adaptar ou ajustar os parâmetros (intensidades das conexões entre neurônios – pesos associados às sinapses – e nível de bias) de uma RNA em um processo iterativo, para que a mesma possa aprender uma determinada função e melhorar seu desempenho (Haykin, 2001). Idealmente, a rede se torna mais instruída sobre o ambiente após cada iteração do processo de aprendizagem.

Os autores em (Mendel, et al., 1970) definem o conceito de aprendizagem no contexto de redes neurais da seguinte forma:

Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente no qual está inserida. O tipo de aprendizagem é determinado pela maneira pela qual a modificação dos parâmetros ocorre.

A aprendizagem é a fase inicial da solução de um problema por uma RNA: nela a rede (que se pode entender como um grafo orientado onde os nodos são os neurônios artificiais e as arestas são as conexões sinápticas) extrai informações relevantes de padrões de informação apresentados a ela, criando uma representação própria para o problema – a definição dada do processo de aprendizagem pressupõe, segundo (Haykin, 2001) a seguinte ordem de eventos

1. A rede neural é estimulada pelo 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 às modificações ocorridas na sua estrutura interna.

Não há algoritmos de aprendizagem únicos para cada projeto de redes neurais, mas uma variedade de algoritmos, cada um oferecendo vantagens específicas que se diferem entre si pela forma como são formulados

(31)

os ajustes de um peso sináptico de um neurônio. Mais um elemento que deve ser levado em conta é a maneira pela qual uma rede neural, enquanto máquina de aprendizagem formada por um grupo de nodos interligados, recebe influências do ambiente de aprendizado – neste contexto, tratamos de um Paradigma de Aprendizagem que diz respeito a um modelo do ambiente onde a RNA desenvolve suas atividades.

Os dois paradigmas principais de aprendizagem para RNAs são a Aprendizagem Supervisionada e o Aprendizagem Não-Supervisionada (Braga, et al., 2000).

3.1 Aprendizagem Supervisionada

Este paradigma é chamado aprendizagem supervisionada ou aprendizagem com um professor porque a entrada e a saída correspondente da rede são fornecidas por um supervisor externo, um professor. A tarefa dele é acertar os parâmetros da rede com o objetivo de estabelecer uma relação entre as entradas e suas respectivas saídas. O professor, que se pode considerar como tendo conhecimento sobre o ambiente julga o comportamento da rede (que desconhece o ambiente), visando direcionar o processo de treinamento (feedback para induzir à resposta esperada ou “correta”). A rede tem sua saída corrente comparada com a saída desejada, recebendo informações do supervisor sobre o sinal de erro (diferença entre a resposta desejada e a resposta real da rede). Para um diagrama do processo, vide a Figura 2.

(32)

Figura 2 - Diagrama de aprendizado com professor. Adaptado de (Haykin, 2001).

Para cada resposta (saída) a todo vetor de treinamento (vetor de dados de entrada cuja resposta-alvo pela rede é conhecida) provido pelo ambiente e submetido à rede (entrada) executa-se a comparação com a resposta-alvo (que é a vetor de saída ótimo a ser provido pela rede a partir de determinado conjunto de dados iniciais, conhecido pelo professor) com a resposta da RNA naquela iteração do treinamento, promovendo a alteração dos pesos das conexões sinápticas para minimizar o sinal de erro. Como medida de desempenho da rede pode-se usar o erro médio quadrado ou a soma dos erros quadráticos de todas as saídas obtidas a partir da amostra de treinamento – essa também é utilizada como função de custo a ser minimizada pelo algoritmo de treinamento. Idealmente, cada passo aproxima mais a função de custo da minimização, dado que as mudanças nos pesos e parâmetros da rede são incrementais, até uma solução caso alguma exista – o conhecimento do ambiente retido pelo professor será passado para a RNA através do treinamento: quando o nível de transferência o mais completo possível é alcançado (função erro de classificação minimizada), podemos então prescindir do professor e permitir à rede neural interagir com o ambiente sem ingerência externa.

O aprendizado supervisionado não é autossuficiente em todos os seus aspectos: dentro da sua proposta, uma vez que na ausência de um professor, a rede não se ajustará para absorver novas táticas para prover

(33)

respostas desejadas para situações não apresentadas durante seu treinamento por exemplos inicial.

Há duas formas para se executar o método supervisionado de aprendizagem para RNAs: off-line e on-line. A diferença entre ambas diz respeito a variação do conjunto de dados usados no processo de instrução da rede: em treinamentos off-line, o conjunto de dados é estático e a resposta da rede deve ser fixada após obtida – uma vez que um conjunto de dados novos suplementar seja somado ao conjunto inicial, um novo processo de treinamento terá início envolvendo a totalidade dos dados, de forma a se prevenir a influência sobre o processo inicial. No aprendizado on-line, há alteração dinâmica do conjunto de dados, implicando um processo permanente de adequação.

3.2 Aprendizagem Não-Supervisionada

Na aprendizagem não-supervisionada ou auto-organizada não há um professor ou supervisor para dirigir o processo de aprendizagem (Figura 3), o que implica que não existem casos-modelo da função sobre a qual a rede deve ser treinada. Neste caso, devem existir “condições para realizar uma medida independente da tarefa da qualidade da representação que a rede deve aprender, e os parâmetros livres da rede são otimizados em relação a essa medida” (Becker, 1991). As classes de trabalho (os elementos de ordem sobre os quais a rede vai se concentrar) emergem a partir das regularidades estatísticas dos dados de entrada: trata-se da rede ser capaz de tornar-se hábil na tarefa de construir representações internas (assimilar a identificação da ordem em seus pesos sinápticos e bias) para codificar esses conjuntos de dados.

Figura 3 -Diagrama de aprendizado não-supervisionado. Adaptado de (Haykin, 2001).

(34)

Existe semelhança tácita entre o modelo de aprendizado para seres humanos e o aprendizado supervisionado, contudo, muitos dos sistemas biológicos se desenvolvem através de aprendizado não-supervisionado, como por exemplo as etapas primárias dos sistemas de visão e audição.

Para os algoritmos associados ao paradigma não-supervisionado, somente os vetores de entrada da rede são acessíveis, ao contrário do aprendizado com professor, cuja execução demanda treinamento sobre pares de vetores de entrada e saída. Com a rede reconhecendo as regularidades estatísticas existentes no conjunto de entrada de dados, ela ganha a capacidade de formar representações internas para codificar características da entrada e estabelecer as classes ou grupos representativos (ordem imanente aos dados) associados automaticamente. O aprendizado não-supervisionado demanda, para se tornar viável, que exista redundância nos dados de entrada: sem ela é impossível determinar quaisquer padrões nesse conjunto (já que sem redundância a rede seria exposta a somente um exemplo de cada caso possível, o que não configura de maneira alguma um padrão).

A estrutura física da rede a qual se aplica o paradigma de aprendizado não-supervisionado apresenta uma multiplicidade de formas: o sistema pode ser formado pela camada de entrada e de saída, conexões feedforward (alimentadas adiante) entre ambas e conexões laterais entre os nodos da camada de saída; a rede pode ser feedforward mas apresentar múltiplas camadas – a livre organização brota da interação entre as camadas. Em ambos exemplos, o aprendizado se estabelecerá ao se modificar iterativamente os pesos das sinapses de todas as conexões entre nodos como resposta ao vetor de entrada.

3.3 Aprendizado por Reforço

Na aprendizagem por reforço, o aprendizado de correlações entre entradas e saídas é efetivado através da interação contínua com o ambiente, com o objetivo de minimizar uma medida escalar de performance. O aprendizado por reforço não pode ser, contudo, considerado uma forma particular de aprendizado supervisionado, ainda que a rede tenha algum feedback do ambiente. Este feedback é simplesmente um sinal de reforço, é

(35)

apenas uma avaliação do desempenho da rede, e não fornece qualquer informação instrutiva de como proceder para melhorá-lo: quando o sinal de reforço diz que uma saída está errada, ele não dá nenhuma sugestão de qual poderia ser a resposta certa. A rede precisa da experiência dos possíveis estados, ações, transições e realimentações do ambiente para atingir a configuração ótima. Este método de aprendizado por vezes é chamado de aprendizado com crítica.

A diferença crucial entre o aprendizado supervisionado e o aprendizado por reforço é a medida de desempenho usada em cada um dos casos. No aprendizado supervisionado, a mensuração de performance é baseada no vetor de respostas-alvo assumindo-se uma margem efetiva de erro conhecida, enquanto no aprendizado por reforço o desempenho é fundamentado em qualquer medida que possa ser provida ao sistema (Braga, et al., 2000).

Ao modelo de aprendizado por reforço é associado um crítico cujo papel é transformar um sinal de reforço primário recebido do ambiente, entrada escalar, em um sinal de reforço de melhor qualidade, também escalar, designado como sinal de reforço heurístico (Haykin, 2001). O sistema pode ser projetado para aprender por reforço atrasado, significando isso que o mesmo absorve uma sequência no tempo de estímulos (vetores de estado) provindos do ambiente e seus respectivos sinais de reforço heurístico: a finalidade desse processo de aprendizado é minimizar uma função de custo para avançar, sendo essa definida como a perspectiva do custo acumulado de ações tomadas ao longo de uma sequência temporal. Há a possibilidade de que certas ações tomadas anteriormente na sequência em questão sejam de fato os melhores determinantes do comportamento global do sistema: a função do sistema de aprendizagem é descobrir estas ações e realimentá-las para o ambiente (Haykin, 2001). Para um diagrama do aprendizado por reforço, vide Figura 4 abaixo:

(36)

Figura 4 -Diagrama para o Aprendizado por Reforço. Adaptado de (Haykin, 2001).

O aprendizado por reforço é uma modalidade na qual o conjunto de dados varia ininterruptamente, demandando contínuo processo de adaptação da rede, e é construído através de uma conjugação criteriosa de entrada-saída via um mecanismo de seleção e erro voltado para maximizar um índice de performance escalar chamado sinal de reforço (Braga, et al., 2000). Sutton (Sutton, et al., 1992), a partir de Thorndike (Thorndike, 1911) formulou a seguinte definição de aprendizado por reforço:

Se uma ação tomada pelo sistema de aprendizagem é seguida de estados satisfatórios, então a tendência do sistema de produzir esta ação particular é reforçada. Se não for seguida de estados satisfatórios, a tendência do sistema de produzir esta ação é enfraquecida.

O paradigma de aprendizagem por reforço pode por sua vez ser classificado em (Braga, et al., 2000):

 Aprendizagem Associativa. O meio fornece informações além do reforço, e um mapeamento, na forma estímulo-ação, deve ser aprendido.

 Aprendizagem Não-Associativa. O sinal de reforço é a única entrada que o sistema recebe do meio. O sistema seleciona uma única ação ótima, em vez de associar diferentes ações com diferentes estímulos.

(37)

Dependendo da natureza do ambiente, existem algumas classes de problemas de aprendizado por reforço (Braga, et al., 2000):

 Classe I: No caso mais simples, o sinal de reforço é sempre o mesmo para um dado par entrada-saída. Com isso existe um mapeamento definido para cada entrada-saída que a rede deve aprender, ou pelo menos um, se houver muitas saídas corretas para uma dada entrada. Os padrões de entrada são escolhidos aleatoriamente ou pelo ambiente, sem, no entanto, nenhuma referência às saídas anteriores. Um representante para esta classe é a Função de Avaliação, como descrito em (Haykin, 1994).  Classe II: Uma extensão comum é para um ambiente estocástico. Aqui um par de entrada-saída determina apenas a probabilidade de um reforço positivo. No entanto, essa probabilidade é fixa para cada para de entrada-saída, e mais uma vez a sequência de entrada não depende do passado. Um representante para essa classe é o Julgador Heurístico Adaptativo (Barto, et al., 1983).  Classe III: Ambos os sinais de reforço e padrões de entrada

podem depender arbitrariamente das saídas anteriores da rede. Representante desta classe é o Método de Diferença Temporal (Sutton, 1988).

No presente capítulo foi definido o conceito de algoritmo de aprendizagem para RNAs, que é o primeiro passo para se resolver um problema com redes neurais. Vimos os três paradigmas da aprendizagem em redes neurais artificiais: aprendizagem supervisionada (com um "professor" ou agente externo que direciona o treinamento) e aprendizagem não-supervisionada (baseada em regularidades estatísticas dos dados de entrada), além do aprendizado por reforço (quando a rede recebe feedback do ambiente, que indica o erro, mas não a forma de melhorar a classificação). Se verá oportunamente que as Redes Neurais Convolucionais usam de aprendizagem supervisionada principalmente, mas as demais formas são úteis em variadas arquiteturas em voga.

(38)

4 Perceptrons de Camada Única

Entre 1957 e 1958 Frank Rosenblatt modelou e propôs o conceito do perceptron como o primeiro elemento de RNA voltado para a aprendizagem com um professor (Rosenblatt, 1958). O perceptron é a estrutura mais simples de uma rede neural que pode ser usada para a classificação de padrões que sejam linearmente separáveis (vide Figura 5).

Figura 5 -Linearmente separável e não-linearmente separável.

A linha vermelha determina a separação entre duas classes de dados (círculos claros e círculos escuros) que foram submetidos à classificação por uma rede neural, em um espaço de fase bidimensional. Em (a) temos um problema linearmente separável (aqui o separador é representado por uma reta; em um espaço 3D seria um plano, e quando houver mais dimensões, um hiperplano), e em (b), um problema não-linearmente separável.

Essencialmente, o perceptron resume-se a um ou mais neurônios artificiais arranjados em uma camada única, com os pesos das sinapses de entrada ajustáveis e bias. Rosenblatt, em sua obra de 1962, Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms, apresenta pela primeira vez o algoritmo usado para ajustar os parâmetros livres do perceptron (Rosenblatt, 1962), ele demonstrou (Teorema da Convergência do Perceptron) que se as entradas usadas no treinamento da unidade são provenientes de duas classes linearmente separáveis de dados, então o algoritmo é convergente, e o resultado dele (a superfície de decisão) é um hiperplano que divide as populações.

(39)

Deve-se considerar o perceptron e a teoria agregada como um classificador de padrões. Vai-se tratar aqui do caso do perceptron construído em torno de um único neurônio – este é limitado a classificar padrões com duas entradas ou hipóteses. Pode-se estender a teoria para o caso de múltiplas hipóteses, expandindo a camada de saída (camada de computação) do perceptron para incluir mais neurônios, consequentemente permitindo realizar a classificação em mais de duas classes linearmente separáveis.

Figura 6 -Modelo do Perceptron.

(Fonte: https://stackabuse.com/introduction-to-neural-networks-with-scikit-learn/).

Neste capítulo abordar-se-á o modelo perceptron de camada única (em nosso caso trata-se de um único neurônio, mas, como visto, a camada única – camada de saída ou de computação – pode ser populada com mais unidades para a solução de problemas que envolvam mais de duas classes de dados), Figura 6 (na qual 𝑥 são as entradas do neurônio – 𝑖𝑛(𝑡) –, 𝑤 os pesos das sinapses, 𝜃 o bias naquele instante de tempo, e 𝑜𝑢𝑡(𝑡) a saída). O modelo perceptron será apresentado via algoritmo de treinamento de Rosenblatt.

4.1 O Perceptron

Quando surgiu a contribuição de McCulloch e Pitts para a modelagem do neurônio biológico, as possibilidades de topologias de redes neurais e a capacidade destas de computar funções booleanas, a computação digital estava dando seus primeiros passos e o pensamento científico em voga era que seria possível conceber um cérebro artificial inteligente a partir de

(40)

unidades perpetradoras de operações lógicas básicas. O conceito de treinamento de um neurônio artificial foi primeiramente introduzido por Rosenblatt. O modelo perceptron original tinha por base uma estrutura em rede, populada por neurônios artificiais MCP que seguiam uma estrita regra de aprendizado com professor. Rosenblatt veio finalmente a demonstrar seu teorema da convergência perceptron, que estabelece que um neurônio MCP treinado com algoritmo de aprendizado desenvolvido por ele sempre apresenta convergência para problemas linearmente separáveis (que são aqueles cujos dados podem ser separados em duas classes no espaço das entradas por um hiperplano: por exemplo, classificação entre números pares e ímpares).

O primeiro experimento foi uma simulação levada a cabo por Rosenblatt em seu computador IBM 704. Em seguida um hardware próprio foi desenvolvido, o Mark 1 Perceptron: era uma máquina para reconhecimento de imagens – possuía um “olho”, uma câmera com 400 fotocélulas, cada uma delas uma entrada para uma rede bicamada de neurônios artificiais MCP: uma camada de pesos fixos e a seguinte para os quais os pesos sinápticos eram ajustados em potenciômetros. A despeito de possuir três níveis distintos (entrada, associação, saída), o sistema é designado como perceptron de camada única, pois somente as unidades de resposta (relacionadas ao nível de saída) assumem comportamentos adaptativos.

4.1.1 Algoritmo de Aprendizagem

Na presente seção será descrito o algoritmo ou regra que rege o processo de aprendizagem do perceptron – o que determina como os pesos das sinapses vão se adaptar para executar o objetivo de promover a classificação de um conjunto de dados de entrada (Braga, et al., 2000).

Dado um vetor de pesos sinápticos 𝑤⃗(𝑡), busca-se, no processo de aprendizagem, correção de erros ou adaptação do perceptron, encontrar o incremento ∆𝑤⃗ de tal forma que 𝑤⃗(𝑡 + 1) = 𝑤⃗(𝑡) + ∆𝑤⃗ seja mais próximo da solução almejada (onde 𝑡 é o tempo discreto, ou iteração do treinamento).

Seja um neurônio qualquer da camada de computação do perceptron: seu vetor de entrada é dado por 𝑥⃗ (𝑡), seu vetor de pesos é 𝑤⃗ (𝑡), e a sua saída é dada por ∑ 𝑤 𝑥 = 𝑤⃗ ∙ 𝑥⃗ , onde 𝑤⃗ ∙ 𝑥⃗ é o produto interno ou

(41)

linear entre as grandezas 𝑤⃗ (𝑡) e 𝑥⃗ (𝑡). Levando em consideração o perfil MCP do nodo, tem-se uma situação limiar crítica de disparo quando 𝑤⃗ ∙ 𝑥⃗ = 𝜃, ou seja, 𝑤⃗ ∙ 𝑥⃗ − 𝜃 = 0: isso pode ser interpretado como o acréscimo de mais uma entrada nos vetores com os quais se está trabalhando, 𝑥 = 1 e 𝑤 = −𝜃, e se passará a designar os vetores modificados como 𝑥⃗(𝑡) e 𝑤⃗(𝑡). Agora o limiar de ativação do nodo é dado por 𝑤⃗ ∙ 𝑥⃗ = 0, sendo 𝑤⃗ = {−𝜃, 𝑤 , 𝑤 , … , 𝑤 } e 𝑥⃗ = {1, 𝑥 , 𝑥 , … , 𝑥 } .

O processo de correção de erros em si começa com a admissão de um par de treinamento {𝑥⃗, 𝑑} para um neurônio arbitrário da camada em questão, onde 𝑥⃗ é o vetor de entrada e 𝑑 é a resposta pretendida para a mesma entrada, 𝑑 ∈ {0,1}. A saída atual desse nodo para esse vetor de entrada é dita 𝑦, 𝑦 ∈ {0,1}: define-se o erro associado à saída atual como 𝑒 = 𝑑 − 𝑦. É fácil inferir que 𝑒 = 0 somente quando as respostas atual e pretendida são iguais, e 𝑒 ≠ 0 somente quando são distintas4.

Sejam 𝑑 = 1 e 𝑦 = 0: tem-se 𝑒 = 1 e 𝑤⃗ ∙ 𝑥⃗ < 0 uma vez que a saída real é nula e esse resultado por sua vez é filtrado por uma equação de limiar. Buscando uma interpretação geométrica para o par de vetores no espaço, temos |𝑤⃗| ∙ |𝑥⃗| cos(𝑤⃗, 𝑥⃗) < 0, o que implica cos(𝑤⃗, 𝑥⃗) < 0 e 90° < 𝛼(𝑤⃗, 𝑥⃗) < 270°, onde 𝛼 é o ângulo entre os vetores 𝑤⃗ e 𝑥⃗: a Figura 7 ajudará na tarefa de prosseguir com esse estudo:

Figura 7 -Interpretação geométrica para a situação 𝑑 = 1 e 𝑦 = 0.

4 Percebe-se de pronto que o processo de treinamento age também sobre os thresholds associados a cada neurônio, dada a inclusão de 𝜃 no vetor 𝑤⃗.

(42)

Na Figura 7, vê-se a posição dos vetores 𝑤⃗(𝑡) e 𝑥⃗(𝑡) para a situação em apreço, e do 𝑤⃗(𝑡 + 1) cujo erro já teria passado pelo ajuste. Decorre de imediato da interpretação geométrica deste caso que uma solução possível seria 𝑤⃗(𝑡 + 1) = 𝑤⃗(𝑡) + 𝜂𝑥⃗(𝑡), válida como regra de aprendizagem por correção de erro. A constante 𝜂, taxa de aprendizado, torna-se a mensuração da agilidade com que o vetor de pesos é atualizado.

Sejam 𝑑 = 0 e 𝑦 = 1: caso seja feita a mesma análise anterior, obtém-se uma regra de aprendizagem por correção de erro semelhante. Tem-se 𝑒 = −1 e 𝑤⃗ ∙ 𝑥⃗ ≥ 0 pela regra de disparo adaptada. Seguindo o mesmo caminho de antes, temos |𝑤⃗| ∙ |𝑥⃗| cos(𝑤⃗, 𝑥⃗) ≥ 0, o que implica 𝛼(𝑤⃗, 𝑥⃗) ≤ 90°. O objetivo é, como no caso anterior, mudar a paridade do produto interno ajustando o vetor de pesos 𝑤⃗(𝑡): devemos modifica-lo para que 𝛼(𝑤⃗, 𝑥⃗) > 90°. Uma análise geométrica análoga revelará que uma possível regra de correção de erro é dada por 𝑤⃗(𝑡 + 1) = 𝑤⃗(𝑡) − 𝜂𝑥⃗(𝑡).

Podemos reduzir a uma só regra de atualização do perceptron simples aquelas a que se chega nos dois casos, 𝑑 = 1 e 𝑦 = 0 ou 𝑑 = 0 e 𝑦 = 1, bastando utilizar perceber a conveniência dos valores assumidos pelos erros 𝑒 em cada caso:

𝑤⃗(𝑡 + 1) = 𝑤⃗(𝑡) + 𝜂𝑒𝑥⃗(𝑡) (4.1)

4.1.2 Exemplo de Implementação do Algoritmo de Treinamento

Pode-se descrever o algoritmo de treinamento para um perceptron de camada única da seguinte forma (Braga, et al., 2000):

1. Inicializar 𝜂 e o vetor de pesos 𝑤⃗;

2. Para cada par do conjunto de treinamento Γ = 𝑥⃗ , 𝑑 , atualizar o vetor de pesos para cada um dos nodos da rede segundo a regra 𝑤⃗(𝑡 + 1) = 𝑤⃗(𝑡) − 𝜂𝑒𝑥⃗;

3. Repetir o procedimento (2) até 𝑒 = 0 para todos os 𝑝 elementos do conjunto de treinamento em todos os nodos da rede.

Seja um perceptron de um único nodo e quatro entradas: como possui apenas um neurônio, é capaz de lidar somente com problemas

(43)

linearmente separáveis com duas classes de dados. Alimenta-se a RNA com dois vetores, 𝑥⃗ = [1 − 0,1 0,4 − 0,7 − 1,8] e 𝑥⃗ = [1 − 0,1 0,2 − 0,3 − 0,9] . Iniciam-se os parâmetros da rede, de forma arbitrária, com 𝜂 = 0,05 e 𝑤⃗(0) = [0 0 0 0 0] . A aplicação do algoritmo de treinamento do perceptron dá como solução final 𝑤⃗(5) = [−0,050 − 0,025 0,010 − 0,025 − 0,045] , onde 𝑡 = 5 é o número de iterações, ou tempo discreto.

O hiperplano que é a solução para o problema proposto (divide o espaço das entradas de tal forma que estabeleça classes de dados) é dado por

𝑤⃗(5) ∙ 𝑥⃗ = 0 (4.2)

0,025 𝑥 − 0,010𝑥 + 0,025𝑥 + 0,045𝑥 = −0,050 (4.3) e pode-se perceber facilmente que 𝑤⃗(5) ∙ 𝑥⃗ = 1 e 𝑤⃗(5) ∙ 𝑥⃗ = 0, ou seja, as saídas promovem a classificação pretendida das entradas.

Com o perceptron nasceu o conceito de Rede Neural Artificial pluripotente, que pode ser treinada (ou se treinar) para desempenhar diversas tarefas (no caso, separação de dados em um número maior ou menor de classes, dependendo da dimensão da rede neural). Foi visto um breve histórico de sua concepção, sua regra clássica de treinamento - uma das primeiras a serem implementadas com tal primor – e um breve exemplo de sua implementação. Mas o perceptron não é capaz de lidar com todo tipo de problema, a implementação de uma classificação do tipo XOR é um deles: para esses casos foi desenhada uma arquitetura nova, o perceptron multicamada, que será a base para a arquitetura das Redes Neurais Convolucionais.

(44)

5 Perceptrons Multicamadas

Foi demonstrado (Minsky, et al., 1972) que o perceptron de camada única resolve somente problemas linearmente separáveis: para o tratamento de problemas não-linearmente separáveis, demanda-se o uso de perceptrons multicamadas, ou seja, aqueles que possuem as chamadas camadas ocultas, intermediárias. Essa RNA consiste, então, de uma camada de entrada (sensores, nós fonte), uma ou mais camadas ocultas (nós computacionais) e uma camada de saída (nós computacionais), e o sinal de entrada percorre a rede até a saída, camada por camada (chamada então de rede alimentada adiante ou feedforward).

George Cybenko formulou e provou uma das primeiras versões do Teorema Universal da Aproximação em 1989, usando funções de ativação do tipo sigmoide (Cybenko, 1989). Esse teorema estabelece que uma RNA alimentada adiante com uma única camada oculta e número finito de nodos pode aproximar (ou seja, implementar) funções contínuas em subconjuntos compactos de ℝ (espaço real de n dimensões, ao qual pertencem vetores reais de n entradas), sob suposições moderadas sobre a função de ativação – contudo, a possibilidade provada para o aprendizado de uma função, incorporada em parâmetros da rede, não implica necessariamente a capacidade algorítmica de aprendizado desses mesmos parâmetros: pode haver necessidade de um tempo “infinito” para que determinado algoritmo convirja, ou pode esse priorizar um mínimo local na superfície de erro. Em 1991 Kurt Hornik, matemático austríaco, provou que não é a função de ativação, mas sim a arquitetura da rede multicamada alimentada adiante que dá a esse tipo de RNA o potencial de serem aproximadores universais, ou seja, simular qualquer função (Hornik, 1991).

A pergunta passa a ser “como treinar uma rede perceptron multicamada?”. Em primeira abordagem pode-se tentar treinar sub-redes, e.g., camada por camada independentemente: neste caso poder-se-ia formar cada uma por conjuntos de redes perceptron monocamada, uma para cada conjunto de entradas linearmente separável, no caso da camada de entrada, e que tratem as saídas das camadas anteriores nos demais casos. Tal solução,

Referências

Documentos relacionados

Os resultados obtidos pela análise de eficiência produtiva e economica em empreendimentos agropecuários com múltiplos produtos e insumos através de DEA mostram que este

Apesar da existência do projeto desde 2004 e da inserção da ação como área de atuação do Mafra em Forma da SMS - programa institucionalizado por meio de lei - o desafio atual

(José Félix da Silva, comerciante e ex-colono da Serra do Mel / Vila.. Como o Projeto ocupava tão grande extensão geográfica, seria necessário um grande número de colonos, vindos

17.º, n.º 4 - Se a abertura de um processo de insolvência for recusada por tribunal de um Estado-membro da União Europeia em virtude de a competência caber aos tribunais

sem sementes nas condições tropicais do Vale do Rio São Francisco, observaram que para todos os cultivares o período compreendido da poda ao início da brotação variou de seis a

Portanto, diante de tudo que foi apresentado, para obter uma melhor análise sobre a influência da dependência financeira dos agentes militares sobre os gastos e o grau de

Não são mencionadas também estratégias específicas para realizar a gestão deste ponto em específico ou um processo de alinhamento e gestão de interesses como

Abrir a base de dados durante ‘arrastar e largar *.cda’ – Quando arrastar e largar ficheiros de áudio para a janela do Nero Express 6, a janela da base de dados será