Baixe o app para aproveitar ainda mais
Prévia do material em texto
Deep Learning: Explorando os Principais Conceitos em Redes Convolutivas e Redes Recorrentes Msc. Luis Ricardo Arantes Filho Doutorando em Computação Aplicada – INPE Orientadores: Dr. Lamartine N. F. Guimarães e Dr. Reinaldo Roberto Rosa Roteiro • Aprendizado de Máquina e Redes Neurais • Aprofundamento das Redes Neurais Artificiais • Formalismos: Generalização, Overfitting, Underfitting e The Curse of Dimensionality. • Deep Learning e Redes Neurais Profundas • Redes Neurais Convolutivas • Redes Neurais Recorrentes • Ferramenta Keras (Python) • Discussão • Conclusão Inteligência Artificial O Teste de Turing A Definição de Inteligência Can Machines Think? Ex Machina • Modificação do Teste de Turing. • Verifica diversos atributos do objeto de estudo. • Neste ponto é definido o objetivo da inteligência de máquinas. • Inteligência Artificial • Visão utópica (Atualmente). • Estamos longe deste ponto? • Cabe ao tipo de definição de Inteligência. Aprendizado de Máquina • Inteligência de máquinas é a habilidade de interpretar dados de entrada, executar tarefas e tomar decisões com acurácia e rapidez. • Classificação de objetos, identificação de padrões, predição de sequências em dados, obtenção de relações entre dados. Aprendizado de Máquina • "Processos computacionais desenvolvidos com o propósito de realizar tarefas de tal forma a simular a habilidade humana para obter a melhor solução para um determinado problema." Aprendizado de Máquina • As principais técnicas ML são descritas como o aprendizado de uma função alvo f que mapeia os dados de entrada (x) para suas respectivas saídas (classes) (y) de forma que y = f(x). Técnicas de Estatística Aprendizado de Máquina Inteligência Computacional Sensibilidade ao conhecimento do especialista e aos dados produzidos • Representações diferentes de dados para o mesmo problema podem acarretar em diferentes respostas mesmo que sejam utilizados os mesmos algoritmos de Aprendizado de Máquina. • Existe a divisão destes dados quando um algoritmo de Aprendizado de Máquina é aplicado. Etapas do Aprendizado de Máquina EDA (Exploratory Data Analysis) Exploratory Data Analysis – Data Science Tipos de Aprendizado de Máquina No aprendizado supervisionado, um especialista disponibiliza um rótulo, uma categoria, uma classe ou um custo para cada padrão no conjunto de treinamento, busca-se reduzir a soma dos custos para estes padrões. O aprendizado não-supervisionado pode ser definido pela busca de relações e similaridades entre dados de maneira não orientada, ou seja, sem a interferência de um especialista. Aprendizado em Camadas • Uma arquitetura de camadas, no sentido computacional, pode ser definida como o processo de computação envolvido na produção de uma saída através de dados de entrada. • Uma propriedade particular dos grafos é a profundidade, ou seja, o tamanho do maior caminho que uma entrada percorre até chegar no valor de saída. Redes Neurais Artificiais • Uma rede neural é baseada especificamente no neurônio biológico que, de maneira simplificada, pode ser definido em três componentes principais: dendritos, axônios e soma (núcleo). Redes Neurais Artificiais (RNAs) Redes Perceptron • Desenvolvida por Rosemblat nos anos de 1960. • Problemas Linearmente Separáveis e Não-Linearmente Separáveis. • O Problema do XOR - Minsky e Papert (1969). • Retardamento das pesquisas em Inteligência Artificial. Aprofundamento das RNAs • Redes Neurais tradicionais possuem sua profundidade definida como o número de camadas (neurônios agrupados como unidades intermediárias). • Solucionar o problema da não- linearidade. • Redes Perceptron de Múltiplas Camadas – MultiLayer Perceptron (MLP). Formalismos • Princípio da Generalização Local • Overfitting, Underfitting, "Goodfitting" - • The Curse of Dimensionality Deep Learning • Agregado a necessidade e complexidade do processamento de diversos tipos de dados, foi desenvolvido o conceito de Deep Learning. • As técnicas e fundamentos de Deep Learning são voltados a redes neurais artificiais (são a nova geração de redes neurais), com o objetivo de explorar e amplificar o poder de análise não linear de dados utilizando uma grande quantidade de camadas intermediárias. • A definição de Deep Learning basicamente é colocada como uma classe de técnicas em ML e CI que exploram o aprendizado e análise não linear em muitas camadas de forma hierárquica de maneira Supervisionada, Não-Supervisionada e Hibrida. Definição Métodos baseados em Inteligência Computacional e Aprendizado de Máquina, que possuem como característica principal a utilização do processamento não-linear de informações em muitos níveis e camadas. Estes níveis de processamento são responsáveis por extrair e tratar informações dos dados de entrada de forma a obter características e relações complexas destes dados de maneira hierárquica, ou seja, as informações são extraídas em termos de baixo nível até termos de alto nível. Segundo Deng et al. (2014), Goodfellow et al. (2016), Francois (2017), Manaswi et al. (2018) o conceito geral de Deep Learning pode ser definido da seguinte maneira: Redes Neurais Profundas • A motivação para as Redes Neurais Profundas, Deep Neural Networks (DNN), provêm da criação de modelos e algoritmos estruturados em muitas camadas de processamento em que não exista prejuízo a generalização e ao aprendizado de máquina. • A inclusão de mais camadas intermediárias em RNAs vem da constatação de que o processamento de informações não lineares e o mapeamento das funções torna-se mais eficiente. • Problemas no aprofundamento das redes clássicas. Problemas • Quanto maior o número de camadas mais refinada é abstração de características. Isso não garante um aprendizado ótimo já que a adição de mais camadas pode gerar uma generalização rígida (overfitting). • Quanto maior for a dimensionalidade dos dados maior será a quantidade de camadas para descrever estes dados. • Em certos pontos, o número de camadas cresce exponencialmente à medida que os dados tornam-se mais complexos. • O aprofundamento em muitas camadas (n > 4) gera um prejuízo durante o treinamento do modelo, pois o erro medido é propagado para as camadas anteriores. Muitas camadas intermediárias receberiam a informação do erro de treinamento com uma grande imprecisão. "Arquiteturas rasas podem generalizar qualquer função matemática assim como arquiteturas profundas. Mas, boas generalizações e representações de funções feitas por arquiteturas profundas dificilmente podem ser representadas por arquiteturas rasas." Redes Neurais Convolutivas • Possuem uma arquitetura profunda e hierárquica, ou seja, redes CNNs tem a capacidade de extrair informações dos dados brutos e representá-las em muitos níveis de abstração, isto é, das representações das características mais simples às mais complexas. • Utilizadas para o reconhecimento e classificação de imagens. • Este processo de extração de características e de mapeamento de características é feito de maneira não-supervisionada, cada estrutura de camadas convolucionais, bem como suas dimensões, realizam a extração de características de uma forma. CNNs • LeNets, propostas por LeCun et al. (1995). • Desenvolvidas para o reconhecimento de padrões em imagens. • A arquitetura desta rede pode ser descrita em 3 componentes: • Camadas Convolucionais. • Camadas de amostragem. • Camadas totalmente conectadas. Camada Convolutiva• A camada convolutiva é responsável pelo processamento dos dados brutos de forma a extrair destes dados informações. Geralmente esta camada consiste de filtros e mapeamentos sobre os dados, de forma a obter padrões locais de dados matriciais. Convolução A operação de convolução extrai características preservando as relações espaciais entre os pixeis, aprendendo os padrões locais utilizando pequenas matrizes (Filtros) com tamanhos pré- definidos que podem extrair informações de borda, cor, intensidade, etc. A convolução é realizada através do produto escalar entre uma região da imagem (com as dimensões do filtro) e o Filtro. Na sequência, o filtro é movido para outra região e o produto escalar é realizado novamente até que toda a imagem seja percorrida. Os valores da matriz de pesos (Filtros) são atualizados no decorrer do treinamento permitindo a identificação de regiões importantes para a extração das características principais dos dados. Camada de Amostragem - Pooling • A camada de pooling sumariza os valores de saída do mapeamento de características feito pela camada convolutiva. O objetivo desta operação é reduzir o tamanho das matrizes de mapeamento geradas pela convolução abstraindo apenas as características mais importantes desta matriz. Camada Totalmente Conectada • Após a etapa de extração e mapeamento de características feitas pelas camadas convolutivas e de pooling todos estes parâmetros aprendidos são inseridos em camadas totalmente conectadas. Estas camadas se comportam como RNAs clássicas. • São Ativadas pela função Softmax(). Redes Neurais Recorrentes (Clássicas) & LSTM • As Redes Neurais Recorrentes, Recorrent Neural Networks (RNN) são uma categoria de RNAs aplicáveis à classificação e reconhecimento de padrões em dados sequenciais, tais como, séries temporais, voz, linguagem, dados textuais, etc. As RNN são capazes de classificar, agrupar e realizar predições sobre dados, pois conseguem manter uma espécie de memória entre os neurônios da rede. Arquitetura • Uma RNN pode ser estruturada como uma rede MLP com a adição de loops e interconexões nos neurônios da camada intermediária. Em redes deste tipo o aprendizado de um dado elemento depende do aprendizado dos elementos que o precedem. Séries temporais • Esta arquitetura garante que uma saída no tempo {t = n} seja dependente das entradas no tempo {t = n, t = n−1, t = n−2, ..., t = 1}. • O processo de treinamento é feito pelo algoritmo backpropagation, se a sequência de dados for longa existe a possibilidade da função convergir para mínimos ou máximos locais. • RNN podem ser consideradas como tendo arquiteturas rasas. t Long Short- Term Memory (LSTM) • Propostas por Hochreiter e Schmidhuber (1997b). • Aprofundamento das RNN clássicas. Aumento da Capacidade de Memória. • Estas redes foram desenvolvidas para lidar com o problema da convergência do treinamento em grandes sequências de dados de entrada. • Problemas Vanishing Gradient e Exploding Gradient. • A rede LSTM visa estabelecer relações nos dados que possuem dependências temporais de longo prazo. Esta rede inclui células de memória na camada intermediária (neurônios de memória, nós de contexto) que mantém as informações por longos períodos de tempo durante as épocas de treinamento. Células de Memória I • Estas células são ativadas de acordo com portões (gate units) que controlam o fluxo de informações ativando cada célula por vez. • Podem haver n células deste tipo em cada camada intermediária de uma rede LSTM e, sendo assim, a sua arquitetura é profunda. Células de Memória II • A arquitetura descrita na Figura indica uma célula de memória c_j, os portões in_j e a unidade de saída out_j . A conexão auto-recorrente (com peso 1,0) indica o feedback com um atraso de um intervalo de tempo. • Os portões ativam e desativam a célula de memória (HOCHREITER; SCHMIDHUBER, 1997a). • As conexões recorrentes adicionam estado ou memória à rede e permitem que ela aprenda e aproveite a natureza ordenada das observações dentro das sequências de entrada. • A memória interna indica que as saídas da rede são condicionadas ao contexto recente na sequência de entrada e não a sequência que acaba de ser apresentada como entrada para a rede. Deep LSTM Modelos de redes LSTM com sequencias de entradas gerando as saídas Ferramenta Keras Prototipagem rápida e fácil (total modularidade, minimalismo e extensibilidade), Suporte a redes convolutivas e recorrentes, incluindo combinação de ambas, Suporte a esquemas de conectividade arbitrária (incluindo treino de N para N). Execução em CPU ou GPU. Aplicações Redes CNNs Foram geradas um total de 1810 imagens (50% para evento e 50% para não-evento) para o treinamento e teste dos modelos de Deep Learning. Estrutura e características Arquitetura Camada de Entrada com as dimensões de 300 x 300 x 1; 1a Camada: Camada de Convolução com as dimensões 32 x 32, e Filtro de tamanho 3 x 3; Função de Ativação ReLU; 2a Camada: Camada de Pooling com o Filtro de tamanho 2 x 2 com a operação de Maxpooling; 3a Camada: Camada de Convolução com as dimensões 64 x 64, e Filtro de tamanho 3 x 3; Função de Ativação ReLU; 4a Camada: Camada de Pooling com o Filtro de tamanho 2 x 2 com a operação de Maxpooling; 5a Camada: Camada de Convolução com as dimensões 64 x 64, e Filtro de tamanho 3 x 3; Função de Ativação ReLU; 6a Camada: Camada de Totalmente Conectada com 64 neurônios; Função de Ativação ReLU; 7a Camada: Camada de Saída (Totalmente Conectada) com 2 neurônios, caracterizando a classificação binária; Função de Ativação Softmax; Resumo das características do modelo Como as camadas se comportaram durante o treinamento de um dado padrão 1º Camada + 2º Camada de Pooling 3º Camada 4º Camada 5º Camada Resultados do Treinamento Resultados Estatísticas do Modelo – Treinamento Erro médio quadrático: 0.0015723270440251573 Acurácia: 0.9984276729559748 Precisão: [0.99689441] Recall: [0.9968254] F1 -Score: [0.99844479] Estatísticas do Modelo – Testes Erro médio quadrático: 0.014652014652014652 Acurácia: 0.9853479853479854 Precisão: [0.97142857] Recall: [0.97080292] F1 -Score: [0.98550725] Comparação com o modelo MLP Clássico Configurações Testadas Resultados para o mesmo conjunto • Estatísticas do Modelo – Testes Erro médio quadrático: 0.104 Acurácia: 0.895 Precisão: [0.897] Recall: [0.895] F1 -Score: [0.894] Aplicações Redes LSTM A série temporal utilizada contém de 3242 pontos contabilizando a quantidade mensal de manchas solares desde 1749 a 2019. Para o treinamento do modelo de rede LSTM foram utilizados uma sequência de entrada de 3210 pontos que cobrem os anos de 1749 a 2016. O objetivo da construção do modelo foi prever os pontos até o ano de 2019 e desta forma indicar a capacidade do modelo de realizar a predição. Estrutura e Características Camada de Entrada considerando 66% dos pontos da série temporal; Constata-se um Modelo de rede de N para N, ou seja, um conjunto de entradas para gerar um conjunto de saídas; Uma camada com 4 células de memória; Uma camada totalmente conectada para geração das sequências de predição. Resultados – Erro da função de custo = 0,0004 RNASs e a Extrapolação e Interpolação Conclusão • O aprofundamento das RNAs não é trivial, já que não basta apenas adicionar um grande número de camadas para melhorar o aprendizado do modelo. • Em redes profundas o processamento dos dados e a redução de dimensionalidadesem que se percam informações importantes é o que difere os modelos profundos dos modelos clássicos. • O que se buscou com esta pesquisa foi instanciar os principais métodos e evidenciar uma forma simples de implementação destes métodos. A área de Deep Learning é recente e está sujeita a muitos desafios que envolvam a exploração de métodos, o trabalho com os dados e a adequação de determinados modelos de redes profundas para tipos específicos de dados. Datas das Referências Obrigado • "Não Existe Inteligência Artificial" Lamartine, 2016
Compartilhar