Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Redes Neurais Paradigmas de Aprendizado de Redes Neurais Artificiais O que são Redes Neurais Artificiais (RNA)? Em suma, uma RNA é um método computacional de aprendizagem baseado no funcionamento do cérebro humano. Seu funcionamento pode ser entendido a partir de uma breve analogia com os sentidos do corpo humano. Quando estamos inseridos em um ambiente, nossos sentidos, como olfato, tato ou visão, fornecem informa- ções sobre as condições do meio em que estamos inseridos. É a partir dessas informações que pautamos as nossas ações. Se estamos em um ambiente muito quente, com alta incidência de raios solares, nossos sentidos são capazes de interpretar essas informações e nos dar as possíveis consequências de uma per- manência prolongada em tal ambiente, como uma insolação solar ou até mesmo lesões severas na pele. Essa capacidade interpretativa é construída a partir de um processo de aprendizado, constituído basica- mente por experiências adquiridas ao longo de nossas vidas e lições que nos são transmitidas em um pro- cesso geracional. Assim como no exemplo a pouco citado, uma rede neural artificial trabalha inserida em um meio, de onde se retiram informações iniciais (inputs) e suas consequências (outputs), de acordo com o treinamento obtido através do processo de aprendizagem da rede neural. Este processo pode ficar mais claro a partir de uma representação gráfica: Figura 1: Exemplo de uma rede neural artificial. As camadas em vermelho, amarelo e azul descre- vem, respectivamente, a camada de entrada (input layer), camada oculta (hidden layer) e camada de saída (output layer). Na Figura 1, a camada de entrada recebe os estímulos do meio absorvendo os dados iniciais, que, logo em seguida, são processados pelas camadas ocultas conforme o processo de aprendizagem da máquina. Por fim, os resultados são apresentados na camada final, ou camada de saída. Arquiteturas de Rede A forma como estruturamos a RNA é orientada pelo algoritmo de aprendizado escolhido. Em geral, estes algoritmos são escolhidos de acordo com a complexidade do problema a ser atacado. Suas estruturas bási- cas podem ser divididas em três classes: 2 Redes Neurais • Redes Alimentadas Adiante com Camada Única Quando organizado em camadas, os neurônios são distribuídos em nós de entrada e saída, em um sistema de distribuição de informações não-cíclico. Estes nós formam as camadas de entrada e saída, como mostra a Figura 2. Figura 2: Exemplo de uma rede de camada única. • Redes Alimentadas Adiante com Múltiplas Camadas Como no caso anterior, os dados nesse tipo de rede flui apenas em uma direção, no entanto, entre as ca- madas de interface existem N camadas, ditas camadas ocultas, formadas por nós ocultos. Este tipo de ar- quitetura é extremamente útil quando o número de nós na camada de entrada é particularmente grande, dando mais profundidade à análise da RNA. Logo abaixo temos um exemplo de rede com múltiplas cama- das: Figura 3: Exemplo de uma rede com múltiplas camadas. • Redes Recorrentes Ao contrário dos casos anteriores, uma rede recorrente possui um fluxo cíclico de dados, com ao menos um dado de saída sendo reintroduzido na camada de entrada após o término do processo de aprendizado. Este tipo de rede pode ser construída com ou sem camadas ocultas, como mostra a Figura 4. Figura 4: Exemplo de duas redes recorrentes, com camada única (esquerda) e camada oculta (di- reita). 3 Redes Neurais A realimentação da camada de entrada com dados da camada de saída afeta profundamente a capacidade de aprendizagem da rede e seu desempenho, alterando o comportamento linear da RNA. Aprendizado Supervisionado O processo de aprendizagem de uma RNA pode ser definido como uma busca por padrões em um conjunto de dados que permitam predições de comportamento. De maneira simples, o processo de aprendizado pode ser dividido em três tipos: supervisionados, não O processo supervisionado ocorre quando ensinamos à rede como fazer predições mais assertivas a partir de resultados já assimilados e de veracidade comprovada. Neste caso, adicionamos à rede um elemento dito professor, que possui experiência prévia sobre os resultados desejados. Deste modo, quando compa- ramos a diferença entre os resultados obtidos com os resultados esperados, adicionamos o elemento erro ao nosso aprendizado de máquina. Aprendizado Não Supervisionado São classificadas como redes não supervisionadas as redes que não possuem nenhum direcionamento durante o processo de aprendizagem. Nesse caso, a própria rede é responsável por agrupar os padrões de treinamento de acordo com o número de entradas. Aprendizado por Reforço De modo semelhante ao primeiro caso, no aprendizado por reforço o conhecimento prévio de um resultado assertivo é substituído por um crivo, que avalia os resultados obtidos por um determinado processo de apren- dizado, reforçando suas diretrizes caso o resultado seja satisfatório. Atividade Extra Recomendo assistir esse vídeo, com legendas em português. Mas o que *é* uma Rede Neural? | Deep learning https://www.youtube.com/watch?v=aircAruvnKk (19:13) Algoritmos de Aprendizado de Redes Neurais Aprendizagem por Correção de Erros Como o próprio nome diz, a aprendizagem por correção de erros corresponde a uma aprendizagem com base em valores referentes ao erro de um valor obtido em relação a um valor referencial. Para efeito de assimilação, vamos imaginar o seguinte caso: Uma rede alimentada adiante, composta por uma camada de entrada, uma camada de saída, uma ou mais camadas ocultas, todas estas com apenas com um nó. Ao ser acionado pelo valor de entrada, os neurônios da camada oculta acionam o neurônio de saída. A partir disso, o sinal de saída é comparado a um valor de referência, de modo que a diferença entre os dois sinais seja minimizada ao longo de uma série de ajustes corretivos, como na figura abaixo: Figura 1: Exemplo de uma rede neural com aprendizagem por correção de erros. https://www.youtube.com/watch?v=aircAruvnKk https://www.youtube.com/watch?v=aircAruvnKk 4 Redes Neurais Como podemos observar na Figura 1, este tipo de rede pode ser classificada como rede retroalimentada. Neste caso, dk(n) representa o sinal de referência, yk(n) o sinal de saída do neurônio k, ek(n) o erro compu- tado (dk - yk), por fim, x(n) o sinal produzido pelas camadas ocultas. Este tipo de aprendizagem também recebe o nome de regra delta, ou regra de Widrow-Hoff. Aprendizagem Hebbiana O conceito de aprendizagem hebbiana em redes neurais é baseado na regra de aprendizagem proposta por Hebb, em 1947, na publicação A Organização do Comportamento (The Organization of Behavior). O postu- lado proposto por Hebb diz o seguinte: Quando um axônio da célula A está perto o suficiente para excitar uma célula B e participar do seu disparo repetida ou persistentemente, então algum processo de crescimento ou modificação metabólica acontece em uma das células ou em ambas, de tal forma que a eficiência de A com uma das células que dispara B é aumentada. Quando fazemos uma analogia com o comportamento humano, podemos interpretar o postulado de Hebb como um processo repetitivo de alguma tarefa, seja ela estudar ou praticar um determinado esporte, que cria ou reforça um hábito e aprimora uma determinada habilidade. Em redes neurais, o processo de aprendizagem hebbiana consiste em observar se um determinado padrão ocorre simultaneamente em dois ou mais neurônios, de modo a reforçar a sua relevância no processo de aprendizagem. Se caso um determinado padrão ocorre de forma assíncrona na rede neural, então a rele- vância deste comportamento é enfraquecida, podendo até ser completamente ignorada em processos futu- ros. Aprendizagem Competitiva Em contraposto ao método de aprendizado hebbiano, em que mais de um neurônio pode ser ativado simul- taneamente, na aprendizagem competitiva os neurônios competem pelaativação, que ocorre de maneira única em um determinado instante. Neste tipo de aprendizagem a competição ocorre de acordo com o peso estatístico atribuído a cada neurônio, sendo o critério de avaliação as informações de entrada da primeira camada. Uma vez identificado o neurô- nio vencedor, um critério de avaliação binária é distribuído aos competidores, sendo 1 o valor atribuído ao neurônio vencedor, e 0 aos perdedores. Esta característica dá a aprendizagem competitiva a alcunha de “o vencedor leva tudo”. Aprendizagem de Boltzmann A aprendizagem de Boltzmann recebe este nome em decorrência dos princípios estocásticos da mecânica estatística, muitos deles consolidados pelo físico estatístico Ludwig Eduard Boltzmann. Neste caso a aprendizagem ocorre de maneira recorrente, atribuindo aos neurônios valores binários, +1 e - 1. Estes valores indicam se um neurônio está ativo (+1) ou inativo (-1). A distribuição aleatória destes valores constitui o chamado estado do sistema, que é apresentado na forma de uma equação energia (E). Conforme as interações ocorrem, dizemos que a rede neural transita para um estado de equilíbrio que, em poucas palavras, pode ser interpretado como a configuração de maior precisão interpretativa da rede neural. Tarefas de Aprendizagem A escolha de um método de aprendizado deve ser feita com base nas tarefas que uma rede neural deve exercer. Tendo isso em mente, dedicaremos esta seção para expor alguns tipos de tarefas que uma rede neural pode realizar em seu processo de aprendizado. a. Filtragem, ou triagem de dados Como o próprio nome diz, esta tarefa realiza a filtragem de dados que possuam algum tipo de ruído ou interferência indesejada. Esta tarefa é particularmente útil quando os nossos objetivos são: Extração de da- dos em um determinado intervalo de tempo; Suavização dos dados a partir da coleta de dados em uma ampla faixa de tempo, aquém da região de interesse; Previsão de resultados com base na coleta de infor- mações no presente. 5 Redes Neurais b. Controle O controle é uma tarefa crucial para a determinação do caráter crítico de uma rede neural. Nessa tarefa são definidos os critérios de admissão nas primeiras camadas que levam aos sinais de saída com valores próxi- mos, quando não iguais, aos valores de referência. Este problema pode ser atacado utilizando duas aborda- gens, ambas apresentadas no módulo anterior: Aprendizagem direta e aprendizagem indireta. c. Aproximação de funções Nessa tarefa, a rede neural, munida apenas de informações de entrada e saída, tenta aproximar uma função que reproduza os resultados observados. Para tal, um conjunto de funções testes passam por um processo de escrutínio, onde o melhor resultado será aquele que minimizar a diferença entre o resultado original e o resultado simulado. A habilidade com que essa tarefa é realizada depende da capacidade da rede em iden- tificar os sistemas pré-definidos que possuam afinidade com os dados processados. d. Associação de padrões O aprendizado por associação é uma tarefa em que dados armazenados orientam a tomada de decisão em uma fase de recordação. A taxa de êxito nesta tarefa pode ser atribuída a experiência do algoritmo: quanto mais informações (padrões) armazenados pela máquina, melhor será a sua tomada de decisão em relação aos dados de entrada. A associação pode assumir duas formas: auto-associação ou hetero associação. A primeira consiste no armazenamento de padrões, que são apresentados à rede de maneira recorrente, dando a máquina uma apresentação distorcida de um padrão original, que serve como orientação na recuperação de um padrão específico em um processo de aprendizagem não-supervisionado . A hetero associação consiste na apre- sentação de padrões aleatórios, formando um processo de aprendizagem supervisionada. e. Reconhecimento de padrões Pode ser entendido como um processo no qual os sinais de entrada são classificados dentro de uma gama de classes pré-definidas. Estas classes, cuja complexidade é determinada de acordo com suas variabilida- des, são construídas de acordo com um processo de treinamento da rede neural. Posteriormente, o sinal de entrada é distribuído de acordo com o treinamento em um processo de decisão puramente estatístico. Este tipo de tarefa pode ser dividido em duas formas: • Uma máquina constituída por duas partes: a primeira uma rede não-supervisionada cuja função é extrair características, e uma segunda rede, supervisionada, cuja função é classificar os padrões; • Uma única máquina, em que a caracterização é realizada pelas camadas ocultas. Atividade Extra Recomendo que assistam esse vídeo: Está inglês, mas você pode ativar a legenda. Hebbian Learning Rule: https://www.youtube.com/watch?v=p6qU8DlIcas (12:43) Desenvolvimento de uma Rede Neural Perceptron O perceptron (Rosenblatt, 1958), é o modelo mais simples e antigo de uma rede neural, que nos permite compreender de maneira simples o funcionamento de uma RNA em termos matemáticos. https://www.youtube.com/watch?v=p6qU8DlIcas https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron 6 Redes Neurais Em resumo, um perceptron pode ser representado como um único neurônio que recebe várias entradas e produz uma única saída, como mostra a Figura 1. Figura 1: Representação matemática de um perceptron. Esta configuração também é conhecida pelo modelo de McCulloch-Pitts, que será aprofundado em módulos posteriores. Perceptron de Camada Simples Como na Figura 1, vamos imaginar um Perceptron de camada simples com apenas três entradas (inputs), denominados por x1, x2 e x3. Ao determinarmos um parâmetro de importância a cada uma das entradas (pesos estatísticos), podemos determinar a soma ponderada das entradas como na seguinte equação: em que pj (em outros módulos denotamos w) representa o peso associado a xj. A partir de um valor limite (threshold), definimos o valor binário do output, que será dado por sendo b o threshold. O valor representado por b recebe o nome de bias (viés), e pode ser interpretado como uma grandeza que mede a facilidade de ativarmos o Perceptron (output = 1). Note que, no caso citado, o Perceptron pode ser utilizado como uma função lógica em programação. Este tipo de função engloba os operadores booleanos, como a função AND ou OR. Perceptron de Múltipla Camada (PMC) Um Perceptron de múltiplas camadas pode ser definido como uma RNA com uma ou mais camadas ocultas que tenham n neurônios (Figura 2). Figura 2: Exemplo de PMC, em que n representa o número de átomos e m o número de camadas ocultas 7 Redes Neurais Ao contrário do Perceptron de camada simples que possui um único neurônio de saída, o PMC é capaz de correlacionar o sinal de saída de diversos neurônios da camada de saída. Linguagem de Programação Python Atualmente existem diversas ferramentas capazes de lidar com a construção de redes neurais. Entre essas muitas ferramentas, a que mais se destaca no cenário atual é a linguagem de programação Python. Por quê? Entre todas as linguagens de programação, o Python é de longe a ferramenta que mais possui recursos implementados, que são capazes de atacar problemas de natureza estatística. Estas ferramentas são im- plementadas em pacotes como o SciPy, NumPy, Matplotlib, entre outras, que, além de versáteis, são de fácil compreensão e gratuitas.Além das qualidades já citadas, o Python possui uma extensa comunidade de usuários, que participam ativamente na criação e aprimoramento de ferramentas e bibliotecas. Link para acessar dados da disciplina nas práticas: https://drive.google.com/drive/folders/1CfCX6G-8y7CHTHGMc8T-2xG068EXmFdQ?usp=sharing Link para acessar todas as práticas e programas durante a disciplina: https://drive.google.com/drive/folders/1zhcDYkPFUWyls27N_PJfgj9-5VMgqKD9?usp=sharing Atividade Extra Recomendo o seguinte artigo que se encontra no link abaixo: https://www.deeplearningbook.com.br/o-perceptron-parte-1/ Abordagem Neurodinâmica de Aprendizagem por Reforço Revisitando Aprendizagem por Reforço Como vimos nos módulos anteriores, a aprendizagem por reforço consiste no enfrentamento de um pro- blema complexo com base em um sistema de metas. Ao atingir uma meta específica, a inteligência artificial recebe uma recompensa. Caso a máquina realize uma ação indesejada, a mesma recebe uma punição. Embora as recompensas sejam definidas pelo usuário, a rede possui autonomia total para solucionar os problemas. Este tipo de abordagem é comumente utilizada em problemas dinâmicos, em que não se conhecem solu- ções ou parâmetros que levem ao resultado desejado. De fato, o caminho a ser percorrido neste problema será descoberto pela máquina em um processo de tentativa e erro. Um exemplo deste tipo de aprendizado pode ser ilustrado da seguinte forma: Imagine que você queira ensinar o seu cão uma determinada ação, como sentar ou latir ao seu comando. Ao realizar os comandos, espera-se que, ao menos na primeira vez, o cão não entenda o seu comando. Neste caso, o cão será repreendido por meio de uma punição. No mo- mento em que o cachorro realizar a ação desejada, o mesmo será recompensado com petiscos ou algo semelhante. A repetição dessas ações faz com que o cão aprenda a obedecer o comando por meio de uma relação causa-efeito. De maneira análoga, a ciência de dados utiliza os mesmos subterfúgios para treinar máquinas em determi- nadas tarefas, como identificar determinados padrões em um banco de imagens, ou a correlação entre cer- tas palavras e o gênero textual de um artigo, entre outras. Abordagem Clássica e Moderna Podemos separar o aprendizado por reforço em duas abordagens (Haykin, 2001): https://drive.google.com/drive/folders/1CfCX6G-8y7CHTHGMc8T-2xG068EXmFdQ?usp=sharing https://drive.google.com/drive/folders/1zhcDYkPFUWyls27N_PJfgj9-5VMgqKD9?usp=sharing https://www.deeplearningbook.com.br/o-perceptron-parte-1/ 8 Redes Neurais A abordagem clássica, na qual a aprendizagem acontece através de um processo de punição e recompensa com o objetivo de alcançar um comportamento altamente qualificado. A abordagem moderna, que se fundamenta em uma técnica matemática conhecida como programação dinâmica para decidir sobre o curso de ação considerado estágio futuros possíveis sem realmente experi- mentá-los; a ênfase aqui está no planejamento. Elementos da aprendizagem por reforço (abordagem moderna) A seguir, são listados alguns elementos da aprendizagem por reforço: • Agente: Entidade que realiza ações em busca de recompensas. • Ambiente: O cenário em que se encontra o agente. • Recompensa: Feedback enviado do ambiente ao agente. • Estados e Ações: O modelo de aprendizagem por reforço possui um número discreto de estados que o sistema pode ocupar, assim como um número discreto de ações que um agente pode tomar. • Política: Uma política (decisão), é definida como um comportamento de um agente em um instante de tempo particular. Sua evolução ocorre de acordo com a maximização da função valor, o que resulta em uma política ótima (P. Helena, 2014). As iterações políticas se alternam entre dois passos: no primeiro, avalia- se o custo para avançar com a política corrente; no segundo, atualiza-se a política em relação à função custo. • Função valor: Elemento preditivo da soma de recompensas em longo prazo provocadas por uma política específica. A partir dessa predição, o agente toma as decisões com base na maximização da recom- pensa (P. Helena, 2014). • Fator Q: De maneira resumida, podemos dizer que o fator Q é uma medida de custo em relação a adoção de certas políticas pelo sistema. Este fator é empregado nos passos de avaliação política e de me- lhoria política. Programação Neurodinâmica A programação neurodinâmica tem por objetivo encontrar uma política ótima, melhorando assim as ações tomadas pelo sistema em relação aos estados acessíveis. Este processo é, deveras, custoso do ponto de vista computacional. Os problemas mais simples costumam possuir um número muito elevado de estados, fazendo com que cada iteração ocorra de maneira lenta, em um intervalo de tempo nada prático. São pro- blemas como este que nos levam a busca não por políticas ótimas, mas sim por políticas subótimas. O processo de busca por políticas subótimas é feito por meio de aproximações adequadas das funções de otimização, usando como base apenas um vetor de parâmetros e a estrutura geral da função escore. Atividade Extra Entenda as cadeias de Markov, por meio do xadrez, no vídeo abaixo (inglês-legendado) https://www.youtube.com/watch?v=63HHmjlh794 (13:20) Redes Recorrentes Dirigidas Di- namicamente Rede Neural Adaline A principal diferença entre a regra Adaline (também conhecida como regra de Widrow-Hoff) e o perceptron de Rosenblatt é que os pesos são atualizados com base em uma função de ativação linear em vez de uma função de etapa unitária como no modelo Perceptron. https://www.youtube.com/watch?v=63HHmjlh794 https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente 9 Redes Neurais Figura 1 - Perceptron Figura 2 - Neurônia Linear Adaptativo (Adaline) A diferença é que vamos usar a saída de valor contínuo da função de ativação linear para calcular o erro do modelo e atualizar os pesos, em vez dos rótulos de classe binários. Para o treinamento do Adaline precisamos compreender os métodos dos mínimos quadrados, conhecido como Regra Delta. Essa regra afirma que a modificação no peso sináptico de um nó é igual a multiplicação do erro na entrada. 10 Redes Neurais Rede Neural Sigmoid Neurônios sigmóides onde a função de saída é muito mais suave do que a função de grau. No neurônio sigmóide, uma pequena mudança na entrada causa apenas uma pequena mudança na saída, em oposição à saída escalonada. Existem muitas funções com a característica de uma curva em forma de “S”, conhecidas como funções sigmóides. A função mais comumente usada é a função logística. Figura 2 - Representação matemática do neurônio Sigmoid. Não vemos mais uma transição abrupta no limiar b. A saída do neurônio sigmóide não é 0 ou 1. Em vez disso, é um valor real entre 0–1 que pode ser interpretado como uma probabilidade. Rede Neural Recorrente (RNR) Uma rede neural recorrente (RNN) é um tipo de rede neural artificial que usa dados sequenciais ou dados de série temporal. Esses algoritmos de aprendizado profundo são comumente usados para problemas ordi- nais ou temporais, como tradução de linguagem, processamento de linguagem natural (NLP), reconheci- mento de fala e legendagem de imagens; eles são incorporados a aplicativos populares, como Siri, pesquisa por voz e Google Translate. Como as redes neurais de feedforward e convolucionais (da qual veremos no próximo módulo), asredes neurais recorrentes usam dados de treinamento para aprender. Eles se distin- guem por sua “memória”, pois recebem informações de entradas anteriores para influenciar a entrada e a saída atuais. Enquanto as redes neurais profundas tradicionais presumem que as entradas e saídas são independentes umas das outras, a saída das redes neurais recorrentes depende dos elementos anteriores dentro da sequência. Embora os eventos futuros também sejam úteis para determinar a saída de uma de- terminada sequência, as redes neurais recorrentes unidirecionais não podem levar em conta esses eventos em suas previsões. Figura 1 - Redes neurais recorrentes Veremos com mais detalhes nos vídeos aulas as funções de ativação e os conceitos de redes recorrentes dirigidas dinamicamente. Atividade Extra Recomendo a leitura bem interessante de um artigo no site: https://imasters.com.br/data/um-mergulho-profundo-nas-redes-neurais-recorrentes. https://imasters.com.br/data/um-mergulho-profundo-nas-redes-neurais-recorrentes 11 Redes Neurais Algoritmo Backpropagation Conceito de Feedforward Em uma rede do tipo feedforward, as camadas são conectadas umas às outras de modo que o fluxo de informações não encontre caminhos de volta. Em outras palavras, neste tipo de rede as informações per- correm apenas uma única direção, como mostra a Figura 1. Figura 1 - Grafo Feedforward Backpropagation O termo backpropagation se refere ao tipo de treinamento da rede neural. Neste caso, o treinamento é do tipo supervisionado, com o erro sendo calculado e minimizado a cada interação por meio de modificações nos pesos sinápticos. Para que isso ocorra, precisamos de uma função ativação diferenciável. O método utilizado na minimização do erro é conhecido por descida do gradiente. Este método aplica o operador gradiente na última camada da rede neural, formando um vetor de derivadas parciais. A partir deste vetor, os pesos são atualizados em um processo conhecido por backward pass. Derivada Podemos interpretar uma derivada como a taxa de variação de uma função. Um exemplo clássico deste conceito surge quando analisamos um problema da física de movimento uniformemente variado, conhecido por MUV. Neste caso, o movimento é uniformemente acelerado (aceleração constante), de modo que a taxa de variação da velocidade seja constante. Em termos simples, em um problema de MUV, a aceleração é dada pela derivada da função velocidade. A derivada pode ser obtida de duas formas, pelo método analítico ou numérico. A seguir, detalhamos um pouco mais cada um destes dois métodos. Podemos encontrar a derivada de uma função em um determinado ponto a partir do método de diferencia- ção numérica, que consiste em calcular a inclinação da reta tangente utilizando dois pontos infinitamente próximos, como mostra a Figura 2. Figura 2: Representação da diferenciação numérica [H. Kinsley, Neural Networks from Scratch in Python, 2020]. https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-backpropagation https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-backpropagation 12 Redes Neurais Derivada Analítica O método em questão consiste na solução analítica de uma derivada. A principal desvantagem deste mé- todo é seu grau de dificuldade, que aumenta de acordo com a complexidade da função derivada. Entretanto, quando resolvemos analiticamente uma derivada, obtemos seu valor exato, ao contrário do método numé- rico. Segundo a notação de Leibniz, uma derivada pode ser definida como: Se a função f(x) for uma constante qualquer, então a derivada será nula No caso de uma função linear simples, como f(x)=x, a derivada será uma constante Neste caso, multiplicamos a função com expoente decrescido em uma unidade (x⁰), pelo expoente antigo (1) Se f(x) for uma função quadrática, do tipo f(x)= 2 x², então sua derivada será Note que a função f(x) é formada por duas funções distintas, uma constante (2), e a outra quadrática (x²). Portanto, utilizamos a regra do produto. Gradiente O gradiente pode ser interpretado como um vetor de derivadas parciais, cuja representação é feita pela se- guinte equação em que os termos em negrito (x, y e z) representam os versores das coordenadas cartesianas x, y e z. Por ser um vetor, o gradiente de uma função f(x,y,z) também possui uma representação matricial: Atividade Extra Para compreender melhor o algoritmo backpropagation veja o vídeo abaixo com legendas em português: https://www.youtube.com/watch?v=Ilg3gGewQ5U (13:53) https://www.youtube.com/watch?v=Ilg3gGewQ5U https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-som-self-organizing-map- 13 Redes Neurais Algoritmo SOM (Self-Organizing Map) Mapas Auto-Organizáveis A estrutura de Mapas Auto-Organiźaveis (SOM, Self Organized Map), consiste em uma rede, ou grade, de uma ou duas dimensões, como mostra a FIgura 1. Figura 1: Exemplo de uma Rede de Kohonen. HAYKIN S. (2001) Este tipo de rede neural (Figura 1) foi proposta por Teuvo Kohonen em 1982, e é amplamente utilizada na mineração de dados (data mining) devido a sua capacidade de agrupamento de dados. Este tipo de rede é um exemplo clássico de um sistema não-supervisionado baseado em aprendizado com- petitivo, onde a competição entre os neurônios se dá pela implementação de uma conexão de inibição lateral (lateral inhibition connections). Este estado competitivo estimula a auto-organização dos neurônios em pa- drões que serão determinados pelos vetores de entrada. Por este motivo, este tipo de rede recebe o nome SOM. Redes de Kohonen Um dos exemplos mais conhecidos de SOM é a chamada Rede de Kohonen. Este tipo de rede é formada por uma estrutura do tipo feedforward, em que os nós são distribuídos em uma rede bidimensional em uma configuração totalmente ligada, ou seja, cada um dos nós recebe uma ligação dos inputs da camada inicial (a Figura 1 é uma representação clássica de uma Rede de Kohonen). Podemos encontrar inúmeras confi- gurações para este tipo de rede, que variam de acordo com o número de colunas e linhas (podemos encon- trar configurações com apenas uma linha ou coluna, a depender do problema). Componentes de um SOM O processo de organização deste tipo de rede pode ser dividido em quatro componentes, que serão abor- dados a seguir: a. Inicialização: Nesta etapa, os pesos são distribuídos aos vetores de maneira aleatória. b. Competição: Cada neurônio computa seu respectivo valor de acordo com uma função discriminante. https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-som-self-organizing-map- https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-som-self-organizing-map- 14 Redes Neurais O neurônio que obter o menor valor é declarado o vencedor. A função discriminante é dada por com xi sendo os N inputs da camada inicial (xj = {x1,...,xN}) e wji os pesos entre as conexões sinápticas (wji={j=1,...,M;i=1,...,N}). Esta função mede a distância entre o vetor de ligação x e o peso associado ao neurônio j. c. Cooperação: O neurônio vencedor determina a localização espacial dos vizinhos mais próximos, co- nhecidos por vizinhos excitados. O número de vizinhos excitados depende do tipo de grade, que, no caso bidimensional, pode ser do tipo hexagonal ou retangular (Figura 2). Figura 2: Tipos de grades bidimensionais. Neste caso, o número de vizinhos próximos na grade retangular e hexagonal será, respectivamente, 4 e 6. As interações laterais são dadas pela equação topologia dos vizinhos, em que v(x) representa o índice do neurônio vencedor, Sj,v(x) a distância lateral entre os primeiros vizinhos do neurôniovencedor, e σ o decrescimento exponencial da vizinhança em um tempo t. d. Adaptação: Os neurônios excitados reduzem seus respectivos valores por meio de ajustes nos pesos sinápticos, de modo a melhorar a resposta do neurônio vencedor na iteração seguinte. O ajuste dos pesos é feito pela seguinte equação: em que η representa a taxa de aprendiz. Resumo do processo SOM: Em suma, podemos resumir todos os processos do algoritmo SOM nos seguintes tópicos: • Inicialização: são atribuídos pesos aleatórios aos vetores wji (vetores pesos). • Vencedor: o neurônio vencedor é identificado pela equação v(x). • Atualização: os pesos são atualizados pela equação Δwji. • Convergência: a convergência do mapa é verificada. Se o critério de convergência for satisfatório, o processo é encerrado. Caso contrário, voltamos à segunda etapa (Vencedor). Atividade Extra Veja o comportamento de um mapa SOM. https://www.youtube.com/watch?v=k7DK5fnJH94 https://www.youtube.com/watch?v=k7DK5fnJH94 15 Redes Neurais Prática e Desafios dentro do contexto de Rede Neurais Classificadores de Aprendizado de Máquina A classificação é o processo de prever a classe de dados dados. As classes às vezes são chamadas de alvos / rótulos ou categorias. A modelagem preditiva de classificação é a tarefa de aproximar uma função de mapeamento (f) de variáveis de entrada (X) para variáveis de saída discretas (y). Por exemplo, a detecção de spam em provedores de serviços de e-mail pode ser identificada como um problema de classificação. Esta é a classificação binária, uma vez que existem apenas 2 classes como spam e não spam. Um classificador utiliza alguns dados de treinamento para entender como determinadas variá- veis de entrada se relacionam com a classe. Nesse caso, os e-mails de spam e não spam conhecidos devem ser usados como dados de treinamento. Quando o classificador é treinado com precisão, ele pode ser usado para detectar um e-mail desconhecido. A classificação pertence à categoria de aprendizagem supervisionada onde os alvos também fornecem os dados de entrada. Existem muitas aplicações de classificação em muitos domínios, como aprovação de crédito, diagnóstico médico, marketing direcionado, etc. A arquitetura apropriada depende da aplicação do modelo. Para a maioria dos casos, os modelos de feedfor- ward fornecem resultados razoavelmente precisos e, especialmente para aplicativos de processamento de imagem, as redes convolucionais têm um desempenho melhor. Pode haver várias camadas ocultas no modelo, dependendo da complexidade da função que será mapeada pelo modelo. Ter mais camadas ocultas permitirá modelar relacionamentos complexos, como redes neurais profundas. No entanto, quando há muitas camadas ocultas, leva muito tempo para treinar e ajustar seus pesos. As redes neurais artificiais desenvolvem um desempenho impressionante na maioria das aplicações do mundo real. Possui alta tolerância a dados ruidosos e é capaz de classificar padrões não treinados. Normalmente, as redes neurais artificiais têm melhor desempenho com entradas e saídas de valor contínuo. Método de Holdout Método de Holdout é um tipo de método de validação. Ou seja, o conjunto de dados fornecidos é dividido em 2 partições para testar e treinar 20% e 80%, respectivamente. O conjunto de treinamento será usado para treinar o modelo e os dados de teste invisíveis serão usados para testar seu poder preditivo. Análise de Regressão A análise de regressão consiste em um conjunto de métodos de aprendizado de máquina que nos permitem prever uma variável de resultado contínua (y) com base no valor de uma ou várias variáveis preditoras (x). Resumidamente, o objetivo do modelo de regressão é construir uma equação matemática que defina y como uma função das variáveis x. Em seguida, esta equação pode ser usada para prever o resultado (y) com base em novos valores das variáveis preditoras (x). A regressão linear é a técnica mais simples e popular para prever uma variável contínua. Ele assume uma relação linear entre o resultado e as variáveis preditoras. Tecnicamente, os coeficientes de regressão linear são determinados de forma que o erro na previsão do valor de resultado seja minimizado. Este método de calcular os coeficientes beta é chamado de método dos mínimos quadrados ordinários. Observe também que os modelos de regressão linear podem incorporar variáveis preditoras contínuas e categóricas . 16 Redes Neurais Ao construir o modelo de regressão linear, você precisa diagnosticar se o modelo linear é adequado para seus dados. Em alguns casos, a relação entre o resultado e as variáveis preditoras não é linear. Nessas situações, você precisa construir uma regressão não linear, como regressão polinomial ou spline (da qual não trataremos neste curso). Quando você tem vários preditores no modelo de regressão, pode desejar selecionar a melhor combinação de variáveis de previsão para construir um modelo preditivo ideal. Este processo denominado seleção de modelo, consiste em comparar vários modelos contendo diferentes conjuntos de preditores, a fim de seleci- onar o modelo de melhor desempenho que minimiza o erro de predição. As abordagens de seleção de modelo linear incluem melhores subconjuntos de regressão. Em algumas situações, como em campos genômicos, você pode ter um grande conjunto de dados multiva- riados contendo alguns preditores correlacionados. Nesse caso, as informações, no conjunto de dados ori- ginal, podem ser resumidas em algumas novas variáveis (chamadas de componentes principais) que são uma combinação linear das variáveis originais. Esses poucos componentes principais podem ser usados para construir um modelo linear, que pode ter mais desempenho para seus dados. Esta abordagem é co- nhecida como métodos baseados em componentes principais, que incluem: regressão de componentes principais e regressão de mínimos quadrados parciais . Um método alternativo para simplificar um modelo multivariado grande é usar a regressão penalizada, que penaliza o modelo por ter muitas variáveis. A regressão penalizada mais conhecida inclui a regressão do cume e a regressão do laço . Você pode aplicar todos esses modelos de regressão diferentes em seus dados, comparar os modelos e, finalmente, selecionar a melhor abordagem que explica bem seus dados. Para fazer isso, você precisa de algumas métricas estatísticas para comparar o desempenho dos diferentes modelos na explicação de seus dados e na previsão do resultado de novos dados de teste. O melhor modelo é definido como o modelo que apresenta o menor erro de predição. As métricas mais populares para comparar modelos de regressão incluem: Root Mean Squared Error, que mede o erro de predição do modelo. Corresponde à diferença média entre os valores conhecidos observados do resultado e o valor previsto pelo modelo. RMSE é calculado como RMSE = Atividade Extra Treine sua rede neural usando o TensorFlow. https://www.tensorflow.org/tutorials/keras/classification?hl=pt-br (classificação básica) https://www.tensorflow.org/tutorials/keras/classification?hl=pt-br
Compartilhar