RNA aplicadas Sistemas que aprendem sobre tendências e regras de negócio RNA aplicadas. Agenda: ● O que é RNA; ● Onde e quando utilizar; ● Como aplicar; ● Exemplo de código; ● Case; ● Cuidados e observações. RNA aplicadas. O que é RNA? Redes Neurais Artificiais são algoritmos de inteligência artificial inspirados no Sistema Nervoso Central (cérebro), capazes de realizar aprendizado de máquina e reconhecimento de padrões. ● Geralmente dependem de treinamento; ● Possui grande capacidade de generalização. RNA aplicadas. O que é RNA? Ex: Reconhecer imagens de cachorro. 1. Fase de treino: Sim Não RNA aplicadas. O que é RNA? Ex: Reconhecer imagens de cachorro. 2. Fase de classificação: Sim Não RNA aplicadas. O que é RNA? Ex: Reconhecer imagens de cachorro. 2. Fase de classificação: Sim Não RNA aplicadas. O que é RNA? Ex: Reconhecer imagens de cachorro. 2. Fase de classificação: Sim Não Capacidade de generalizar RNA aplicadas. Onde e quando usar uma RNA? As RNA podem ser usadas para modelar relações complexas entre entradas e saídas, ou para encontrar padrões em dados. Exemplos: ● ● Em uma instituição financeira, é possível mapear as transações em “fraude” e “não-fraude”; Para um sistema de recomendação de conteúdo, podemos mapear as informações como “pouco-relevante”, “relevante” e “muito-relevante”; ● Reconhecimento de imagens; ● Processamento de linguagem natural. RNA aplicadas. Como aplicar? Ex: Como mapear as transações de uma instituição financeira como “fraude” e “não-fraude”? 1. Fase de treinamento: RNA aplicadas. Como aplicar? Ex: Como mapear as transações de uma instituição financeira como “fraude” e “não-fraude”? 2. Fase de classificação: RNA aplicadas. Como aplicar? Ex: Como mapear as transações de uma instituição financeira como “fraude” e “não-fraude”? 2. Fase de classificação: O “Auditor” é parte de um processo de refinamento! Extensão do conceito Exemplo com WEKA API Case: Candidatos e Vagas Desafio: Como treinar? RNA aplicadas. Case: Como treinar? ● ● ● Não existia volume suficiente de dados para treinamento; Definimos um conjunto de regras “estáticas” para relacionar os candidatos e as vagas de emprego. Atribuímos um peso para cada informação do currículo do candidato. Também adicionamos um “fator de relevância”, que crescia de acordo o “feedback” dos usuários. Essa informação foi utilizada para calcular a “similaridade / aderência” do candidato a vaga. RNA aplicadas. Case: Como treinar? Teste: Como validar o funcionamento? Resultados RNA aplicadas. Case: Resultados ● ● ● No início o sistema se baseava em regras estáticas para recomendação, após um período de uso passou a recomendar candidatos de acordo com as subjetividades / critérios de cada empresa; Trouxe mais agilidade e assertividade ao processo de contratação. Mesmo que as subjetividades / critérios de contratação mudem, o sistema será capaz de se adaptar ao novo cenário. Cuidados RNA aplicadas. Cuidados: ● Treinamento: ● ● ● ● Treinamento on-line nem sempre é possível; Algumas API's não oferecem acesso ao conhecimento da rede neural (vetores), neste caso é preciso serializar objetos para o repositório de dados; Importante separar seu conjunto de dados entre treino e teste (Cross Validation). Essa é uma forma de avaliar a capacidade de generalização da rede neural; Tuning: ● ● Eliminar redundâncias do conjunto de treino; Algumas API's não permitem “parametrizar” variáveis internas do algoritmo, que poderiam melhorar o desempenho e performance. RNA aplicadas. Observações: ● ● ● ● Seu sistema pode começar com regras “estáticas” e “aprender” com os usuários, dando mais relevância às regras “aprendidas”. O “treinamento contínuo” trazido pelos mecanismos de feedback permite que as aplicações acompanhem as tendências / mudanças do negócio. Isso aumenta a efetividade do sistema e diminui o número de “chamados” ao TI para acrescentar “regrinhas” :) API's são estáveis bem documentadas, no entanto você pode “sofrer” com a falta de parametrização e o acesso aos dados internos do algoritmo. A escolha do algoritmo de aprendizado de máquina não precisa se restringir às RNA. Existem outros algoritmos com melhor performance em problemas específicos. Obrigado! [email protected] #qconbigdata