Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 🤖 Resumo teórico de Machine Learning para concursos Autor: Sergio Souza Novak E-mail: serginhosnovak@hotmail.com 2 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 2022 SUMÁRIO ................................................................................................................................................1 Prefácio ........................................................................................................................................4 Aprendizado Supervisionado........................................................................................................6 Modelos de Aprendizado de Máquina .....................................................................................7 Aprendizado Supervisionado ................................................................................................7 Aprendizado Não Supervisionado ........................................................................................9 Aprendizado Por Reforço ...................................................................................................11 Tarefas de Machine Learning .................................................................................................13 Tarefa de Classificação .......................................................................................................13 Tarefa de Regressão ...........................................................................................................14 Conjunto de Treinamento, Validação e Teste ........................................................................18 Validação Cruzada ..............................................................................................................21 Underfitting (sub-ajuste) e Overffiting (sobre-ajuste) ................................................................21 Maldição da Dimensionalidade ..................................................................................................23 Modelos de Classificação ...........................................................................................................24 Métricas de avaliação de Classificadores ...................................................................................25 Regularização .............................................................................................................................35 Trade off entre Variância e Viés .................................................................................................37 Regressão Logística ....................................................................................................................39 Naive Bayes ................................................................................................................................44 Máquina de Vetores de Suporte(SVM).......................................................................................45 KNN ............................................................................................................................................49 Classificadores paramétricos e não paramétricos ..................................................................52 Árvores de Decisão .....................................................................................................................54 Ensembles e Random Forests ....................................................................................................61 CONCEITOS DE OTIMIZAÇÃO DE HIPERPARÂMETROS................................................................66 Redução de dimensionalidade: Algoritmos ...............................................................................68 Redução de dimensionalidade: PCA .......................................................................................69 Aprendizado Não-supervisionado ..............................................................................................71 Agrupamento K means ...........................................................................................................73 Agrupamento Hierárquico ......................................................................................................76 Mistura de Gaussianas(GMM) ................................................................................................77 3 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Regras de associação ..............................................................................................................81 Redes neurais artificiais..............................................................................................................84 O PERCEPTRON ......................................................................................................................85 Algoritmo Backpropagation ...................................................................................................92 Funções de ativação ...............................................................................................................94 MLPs para Regressão .........................................................................................................97 MLPs para Classificação .......................................................................................................100 Keras e Pytorch ....................................................................................................................104 REDES NEURAIS CONVOLUCIONAIS. ........................................................................................106 Redes Neurais Recorrentes ......................................................................................................107 Vanishing and Exploding Gradients ......................................................................................108 Processamento Natural de Linguagem (PLN) ...........................................................................109 Processo de PLN ...................................................................................................................111 Etapa de Pré-processamento ...........................................................................................111 Uso do dicionário Thesaurus (pré-processamento) ..........................................................113 Semântica Vetorial ...........................................................................................................114 Modelo de Espaço Vetorial (VSM) ........................................................................................115 Modelo de Espaço Vetorial (VSM): Representações ........................................................116 TF-IDF .......................................................................................................................................117 CBOW e Skip Gram ...................................................................................................................119 Manipulação de dataframes com Python Pandas ....................................................................120 Métodos de regularização: penalização com normas L1 e L2, Dropout e Early Stopping ........127 Ajustando o Modelo: REGULARIZAÇÃO ....................................................................................129 Regularização L1 (Lasso) .......................................................................................................130 Regularização L2 (Ridge) ......................................................................................................130 4 Resumo teórico de Machine Learning para concursos Sergio Souza Novak PREFÁCIO Atenção! Esse Livro não será vendido! Escrevi esse texto a fim de ajudar concurseirosa estudar de forma teórica os principais tópicos de Machine Learning. Esse texto é fruto dos meus resumos para o concurso da Cebraspe 2021 da Petrobrás, ele pode te ajudar a estudar de forma teórica os algoritmos e métodos da área. Alguns outros tópicos, naquele concurso, como Séries Temporais aqui não são abordados, pois já possuem vasta bibliografia. Como autor escrevi esse livro de forma despretensiosa, não me preocupando em revisa-lo. Se você quiser revisar este livro e conversar sobre uma publicação dele: me contatar. Att. Sergio Souza Novak. E-mail: serginhosnovak@hotmail.com mailto:serginhosnovak@hotmail.com 5 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 6 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Aprendizado Supervisionado É a técnica onde as máquinas adquirem conhecimento, onde elas conseguem executar ações com base em aprendizado, não apenas entradas de instruções. Aprendizado de máquina é um método que automatiza a construção de modelos analíticos, onde os sistemas aprendem com os dados a identificar padrões e tomar decisões com mínimo de intervenção humana. Os tipos de algoritmos de aprendizado de máquina mais bem sucedidos são os que automatizam os processos de tomada de decisão generalizando a partir de exemplos conhecidos. A aprendizagem supervisionada o usuário fornece entradas e saídas desejadas e o algoritmo encontra uma maneira para produzir a saída desejada a partir de uma nova entrada. Eles são assim chamados porque um professor fornece supervisão aos algoritmos, oferecendo as saídas desejadas para cada exemplo. 7 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Modelos de Aprendizado de Máquina Aprendizado Supervisionado No aprendizado supervisionado se tem uma tarefa de aprendizado de máquina que consiste em aprender uma função f(x) que mapeia uma entrada para uma saída a partir de pares de entrada e saída. Tudo isso é possível graças a um professor ou supervisor que confecciona a relação simples entre as entradas e os rótulos. No processo de aprendizagem o agente através da função de aprendizado que ele criou pode apresentar erros de generalização. Exemplos de Aprendizado supervisionado são a Classificação e a Regressão. 8 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Na Classificação o Agente aprende segundo as entradas, de forma que os rótulos são as classes possíveis para cada uma entrada. Os algoritmos mais famosos são KNN, Native Bayes, Logistic Regression, Máquinas de Vetor de Suporte e Árvores de Decisão. Na Regressão buscamos prever valores. Um exemplo de Regressão é a Regressão linear que busca encontrar a função f(x) como uma reta linear que mais ajusta os pontos dos dados de treinamento. 9 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Aprendizado Não Supervisionado Consiste na técnica de treinar uma máquina a partir de dados que não estão rotulados. Esses algoritmos buscam descobrir informações ocultas sobre os dados, podendo agrupa-los de acordo com semelhanças ou diferenças. Por exemplo, se um agente fosse classificar via aprendizado não supervisionado, cães e gatos. A partir de uma característica oculta dos objetos, como por exemplo o formato do nariz, poderia agrupar esses objetos, nos grupos X, com nariz redondo e nos grupos y com nariz triangular. As técnicas mais comuns para aprendizado não supervisionado são Agrupamento, Regras de Associação e Redução da dimensionalidade. No Agrupamento consiste em agrupar dados não rotulados com base em suas semelhanças ou diferenças, como no exemplo anterior. Exemplos de agrupamento são agrupamentos exclusivos, sobrepostos, hierárquicos e probabilísticos. 10 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Nas Regras de associação/ coocorrência ocorre que procura-se encontrar relações entre os elementos. Tem como objetivo encontrar elementos que implicam na presença de outros elementos. Essa técnica de aprendizado não supervisionado é muito utilizada em cestas de compras. Exemplos de algoritmos desse tipo são: Apriori, Eclat e FP-Growth. Esse tipo de técnica é muito utilizada em grandes massas de dados, se baseiam em dados apriori, e tentam memorizar as relações entre objetos. Existe ainda no aprendizado supervisionado, técnicas como a Redução da dimensionalidade, que busca reduzir a dimensão dos dados, quando se têm muitos dados, porém a variância é preservada. Essa técnica é comum devido ao overfitting dos dados. Ocorre a redução de recursos, exemplos de algoritmos com essa técnica. Missing Values Ratio, Low Variance Filter, High Correlation Filter, Random Forests / Ensemble Trees, Principal Component Analysis (PCA), Backward Feature Elimination e Forward Feature Construction. 11 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Aprendizado Por Reforço No aprendizado por reforço inputs/outputs de entrada e saída não são apresentados, Ao invés disso tentam encontrar uma política que mapeia os estados do mundo às ações que o agente deve ter nesses estados. Essa técnica se preocupa com o como o agente deve agir em um ambiente de forma que maximize alguma noção de recompensa ao longo do tempo. Um bom exemplo disso é um jogo, onde o agente a cada vez que morre recebe uma penalidade, ou seja um função f(x) ruim, e quando passa para um quadrado sem fogo recebe um f(x) bom, dessa forma o aprendizado por reforço está aprendendo o que é bom e o que é ruim. O agente é aquele que toma decisões a partir de recompensas ou punições, esse agente pode vir a realizar uma ação, que irá variar conforme o contexto. O ambiente é o mundo físico ou virtual que o agente opera, o feedback é baseado no sistema de recompensa, uma recompensa gera a tomada 12 Resumo teórico de Machine Learning para concursos Sergio Souza Novak de decisão, que é a mudança do estado do agente. No aprendizado por reforço, o sistema de inteligência artificial enfrenta uma situação. O computador utiliza tentativa e erro para encontrar uma solução para o problema. Para que a máquina faça o que o programador deseja, a inteligência artificial recebe recompensas ou penalidades pelas ações que executa. Seu objetivo é maximizar a recompensa total. Cabe ao modelo descobrir como executar a tarefa para maximizar. Exemplo disso são veículos autônomos. 13 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Tarefas de Machine Learning Tarefa de Classificação Na mineração de dados uma das tarefas mais comuns é analisar características de um objeto recém apresentado e atribuí-lo um conjunto de classes, predefinidas. Árvores de Decisão são um exemplo de classificação. 14 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Tarefa de Regressão 44 A tarefa de regressão consiste na busca por funções lineares que mapeiem registros de um banco de dados em valores reais. Na regressão linear a função a ser abstraída dos dados é uma função linear, por isso ela é o tipo mais simples de regressão. Têm-se y = alfa +betax 15 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O coeficiente angular beta é calculado pela covariância de X e Y dividido pela variância de x. O alpha é calculado pela substituição da média de x e y na função afim. O mesmo exemplo de regressão linear bivariada feito no pandas: 16 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Pode existir problemas em que os dados não apresentam dependêncialinear, nesses casos devem ser aplicadas técnicas de regressão não linear, aplicando por exemplo técnicas como a regressão polinomial, deposi resolvendo através de mínimos quadrados. Estatística, Redes Neurais oferencem implementações para a tarefa de regressão. Quando as variáveis não possuem dependência linear podemos avaliar isso através de métricas de regressão linear. 17 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Por exemplo, na figura ao lado, a regressão 2 é a que mais se encaixa nos dados. Para saber se a regressão é boa ou ruim podemos utilizar as métricas de Regressão. No Erro médio Absoluto (MAE) consiste em somar os desvios e dividir pelo número de amostras. O Erro Médio Absoluto não é muito interessante pois é sensível a outliers, para isso podemos utilizar outras métricas, como o Erro médio quadrado(MSE). No erro médio quadrado MSE ocorre a penalização dos outliers, utilizando: 18 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Conjunto de Treinamento, Validação e Teste Separar os dados no momento de treinar o modelo é fundamental, a figura ilustra como particionar um conjunto de dados: O Dataset A é particionado apenas um com um conjunto de treinamento e um conjunto de teste. O conjunto de teste seria usado para testar o modelo treinado. Para o Dataset B temos uma partição de conjunto de validação e conjunto de teste. No dataset B o conjunto de validação seria usado para testar o modelo treinado enquanto que o conjunto de teste avalia o modelo final. 19 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 20 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O conjunto de dados de treinamento é responsável por ajustar os parâmetros (por exemplo, pesos de conexões entre neurônios) do modelo. O modelo é treinado utilizando aprendizado supervisionado. No conjunto de dados de validação ocorre a validação imparcial de um modelo ajustado do conjunto de dados de treinamento, são ajustados os hiperparâmetros do modelo (por exemplo, o número de unidades ocultas, camadas e larguras de camadas em uma rede neural. Também nessa técnica de dados de validação pode ter a regularição ou parar cedo que é parar de treinar se o erro no conjunto de dados aumentar (overffiting). Um exemplo disso é quando tem mínimos locais, então através de regras ad- hoc pode-se decidir quando o overfitting realmente começou. No conjunto de dados de teste são feitos testes de análise, na validação cruzada, que é quando os dados de teste não foram usados no treinamento. Para reduzir problemas de overffiting os dados de validação e teste não devem ser usados para treinar o modelo. Há uma confusão na términologia, invertendo validação e teste. 21 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Fazer o seguinte nesse ponto: Se o particionamento do dataset tiver só dois conjuntos assumir validação=teste. Validação Cruzada Ainda tratando-se de particionamento do conjunto de dados, a validação cruzada é a técnica que separa do conjunto de dados total, um conjunto para treinamento e teste, por exemplo, utilizar 80% dos dados para treinamento e outros 20% para teste, ou ainda 70% para treinamento e 30% para teste. Na validação cruzada os mesmos dados dos testes não são usados para treinamento. Podem ser feitos testes, medindo a acurácia dos dados no conjunto de dados de teste, por exemplo. UNDERFITTING (SUB-AJUSTE) E OVERFFITING (SOBRE-AJUSTE) Um bom modelo não pode sofrer underffiting e nem overffiting. 22 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Ocorre o overffiting quando nos dados de treino o modelo é excelente, porém no conjunto de dados de teste o resultado é ruim. Nesse caso o modelo não aprendeu bem as relações no treino e acabou apenas decorando o que deveria ser feito. Nesse caso do overffiting(sobreajuste) o modelo não tem capacidade de generalização. No caso do underffiting(Subajuste/superajuste), o modelo se ajusta muito pouco ao conjunto de treinamento, nesse caso pode ser por exemplo, poucos neurônios em uma rede neural ou uma tolerância de erros muito alta. O underffiting é o caso em que há parametrizações inadequadas. O modelo se ajustou pouco ao conjunto de treinamento, esse modelo já pode ser descartado. Comparação entre overffiting e underffiting: 23 Resumo teórico de Machine Learning para concursos Sergio Souza Novak MALDIÇÃO DA DIMENSIONALIDADE Esse problema ocorre quando o modelo têm muitas dimensões, como por exemplo vaca(peso, altura, área, volume) ocorre que o modelo fica com a maldição da dimensionalidade. Quando maior for a dimensionalidade, mais dados serão necessários para o aprendizado do modelo. Alguns algoritmos como o KNN é enganado quando o número de atributos é muito grande, o desempenho do algoritmo pode ser prejudicado... Esse Fenômeno ocorre quando o desempenho do modelo diminui quando sobe o número de atributos. Na redução da dimensionalidade procura-se utilizar um modelo com menos atributos. Para isso utiliza-se a composição e a seleção de atributos. Agregar os atributos é construir atributos novos a partir de dois ou mais atributos, por exemplo, densidade = massa/volume. Nesse caso não há perda de informação. A seleção de atributos é quando alguns atributos são irrelevantes ou redundantes. 24 Resumo teórico de Machine Learning para concursos Sergio Souza Novak MODELOS DE CLASSIFICAÇÃO Em aprendizado supervisionado quando se deseja obter dos dados como saída uma variável quantitativa deve-se usar modelos de regressão. Porém quando se deseja ter como saída uma variável qualitativa deve-se usar Classificação. Inicialmente tem a base de dados, depois é separado o conjunto de dados de teste e treino, então o classificador é treinado com os dados de treino. Então dos dados de teste são retirados os rótulos, a base de teste sem rótulos é enviada ao classificador treinado. Por fim a Acurácia avalia os rótulos dos dados de teste com as classes preditas, a fim de medir a qualidade do classificador. 25 Resumo teórico de Machine Learning para concursos Sergio Souza Novak MÉTRICAS DE AVALIAÇÃO DE CLASSIFICADORES Um classificador têm duas métricas que são interessantes, que é a precisão e acurácia. A precisão é quando o modelo prediz o valor de forma precisa, ou seja os valores preditos estão próximos a sua própria média, não há alta variabilidade nos valores. Uma forma de lembrar disso é lembrar de precision em programação. A acurácia(Acc) é quando o modelo prediz valores próximos ao valor ótimo. Para calcular a acurácia deve-se calcular o erro. O erro é calculado somando todas as ocorrências de classes que deram 26 Resumo teórico de Machine Learning para concursos Sergio Souza Novak errado dividido pelo número de ocorrências. A acurácia é então 1- erro. Quando o erro no teste é muito maior que o erro no treinamento é um indicativo que está acontecento overfitting, pois o modelo não está conseguindo generalizar o que foi aprendido. Quando o erro é grande ainda no conjunto de dados de treino dizemos que o modelo está sofrendo underfitting. A acurácia é o método mais usado para medir o desempenho em problemas de classificação, ela serve de base para medir quando o classificador deve parar de treinar. 27 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Exemplo de treinamento e avaliação de acurácia do dataset Iris com scikit-learn Primeiro é feito o carregamento do dataset utilizando scikitlearn do dataset. Em iris.data fica a parte das dimensões, enquantoque em iris.target ficam os alvos, ou seja, os rótulos dos dados(supervisor preencheu). Depois é feito o processo de validação cruzada utilizando train_test_split do pacote model_selection. Nesse caso foi usado 40% dos dados para o conjunto de teste. Depois disso é feito o treinamento com um classificador, que no caso é o KNN, através da função fit. 28 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Por fim através do pacote metrics é feita a medida de acurácia, que avalia os y reais do conjunto de teste juntamente com os y predizidos pelo modelo. Nesse caso o modelo teve 98% de acurácia, o que é bom. Matriz de Confusão Em um exame de gravidez a maioria das vezes dá verdadeiro positivo, quando há bebê e o exame dá positivo, e verdadeiro negativo, quando não há bebê e o exame dá negativo. Contudo pode haver casos em que o exame falhou, nesse caso podem haver casos de falso negativo, ou seja, quando o exame não consegue detectar que há bebê. Contudo, quando o exame der positivo pode saber, existe um bebê na barriga, ou seja, não há casos em que dá falso positivo. 29 Resumo teórico de Machine Learning para concursos Sergio Souza Novak No caso de modelos de classificação podem sim haver falsos positivos e falsos negativos, eles são avaliados na matriz de confusão. Suponha que queremos classificar animais em duas classes vaca e não vaca . A tabela de confusão que um classificador produziu pode ser algo como: 30 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Essa tabela de confusão pode ser numéricamente expressa como uma matriz de confusão: Para mais de uma classe podemos generalizar essa matriz de confusão para algo como: De forma que a diagonal principal da matriz contém todos os valores em que o modelo acertou e as outras posições quando o modelo errou. A taxa de verdadeiros positivos/sensibilidade RECALL é a capacidade do modelo de identificar corretamente os objetos. A especificidade é a porcentagem de verdadeiros negativos: 31 Resumo teórico de Machine Learning para concursos Sergio Souza Novak A F1-Score é a média harmônica entre o Recall e Precision, ou seja, ela resume as informações dessas duas métricas. 32 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Questões 33 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 34 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Matriz de confusão e métricas Aprendizado Supervisionado no Sklearn com pandas 35 Resumo teórico de Machine Learning para concursos Sergio Souza Novak REGULARIZAÇÃO Quando ocorre o overfitting podemos inicialmente fazer o seguinte: Se chama regularização o processo de restringir um modelo para simplificar e reduzir o risco de overfitting. É feita a regularização através de hiperparâmetros do algoritmo implementado, e não do modelo. 36 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Por exemplo, no gráfico acima a equação tem 2 variáveis livres, se o modelo tivesse apenas uma variável livre ele não conseguiria prever bem os dados. O hiperparâmetro não é afetado pelo próprio algoritmo e permanece constante durante todo o treinamento, esse hiperparâmetro controla o segundo grau de liberdade do algoritmo. 37 Resumo teórico de Machine Learning para concursos Sergio Souza Novak TRADE OFF ENTRE VARIÂNCIA E VIÉS 38 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Viés(Bias) é o erro com relação ao valor real que o modelo deveria assumir. O Viés é o erro devido à diferença entre as previsões médias e os valores corretos que estamos tentando prever. A Variância(Variance) é o erro com relação a variabilidade de uma previsão do modelo para um determinado conjunto de dados. Matemáticamente: (essa não é a única maneira de estimar) No cálculo do Bias e variância é testado n treinamentos, por isso é bom fazer muitos treinamentos, comumente se usa n = 30, mas isso não é regra. Existe ainda outro erro que pode ser associado ao modelo, que é o erro independente ou ruído, esse erro é inerente ao treinamento, sobre o modelo escolhido. Logo, o erro total(E_total) do modelo é igual a: 39 Resumo teórico de Machine Learning para concursos Sergio Souza Novak REGRESSÃO LOGÍSTICA Apesar do nome, a regressão logística é um método de aprendizado supervisionado de CLASSIFICAÇÃO. 40 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Quando usado a regressão linear para métodos de classificação com um ponto de corte, os modelos não tem um bom resultado, isso porque são muito sensíveis a outliers. Como ilustrado na figura: Observe que a adição com outlier deslocou a reta, fazendo com que houvesse muita alteração no modelo. Seria muito bom se o nosso modelo pudesse dedicar mais atenção ás fronteiras dos dados ao invés dos outliers. Nesse sentido podemos alterar o modelo de Regressão linear utilizando uma sigmóide. Na Regressão Logística ocorre o mapeamento de qualquer valor real para um número entre 0 e 1: Internamente a função calcula a probabilidade de um evento ajustando os dados a uma função logit, descrita por: 41 Resumo teórico de Machine Learning para concursos Sergio Souza Novak A regressão logística modela a probabilidade da classe padrão do problema, por exemplo a probabilidade de ser homem ou mulher. Os coeficientes da Regressão logística são estimados através do método de estimação de máxima verossimilhança. Exemplo feito no scikitlearn: A regressão logística é muito utilizada na indústria de crédito para prever inadimplência de empréstimos. Questões 42 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O erro da questão está em dizer que a regressão logística aceita apenas variáveis categóricas, quando em seu domínio aceita qualquer variável. A saída da regressão logística que é categórica. 43 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 44 Resumo teórico de Machine Learning para concursos Sergio Souza Novak NAIVE BAYES O classificador Naive Bayes é um algoritmo de aprendizado que usa o modelo matemático de probabilidade para resolver problemas de classificação. A classificação Naive Bayes parte da suposição de que as variáveis envolvidas em machine learning são independentes entre si. Ele precisa de um pequeno número de dados de treinamento e é um dos métodos mais utilizados, pois é rápido computacionalmente . 45 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O Naive Bayes é um classificador que é ótimo para a detecção de SPAMS e também para descrever o conteúdo de um texto. No Scikit Learn têm três classes de algoritmos Naive Bayes: GaussianNB, MultinomialNB e BernoulliNB. O GaussianNB pressupõe como entrada uma distribuição normal, Multinomial contador de ocorrências Discreto e a segunda para atributos booleandos discretos. MÁQUINA DE VETORES DE SUPORTE(SVM) É um dos métodos de classificação mais poderosos e mais utilizados e resolve problemas lineares e não lineares. O SVM encontra o hiperplano (em azul) de forma que a margem M entre os vetores suportes seja máxima, pode-se utilizar o método de multiplicadores de Lagrange para encontrar esse hiperplano. 46 Resumo teórico de Machine Learning para concursos Sergio Souza Novak No caso da imagem há um problema linearmente separável, contudo vamos ver como o SVM funciona para um problema que não é linearmente separável: Os pontos mais próximos das classes estão nos vetoresde suporte. Para encontrar o hiperplano o SVM terá que projetar os pontos para a terceira dimensão. Através dos kernels o SVM consegue corretamente mapear para as outras dimensões os dados. As funções de kernel é um dos hiperparâmetros mais importantes em SVM. Os kernels também vão dizer quais os tipos de hiperplano. Os kernels reduzem a complexidade de encontrar a função de mapeamento. Esse exemplo acima pode ser resolvido utilizando o kernel da função de base Radial(RBF), exemplos de kernel são Polinomial, Gaussian, Sigmoid e RBF. O scikit learn possui todos esses kernels e também permite que você defina o próprio kernel. O Parâmetro C é um parâmetro de Regularização de SVM, ele cria um trade- off entre precisão do treinamento e largura de margem, se C for pequeno terá margens maiores e menor precisão no treinamento. O Parâmetro Gama é a influência dos pontos de treinamento. O Grau é um hiperparâmetro usado em kernels polinomiais, m grau mais altor significa um limite de decisão mais flexível, se grau 1 resulta um kernel linear. 47 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Os SVN são bastante dependentes do espaço dimensional. Muitas vezes não é possível separar como uma reta duas classes. Para resolver esse problema, cria-se uma nova dimensão (uma terceira) possibilitando a separação. 48 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 49 Resumo teórico de Machine Learning para concursos Sergio Souza Novak KNN O k-vizinhos mais próximos é um algoritmo muito popular na comunidade, e pode ser aplicado em classificação, regressão e detecção de outlier. O KNN assume que pontos semelhantes estão próximos. Nesse algoritmo cada um dos pontos encontra um registro K vizinhos mais próximos, a 50 Resumo teórico de Machine Learning para concursos Sergio Souza Novak distância entre os vizinhos pode ser calculado com a distância Euclidiana e também com distância de Manhattan. Ao treinar o modelo os pontos são simplesmente armazenados, o custo para treinamento é O(1), isso é muito bom... Mas para fazer a predição da classe de um novo ponto se faz: 1. Calcula a distância Euclidiana ou de Manhattan entre o ponto e todos os outros. 2. Ordena essas distâncias 3. Escolhe a classe modal entre os k primeiros elementos. A escolha do hiperparâmetro k se dá por experimentação, de forma que quanto maior k menor o efeito de eventuais ruídos no conjunto de referência, mas Valores de k altos tornam mais difusas as fronteiras entre as classes. Geralmente é boa prática escolher k ímpar para evitar empate na moda. 51 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Os hiperparâmetros do algoritmo são: • Número K vizinhos mais próximos: Esse parâmetro é o mais importante, é um inteiro positivo que decide o número de amostras rotuladas do conjunto de dados do treinamento. Um grande número de vizinhos suaviza os limites das classificações. • Pesos: No momento de escolher a classe modal podemos ter também pesos que podem influenciar essa escolha, esses pesos podem ser o inverso das distâncias entre os vizinhos e o ponto. • Algoritmo de indexação: São algoritmos usados para mapear os pontos mais próximos, para não precisar calcular a distância entre todos os pontos. Usa-se algoritmos de indexação baseados em árvores, como kd-tree e ball tree. Quando se tem muitas dimensões o ball tree é melhor que o kd-tree. • Métrica de Distância: Uma métrica para calcular a distância entre cada ponto. 52 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Uma desvantagem desse algoritmo é quando ele apresenta muitas dimensões nas entradas os vetores do knn ficam muito grandes atrapalhando na localização de padrões, para melhorar isso pode-se utilizar um algoritmo para reduzir a dimensionalidade, como o PCA. Quando o algoritmo é utilizado para a Regressão: Um valor de k grande leva a um bias alto porém um modelo com baixa variância, por sua vez um modelo com baixo k leva um estimador com bias baixo, porém variância alta. Classificadores paramétricos e não paramétricos Os classificadores paramétricos são aqueles que partem da premissa que os dados seguem uma distribuição conhecida, como a distribuição normal, por exemplo. Os classificadores não paramétricos não tem informação sobre a distribuição de probabilidade dos dados, não se conhece o comportamento estatístico dos dados. 53 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O knn é um classificador não paramétrico. 54 Resumo teórico de Machine Learning para concursos Sergio Souza Novak ÁRVORES DE DECISÃO São algoritmos não paramétricos de aprendizado supervisionado que podem realizar tarefas de classificação e regressão. O objetivo da Árvore de Decisão é particionar o problema em problemas menores, particionar o conjunto de dados. Por exemplo, no conjunto de dados acima, o algoritmo particionou o conjunto em três regiões, essas regiões serão usadas para montar uma árvore com regras com relação às linhas de corte. 55 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O algoritmo criou uma árvore a partir do hiperparâmetro max_depth, ou seja controlamos o número de níveis da árvore. Os nós folhas são os elementos que determinam a classificação daquele conjunto parte do todo. Um nó qualquer pode possuir os atributos: • Samples: quantas instâncias de treinamento o nó se aplica. • Value: indica quantas instÂncias de treinamento de cada classe esse nó se aplica. • Gini: indica a impureza de um nó, se gini=0 todas as instâncias de treinamento pertencem a mesma classe. A árvore de decisão é um algoritmo preditivo, nem sempre acerta nas previsões. Pode-se utilizar a entropia para medir gini. Figura 1Exemplo de Classificação 56 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Na maioria dos algoritmos há duas fases de treinamento: Construção da árvore de decisão e simplificação da árvore(poda). Na etapa de construção da árvore de decisão os dados são particionados em duas ou mais partições, até que todas as regiões pertençam a uma classe. Na etapa da poda é feito a regulação da árvore, o objetivo é tornar a árvore de regressão menos complexa, de modo a diminuir a variância do estimador. As árvores de decisão possuem significativa dependência dos dados, portanto, são instáveis, pois pequenas alterações nos dados de treino produzem novas árvores. 57 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 58 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 59 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 60 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Para o exemplo dos empregos 61 Resumo teórico de Machine Learning para concursos Sergio Souza Novak ENSEMBLES E RANDOM FORESTS O uso de ensembles é quando utilizamos múltiplos modelos um uma mesma tarefa de aprendizado. O tipo mais comum de ensemble é treinar vários modelos distintos sobre todos os dados disponíveis no treinamento, depois aplicar todos eles em cada exemplo de teste. Em tarefas de classificação o Ensemble pode fazer com que cada modelo vote na classe escolhida, enquanto que em modelos de regressão pode-se usar a média como saída do ensemble. A técnica de baggin consiste em escolher aleatoriamente os conjuntos de exemplo de treinamento para ser utilizado, de forma que os modelos tenham visões diferentes dos dados. 62 Resumo teórico de Machine Learningpara concursos Sergio Souza Novak A técnica de baggin faz com que os modelos tenham visões diferentes dos dados, isso faz com que melhore o desempenho dos algoritmos. A técnica de votação ponderada é quando o voto de cada modelo é ponderado pela sua acurácia em um conjunto de validação. É como se cada modelo tivesse diferentes pesos diferentes e o número de votos fosse proporcional a sua acurácia, fazendo com que modelos ruins pesassem menos na resposta. É interessante pensar que o classificador de votação tenha mais acurácia que o melhor classificador ensemble, isso devido a lei dos grandes números. Os métodos Ensembles funcionam melhor quando os preditores são mais independentes quanto possível. Uma forma de se obter classificadores diversos é treina-los usando algoritmos diferentes , isso aumenta a chance de eles cometerem erros diferentes, melhorando a acurácia do agrupamento. 63 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 64 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O Baggin é a técnica de treinar o mesmo algoritmo de treinamento para todos os preditores e treina-los em diferentes conjuntos aleatórios do conjunto de treinamento. Quando ocorre a substituição na amostragem chama-se Baggin(Bootstrap) e quando não ocorre chama-se pasting. 65 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Florestas Aleatórias 4Uma floresta aleatória é um agrupamento de árvores de decisão,são treinadas geralmente por baggin ou pasting e possui os mesmos hiperparâmetros das Árvores de Decisão juntamente com os parâmetros de BagginClassifier para controlar o agrupamento. RandomForests são mais otimizadas que utilizar BagginClassifier com DecisionTree. Em vez de procurar a melhor característica para dividir o nó ele procura a melhor característica em um conjunto aleatório de características. Ele troca um viés maior por uma variância menor. Boosting (originalmente chamado de hipótese de boosting) diz respeito a qualquer método ensemble que pode combinar diversos aprendizes fracos em um aprendiz forte. 66 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Na técnica boosting consiste em atribuir pesos nos exemplos, um exemplo dessa técnica é o AdaBoost. Na técnica de Random Forests é criado um ensemble com várias árvores de decisão, o índice gini irá prever qual a melhor árvore para compor o nó raiz. CONCEITOS DE OTIMIZAÇÃO DE HIPERPARÂMETROS Os parâmetros são os parâmetros que o algoritmo ajusta de acordo com o conjunto de dados fornecidos, enquanto que os hiperparâmetros são os parâmetros que o você define manualmente antes de iniciar o treinamento, se baseiam em propriedades como características dos dados e capacidade de aprendizado do algoritmo. É 67 Resumo teórico de Machine Learning para concursos Sergio Souza Novak importante ajustar esses hiperparâmetros, esse processo se chama tunning de parâmetros. No scikit learn existe uma forma de encontrar os melhores hiperparâmetros para o modelo. Isso através de GridSearchCV, Ainda é possível que o espaço de pesquisa de hiperparâmetros seja muito grande, por isso pode-se usar RandomizedSearchCV, que testa um número de combinações aleatórias. 68 Resumo teórico de Machine Learning para concursos Sergio Souza Novak REDUÇÃO DE DIMENSIONALIDADE: ALGORITMOS Sempre que se aumenta o número de dimensões de um espaço, a distância qualquer entre dois pontos tende a ser maior, diante disso quando assumimos um conjunto de dados com mais dimensões os dados tendem a ficar mais esparsos, ou seja com muitas dimensões um modelo tende a ter overfitting, a solução para isso é aplicar a técnica de redução de dimensionalidade. Para fazer o ajuste de dimensionalidade se utiliza 2 abordagens, a projeção e aprendizado de variedades(manifold). Na maioria dos problemas as instâncias de treinamento não estão distribuídas em todas as dimensões. Alguns recursos são constantes e outros são correlacionados. Com efeito, todas as instâncias estão próximas a um subespaço muito inferior(2D). O nome desse processo é projeção. 69 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Pode ocorrer que a projeção não seja muito adequada pra alguns casos, como é o caso do rolo suíço: Nesses casos precisa usar o Aprendizado Múltiplo, ou manifold learning, que se trata de desenrolar esse rolo, no mainifold desenrolado. Redução de dimensionalidade: PCA O PCA é o algoritmo de redução de dimensionalidade mais popular. Ele identifica o plano mais próximo dos dados e em seguida projeta os dados nele. No PCA é feito a escolha do hiperplano correto, de forma que ele tenha a maior variância No exemplo o primeiro hiperplano foi escolhido, pois a variância é maior nesse caso, outra forma de justificar essa escolha é que ele minimiza a distância quadrática média entre o conjunto de dados. No caso de 2 dimensões o algoritmo reduziu para uma dimensão, mas se tivesse três reduziria para duas assim por diante. Os eixos encontrados são chamados de eixo i-ésimo componente principal(PC) dos dados. O PCA assume que o conjunto de dados está centrado em torno da origem, o scikit learn cuida de centralizar esses dados. 70 Resumo teórico de Machine Learning para concursos Sergio Souza Novak É possível passar para o PCA uma forma de preservar a variância dos dados, passando um valor float no lugar do número de componentes. No geral a melhor forma de decidir o número de dimensões é usar uma função para plotar e encontrar o ponto de Elbow, nesse caso não perderia muito os dados, reduzindo o número de dimensões para algo em torno de 100. Principais algoritmos de redução de dimensionalidade: • Análise de componente principal (PCA) : Encontra a transformação linear que captura a maior parte da variação no conjunto de dados existente. • Aprendizagem múltipla: identifica uma transformação não linear que produz uma representação dimensional inferior dos dados. • Autoencoders: usa uma rede neural para compactar dados de forma não linear com perda mínima de informações 71 Resumo teórico de Machine Learning para concursos Sergio Souza Novak APRENDIZADO NÃO-SUPERVISIONADO Em alguns problemas têm-se apenas dados de treinamento sem rótulos. Dessa forma os algoritmos de predição tentam descobrir grupos de exemplos semelhantes dentro dos dados (agrupamento), ou tentam determinar como os dados são distribuídos no espaço (estimativa de densidade). As tarefas do aprendizado supervisionado são mais difíceis que do aprendizado supervisionado e também é mais difícil testar os dados que foram previstos. Uma forma e deixar o especialista ver os resultados, outra é definir uma função objetivo no agrupamento(avaliação interna). O aprendizado não supervisionado é necessário quando é muito caro rotular os dados, por exemplo no reconhecimento da fala. Também pode haver o caso em que não conhecemos as classes em que os dados estão divididos. Quanto a classificação: • Aprendizado paramétrico Não supervisionado: Assume-se uma distribuição paramétrica dos dados. Os dados assume-se que vêm de uma distribuição de probabilidade baseada em um conjunto fixo de parâmetros. Envolve construção de modelos de Mistura Gaussianas e o algoritmo de Expectativa-maximização para prever a classe da amostra em questão. • Aprendizado não paramétrico não supervisionado: Nesse caso os dados são agrupados em clusters, onde cada cluster diz algo sobre categorias e classes dos dados. Método usado geralmente para dados pequenos. 72 Resumo teórico de MachineLearning para concursos Sergio Souza Novak Usos: Segmentação de clientes; Análise de dados(rodar algoritmo antes de analisar os dados, e analisar os clusters); redução de dimensionalidade; Detecção de anomalias; Mecanismos de busca (busca por imagem); Segmentação de imagens Alguns exemplos de tarefas de aprendizado não supervisionado são: • Clusterização: Agrupar dados em grupos chamados clusters, serve para segmentação de clientes, sistemas de recomendação, mecanismos de busca e até redução da dimensionalidade. • Detecção de anomalias: Trata do sistema aprender como são os dados certos e então buscar por anomalias, serve para detecção de defeitos em fábricas e analisar uma tendência nova em uma série temporal. • Estimativa de densidade: Encontrar a função de densidade de probabilidade do processo aleatório que gerou o conjunto de dados. Isso ajuda na visualização dos dados. No caso do clustering ocorre a agregação de dados conforme sua medida de proximidade, várias formulas de distância podem ser utilizadas, como a 73 Resumo teórico de Machine Learning para concursos Sergio Souza Novak distância do cosseno , distância de Jaccard e a distância euclidiana. Agrupamento K means O algoritmo K means é um algoritmo não paramétrico de aprendizado não supervisionado do tipo clusterização. O k means é um tipo de agrupamento exclusivo isso significa que se um ponto pertencer a um cluster ele não vai pertencer a outro. Ele também é um algoritmo guloso. No algoritmo inicialmente 1. ESCOLHA DOS K CENTROIDES: é escolhido k centroides, um para cada cluster. Esses centroides devem estar o mais longe possível um do outro. 2. ASSOCIAR A CADA PONTO O CENTRÓIDE MAIS PRÓXIMO 3. RECALCULAR OS K CENTROIDES. 4. ENQUANDO OS CENTROIDE SE MOVIMENTAR REPETIR 1-3 5. RETORNAR 74 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 75 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Exemplo de implementação em scikit learn: O algoritmo busca minimizar a distância entre o centroide e cada ponto, minimizando J, tal que .. Há alguns problemas relacionados a k means: 1. Se o conjunto de pontos próximos ao centroide qualquer seja vazio esse centroide pode não ser atualizado. 2. Não há uma maneira ótima para descrever o melhor k. Aumentar muito k pode levar a overfitting. No scikit learn a inicialização de centroides é inicialmente aleatória e o algoritmo é treinado por padrão dez vezes e então feito a classificação. Para selecionar o melhor modelo ele busca minimizar a inércia J. 76 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O kmeans não se comporta muito bem quando os clusters tem tamanhos variados (não esféricos), por exemplo nesses blobs elipsoidais: É fundamental escalonar as características de entrada antes de executar o K-Means, ou os clusters podem ser muito achatados e o K-Means terá um desempenho precário. O escalonamento das características não garante que todos os clusters sejam bonitos e esféricos, mas normalmente melhora as coisas. Agrupamento Hierárquico No agrupamento hierárquico ocorre a sobreposição de clusters: 77 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Inicialmente: 1. Crie um cluster para cada item. 2. Encontre o par de cluster mais próximo e mescle-o em um único cluster. 3. Calcule a distância entre o novo cluster e repita o processo 2-3 até que se tenha um cluster único. Esse algoritmo usa o gráfico de representação chamado dendrograma, e seu hiperparâmetro principal é o número de clusters. Mistura de Gaussianas(GMM) 78 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O método estatístico de Mistura de Gaussianas resolve a tarefa de classificação em uma abordagem baseada em modelo, que consiste em determinar modelos para clusters e otimizar o ajuste entre os dados. Cada cluster é representado por uma distribuição paramétrica, como uma gaussiana. Todo o conjunto de dados é representado por uma mistura dessas distribuições. Esse modelo é sensível a outliers então é preciso limpar bem os dados antes de utilizar. Esse algoritmo também existe o centroide, que é a média de cada uma das distribuições, nesse método o agrupamento não é tão rígido quanto kmeans. Uma mistura gaussiana é uma função composta por várias Gaussianas cada uma identificada por k, onde k é o número de clusters do conjunto de dados. A cada uma dessas gaussianas existe uma probabilidade pi de forma que a soma de todas as probabilidades das distribuições é 1. 79 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O algoritmo utilizado para esse modelo estatístico é o Expectativa- Maximização nele a função de verossimilhança é maximizada. 80 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Infelizmente, assim como o K-Means, o EM pode acabar convergindo para soluções ruins, logo, é necessário executá-lo diversas vezes, mantendo apenas a melhor solução. Por esse motivo, definimos n_init para 10. Tenha cuidado: por padrão, o n_ini é definido como 1. Ao lado uma função para conferir se o algoritmo convergiu ou não. É possível utilizar esse algoritmo para detectar anomalias, de forma que os dados com anomalia estão situados nas regiões de baixa densidade, por exemplo se considerarmos anomalias como sendo 4% de percentil: No momento de identificar o número de clusters você pode utilizar inércia, ou pode utilizar um modelo de informação Bayesiano. Existe uma classe no scikit learn que implementa esse modelo junto com mistura gaussiana BayesianGaussianMixture. 81 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Regras de associação As regras de associação são muito comuns na análise de cestas de compras. O objetivo das regras de associação é descobrir regras que ocorram com alta frequência em um banco de dados, por exemplo se leite e pão são frequentemente comprados juntos. Um algoritmo muito usado é o algoritmo Apriori, esse algoritmo busca por regras do tipo , onde A é chamado de antecedente e b consequente. Existem duas estatísticas que são usadas pelo algoritmo para avaliar uma relação de consequência: Na confiança é avaliado a probabilidade de consequentes já dado que o carrinho já possua antecedentes. O algoritmo Apriori têm um valor fixado, por exemplo 20% como sendo para considerar que o produto A está relacionado com B. No Suporte temos a métrica da probabilidade de A e B, ou também o número de A e B sobre o total de ocorrências. Essa medida diz respeito de quão frequente é um conjunto de itens em todas as transações 82 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Lift (quanto o usuário ter comprado A aumenta a probabilidade dele comprar B). O algoritmo a priori não usa a força bruta e sim constrói um grafo contendo todos os conjuntos candidatos, de forma que se um conjunto é frequente todos os subconjuntos também são, dessa forma o conjunto de itens não frequentes pode ser podado(principio apriori). Exemplo de saída do algoritmo: processo de extração dessas regras de um determinado conjunto de dados por regras de associação é chamado Mineração de Regras de associação(ARM), o algoritmo apriori não está implementado no scikitlearn 83 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Suporte => Frequência; Confiança => Probabilidade/Certe 84 Resumo teórico de Machine Learning para concursos Sergio Souza Novak REDES NEURAIS ARTIFICIAIS Nas redes neurais artificiais (RNA) são modelos baseados nas redes neurais biológicas. As aplicaçõesvariam, como sistemas de recomendação, classificação de imagens, reconhecimento de fala, etc... A biblioteca do Keras é responsável por lidar com a implementação. Deep Learning é uma classe de algoritmo de aprendizado de máquina que usa várias camadas de unidades computacionais onde cada camada aprende sua própria representação dos dados de entrada. O primeiro modelo de neurônio artificial criado foi O PERCEPTRON, que demonstrou como um sistema pode aprender o comportamento desejado isso deu origem a primeira onda das redes neurais. Porém o perceptron tem algumas limitações fundamentais, apesar dessas limitações poderem serem resolvidas com perceptron multicamadas, o algoritmo não se estendeu a essas redes. Depois veio a segunda onda com a criação do algoritmo de retropropagação para treinamento automático, superando as limitações do perceptron, depois houve o desenvolvimento da Lenet que é uma rede neural convolucional que é capaz de reconhecer códigos postais feitos a mão, que foi usada comercialmente em bancos nos EUA para ler cheques manuscritos. A terceira onda veio graças a disponibilidade massiva de recursos e capacidade de processamento gráfico (GPU) para computação de propósito geral, em 2012 com AlexNet uma Rede neural Convolucional que venceu desafios de visão computacional. 85 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O PERCEPTRON O perceptron também chamado de unidade lógica de limite (TLU) ou limite linear, é uma das arquiteturas mais simples de neurônio artificial. A TLU é um neurônio onde as entradas x1,x2,x3,...,xn são números e cada conexão de entrada está associado a um peso w1,w2,w3,..,wn. Então na TLU é feita a soma ponderada de: , de forma que esse valor será passado para uma função de ativação que vai dizer como o modelo vai se comportar, é mais comum utilizar a função Headviside ou função sinal: 86 Resumo teórico de Machine Learning para concursos Sergio Souza Novak A saída e resumo de todo o processo pode ser visto como: 87 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Normalmente se fixa uma taxa de aprendizado e a cada vez que o algoritmo calcula uma saída e erra todos os pesos são recalculados: Acima foi descrito uma época, de forma que época é uma iteração que percorre todos as amostras (linhas da tabela). O algoritmo para assim que os pesos param de se alterar. O recalculo do peso i é feito através da fórmula: 88 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Dessa forma os pesos (inicialmente escolhidos aleatoriamente) são ajustados sempre que o algoritmo erra uma previsão. é uma constante e significa a taxa de aprendizado, no exemplo numérico foi usado 0,5. Pode-se utilizar um bias, que é um peso a mais no algoritmo de forma que dê mais um grau de liberdade para o modelo, isso faz com que o algoritmo tenha um desempenho melhor: Podemos definir então PERCEPTRON como sendo uma ÚNICA CAMADA de TLUs, e cada TLU está conectada a todas as entradas: Implementação de um Perceptron no Scikit learn: 89 Resumo teórico de Machine Learning para concursos Sergio Souza Novak No Scikit Learn um perceptron equivale a um Gradiente Descendente Estocástico, a classe Perceptron da ScikitLearn é equivalente ao uso de um SGDClassifier com os seguintes hiperparâmetros: loss=”perceptron”, learning_rate =”constant”, eta0=1 (taxa de aprendizado) e penalty=None (sem regularização) Normalmente se prefere Regressão Logística a Perceptrons, pois eles não geram uma saída de probabilidade de classe. O perceptron não consegue resolver a tarefa de classificação quando os dados não são linearmente separáveis. Isso pode ser exemplificado na tabela XOR Para resolver problemas onde os dados não são linearmente separáveis é preciso usar perceptron multicamada(MLP): 90 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Tanto no perceptron quanto na MLP as arquiteturas são feedforward(FNN), ou seja, o sinal circula em apenas uma direção. O MLP é um exemplo de rede neural artificial. Quando uma Rede Neural Artificial tem muitas camadas é chamada de Rede Neural Profunda(DNN). Beeem depois uns 20 anos foi descoberto o algoritmo backpropagation que utiliza a técnica de gradiente descendente, em apenas duas passagens pela rede, uma para frente e outra para trás, o algoritmo de retropropagação é capaz de calcular o gradiente do erro da rede em relação a cada parâmetro do modelo. Ele pode descobrir como cada peso de conexão e cada termo de polarização devem ser ajustados para reduzir o erro. 91 Resumo teórico de Machine Learning para concursos Sergio Souza Novak fds 92 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Algoritmo Backpropagation A síntese desse algoritmo é o gradiente descendente que calcula automaticamente os gradientes, bastam duas passagens pela rede que o algoritmo consegue calcular o gradiente do erro com relação a cada parâmetro do modelo único, identificando cada peso e cada viés adequado para reduzir o erro. Se chama autodiff a diferenciação automática, que é o calculo automático dos gradientes. Existem várias técnicas de autodiff, e a técnica da retropropagação é a do autodiff de modo reverso. 1. Inicializar pesos de forma aleatória. • Passo forward: 1. Manipula um mini batch por vez, cada passagem é chamada de época. 2. Cada mini batch é passado para a camada de entrada da rede para a primeira camada oculta. Fazendo as predições. • Cálculo de Erro da Rede: 1. Faz o cálculo do erro da rede: Saída desejada – saída esperada 93 Resumo teórico de Machine Learning para concursos Sergio Souza Novak • Calcula o quanto cada conexão de saída contribuiu para o erro faz isso utilizando a REGRA DA CADEIA. • Passo backward: 1. Calcula, utilizando a regra da cadeia, cada contribuição de erro, conseguindo o gradiente de erro em todos os pesos de conexão. • Etapa do Gradiente descendente para ajustar os pesos de conexão da rede, utilizando gradientes de erro que acabou de calcular. Resumo do Algoritmo: 1. Para cada instância de Treinamento calcular fazer uma predição e calcular o erro (forward). 2. Passar pelas camadas no sentido inverso a fim de encontrar as contribuições de erro de cada conexão (backward). 3. Ajustar os pesos para reduzir o erro (gradiente descendente). 4. Repetir o processo até não atualizar os pesos. Nesse algoritmo não se pode utilizar a função de ativação degrau pois o gradiente descendente não pode se deslocar em uma superfície plana. Dessa forma adota-se comumente a função logística sigmoide. O algoritmo de retropropagação funciona bem com outras funções de ativação também: 94 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Funções de ativação Existe a Função Sigmoide ou logística descrita por: A função essencialmente tende a empurrar os valores de Y para os extremos Ela é muito utilizada quando precisamos classificar os valores para uma classe específica. Os problemas dessa função é quando os gradientes ficam muito pequenos, assim a rede não aprende. Outro problema é que seus valores variam apenas entre 0 e 1. Nem sempre desejamos que os valores enviados ao próximo neurônio sejam todos do mesmo sinal. Ela também não é simétrica em torno da origem. 95 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Existe ainda a função tangente hiperbólica (tanh). Essa função tem forma de S, porém seu valor de saída varia entre -1 e 1. Essa função pode acelerar a convergência pois seus valores tendem a centrar as saídas em 0 noinício do treinamento, isso ajuda a acelerar a convergência. A tangente hiperbólica é feita pelo escalonamento entre duas sigmóides 96 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Existe também a função ReLU, que é a mais amplamente utilizada para projetar redes neurais, isso porque a função ReLU não é linear, facilitando copiar os erros. A principal vantagem de ReLU é que ela não ativa todos os neurônios ao mesmo tempo. Como seu resultado é zero para valores negativos, ela tende a “apagar” alguns neurônios durante um passo forward, o que aumenta a velocidade do treinamento, mas por outro pode fazer com que esses neurônios “morram” e não aprendam nada se eles só receberem valores negativos. Quando utilizar cada função de ativação? Atualmente, dado o desempenho maior, a função ReLU é a mais utilizada. Mas se ela não for eficiente utilizar as outras funções. Para problemas de classificação binária pode-se utilizar tangente hiperbólica ou sigmóide. Para classificação não binária utilizar softmax, para problemas de regressão utilizar ativação linear. 97 Resumo teórico de Machine Learning para concursos Sergio Souza Novak e MLPs para Regressão MLPs podem ser usadas para resolver problemas de regressão, de forma que se quiser prever um único valor deve usar um único neurônio de saída. 98 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Um exemplo de regressão univariada é prever a altura de uma pessoa dado o quanto ela dorme por dia (em média) e dado a idade da pessoa, nesse caso teríamos apenas um neurônio de saída. Um exemplo de regressão multivariada é prever as coordenadas de um ponto dados outros pontos. Na regressão os neurônios de saída não devem ter nenhuma função de ativação, eles devem ficar livres para produzir qualquer valor. Porém se você quiser que a saída sempre seja positiva utilizar a função ReLU na camada de saída. Porém pode-se utilizar a função de ativação softplus, que é uma variante de relu: A função de perda utilizada pode ser: Utilizar Erro médio quadrático (MSE) se não tiver outliers e Erro médio absoluto (MAE) se tiver outliers. 99 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Hiperparâmetros de uma MLP: Hiperparâmetro Valor Típico Neurônios de entrada Um neurônio por entrada Camadas ocultas Depende do problema, normalmente 1 a 5. Neurônios por camada oculta Depende, mas normalmente 10 a 100 Neurônios de Saída 1 por dimensão de previsão Ativação Oculta ReLU ou SELU Ativação de Saída Nenhum ou ReLU/softplus(se saídas positivas) ou logística/tanh (se saídas limitadas). Função de Perda MSE ou MAE/Huber (Se valores discrepantes). 100 Resumo teórico de Machine Learning para concursos Sergio Souza Novak MLPs para Classificação As MLP também podem ser usadas para classificação, no caso da classificação binária sempre têm como ativação a função sigmoide ou logística. No caso de uma classificação binária comum a rede vai ter apenas um neurônio de saída, de forma que esse neurônio vai dar uma probabilidade de ter aquele rótulo. Na classificação binária multi rótulo têm se um neurônio de saída para cada rótulo, também com a função sigmoide. A soma das probabilidades não vai ser 1 nesse caso. No caso da classificação multiclasse terá um neurônio de saída para cada classe, e na camada de saída terá a função softmax. A função softmax vai garantir que a soma das probabilidades das classes seja um, pois nesse caso as classes são exclusivas. 101 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Para todas essas tarefas de classificação utilizar a função de perda logarítma, chamada de ENTROPIA CRUZADA. Hiperparâmetros para tarefa de classificação utilizando MLP: Hiperparâmetro Classificação Binária Classificação binária multirótulo Classificação multiclasse Camadas de entrada e ocultas Mesmo que regressão Mesmo que regressão Mesmo que regressão Neurônios de saída 1 1 por rótulo 1 por classe Ativação da camada de saída Logística Logística Softmax 102 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Método do gradiente O método do gradiente é um método numérico de otimização que encontra um mínimo local de uma função. TensorFlow 103 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Biblioteca para inteligência de máquina, ele suporta arquiteturas de redes neurais e suporta opção GPU/CPU. O TensorFlow funciona com todas as linguagens populares como Python, C++, JAVA,R e Go. Nesse sentido ele tem o Keras que é uma api de alto nível que interage com o TensorFlow. O TensorFlow permite que o usuário crie grafos de fluxo de dados, eles descrevem como os dados se movem, ou uma série de nódulos de processamento. Cada nó do grafo é uma operação matemática e cada aresta é um array de dados multidimensional. No TensorFlow os binários (bibliotecas) são compilados em C++, para prover otimização de performance. O Python apenas direciona o tráfego entre as partes. As aplicações do TensorFlow podem ser executadas em muitos ambientes, como máquina local, cluster da nuvem, em celulares ios e android, ou processamento em CPU e GPU. Cada nó do grafo no TensorFlow é uma computação, essas computações fluem de nó para nó produzindo resultados e transformando os dados. As computações são chamadas de operators e as arestas que ligam um operator a outro são chamadas de Tensor, sendo um array multidimensional contendo os dados. 104 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O que o TensorFlow oferece para o desenvolvedor e a abstração. O modo eager execution permite depurar cada tensor de uma forma transparente. O TensorFlow board permite inspecionar e analisar a forma com que os grafos são executados em um painel web iterativo. Keras e Pytorch O Keras é uma api para composição de blocos para criar e treinar modelos de aprendizagem profunda. Ele pode ser integrado com TensorFlow, Microsoft CNTK, Amazon MxNet e Theano. Depois do TensorFlow o Keras foi adotado como api padrão de alto nível. 105 Resumo teórico de Machine Learning para concursos Sergio Souza Novak O Pytorch é uma biblioteca usado para aplicativos como processamento de linguagem natural, foi inicialmente desenvolvido pelo Facebook. 106 Resumo teórico de Machine Learning para concursos Sergio Souza Novak REDES NEURAIS CONVOLUCIONAIS. São muito utilizadas na percepção visual e processamento de linguagem natural. O bloco mais importante é a camada convolucional, os neurônios na primeira camada não estão conectados a cada pixel, e sim nos seus pixels em seus campos receptivos. A característica mais importante das redes convolucionais é a invariância de translação. Se um objeto for transladado a rede ainda será capaz de reconhece-lo. Isso é obtido fazendo o compartilhamento de peso entre os neurônios e também tornando-os escassamente conectados. Os neurônios são agrupados em canais, de forma que todos os neurônios de um mesmo canal tem o mesmo peso. Os neurônios de um mesmo canal são cópias idênticas uns dos outros mas recebem entradas diferentes. 107 Resumo teórico de Machine Learning para concursos Sergio Souza Novak A região de pixel que um neurônio recebe é chamado de campo receptivo, para uma imagem colorida o valor de pixel consiste nos valores de canais de cores. A rede aprenderá quais recursos procurar durante o processo de treinamento, não precisamos definir as linhashorizontais verticais e diagonais. REDES NEURAIS RECORRENTES Elas são muito utilizadas para séries temporais, são parecidas com redes MLP normais, mas tem também pesos nas voltas. As Redes neurais recorrentes são um tipo de rede neural projetada para reconhecer padrões em sequências de dados, como textos, genomas e caligrafia. Essas redes consideram tempo e sequência, elas têm uma dimensão temporal. 108 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Vanishing and Exploding Gradients Em redes neurais artificiais com backpropagation a atualização dos pesos é feita com base na derivada parcial referente a contribuição que aquele peso fez a função final de custo. Pode acontecer dessa derivada parcial ser muito pequena no vetor de contribuições (gradiente) isso causa o problema dos Vanishing Gradients, ou gradientes sumindo/dissipação de gradiente em português. No gráfico ao lado temos três camadas, a camada 3 está demorando muito para aprender, pode ter acontecido o problema da dissipação de gradiente. Nesse caso o gradiente pode estar muito pequeno, o que faz com que o modelo demore a aprender ou não calcule corretamente os pesos, fazendo com que o modelo fique ruim. Esse problema é muito frequente em Redes Neurais Recorrentes. Uma forma de resolver o problema do gradiente é substituir a função de ativação, trocando por exemplo, a função de tanh que tem como resultado um número entre [0,1) por outra função, como ReLU, que sofre menos com o problema de vanishing gradientes, outra forma é fazendo outro tipo de inicialização de pesos(pesos muito pequenos podem fazer com que o gradiente não consiga calcular, pesos muito grandes estouram o gradiente). Outra solução é usar outra arquitetura como ResNet. Considerações gerais o otimizador Adam para ser responsável pela atualização dos pesos. Este algoritmo é exemplo de um método de gradiente descendente estocástico desenvolvido para ser computacionalmente eficiente. 109 Resumo teórico de Machine Learning para concursos Sergio Souza Novak PROCESSAMENTO NATURAL DE LINGUAGEM (PLN) A diferença entre análise de textos e processamento de linguagem natural é que: Análise de texto analisa apenas o texto, contendo informações vindos da fala humana, ou informações como xmls. O processamento de linguagem natural envolve reconhecimento de texto e voz. O Processamento de Linguagem Natural pode ser dividido em: • Natural Language Understanding (NLU): refere-se a um processo no qual um objeto inanimado, com poder de computação, é capaz de compreender a linguagem falada. • Natural Language Generation (NLG): processo de um objeto inanimado capaz de manifestar seus pensamentos, em linguagem que os humanos são capazes de entender. 110 Resumo teórico de Machine Learning para concursos Sergio Souza Novak No processamento de linguagem natural podemos citar um exemplo, como quando se envia para a loja Magalu uma mensagem de áudio. O sistema irá reconhecer o que foi dito e traduzir para uma linguagem formal, em seguida vai compreender o que foi dito (PLU). Depois disso o sistema irá devolver a resposta correta para o usuário, essa resposta precisa ser convertida para a linguagem natural ( através do NLG). Tudo isso trata-se de processar, compreender e gerar uma resposta para a linguagem humana. Uma das aplicações da PLN é a detecção de fala, programas de fala para texto (speed to text), tradução automática de texto, análise de sentimento, detecção de palavras-chave, extração e sumarização de texto. Chama-se sumarização o ato de resumir o assunto fonte, de forma que o autor dispense o texto existente. A utilização dos sumários é vasta, como servindo por indexadores do texto original. Nesse caso os sumários são lidos para saber qual o assunto do texto. A sumarização é dividida entre extrativa(seleciona-se elementos inteiros) e abstrativa (execução de operações de reescrita). A abstrativa é mais difícil. Na sumarização extrativa é gerado um sumário com os elementos mais representativos, abordando as sentenças com mais novidades, ocorre o ranqueamento para obter sentenças com maior pontuação. A sumarização abstrativa seleciona sentenças mais importantes e também analisa os documentos, gerando novas sentenças. Essa sumarização pode solucionar o problema da falta de coesão da sumarização extrativa. Ferramentas para sumarização: Sumarização Extrativa Sumarização Abstrativa Grafos, Aprendizado de Máquina Supervisionado, Métodos Estatísticos. Modelos LSTM, BERT e Google T5 transformer. Um problema da PLN é a ambiguidade sintática, de forma que uma frase pode ser interpretada de várias formas. 111 Resumo teórico de Machine Learning para concursos Sergio Souza Novak Processo de PLN Inicialmente os dados são coletados, depois são limpos, e então convertidos em um formato canônico (pré-processamento). Depois é executado um algoritmo de modelagem, de forma que a máquina compreenda. Em seguida vem a fase de avaliação do modelo e depois é feito o monitoramento dele. Etapa de Pré-processamento As etapas a seguir nem sempre estão em todos os pipelines, porém as duas primeiras são as mais vistas. 1. Preliminares Inicialmente no pré-processamento ocorre a divisão do texto em palavras, chamadas de tokens e sentenças. Primeiro ao texto é dividido em sentenças (segmentação de sentenças), depois dividido em palavras (tokenização de palavras). Na etapa de segmentação de sentenças, as frases são divididas em sentenças a partir da pontuação (ponto final), contudo deve-se fazer o tratamento de siglas, endereços e reticências, que podem gerar 112 Resumo teórico de Machine Learning para concursos Sergio Souza Novak problemas. Contudo, já tem muitas bibliotecas que tratam disso, como o Natural Language Tool Kit (NLTK). 2. Remoção de stopwords e case folding Palavras como on, it, was na língua inglesa não carregam consigo muito significado, por isso são chamadas de stopwords, pois raramente contribuem para o significado da sentença. Elas podem ou não serem removidas. A remoção de stopwords deve ser realizada antes da indexação. São removidos artigos, preposições, conjunções e alguns pronomes. A remoção de stopwords diminui o tamanho de uma estrutura de índice, em até 40%, e também evita índices falsos. A transformação de todas as palavras para maiúscula ou minúscula consiste no case folding 3. Stemming e lemmatization O processo de stemming reduz a palavra a seu radical, isso elimina tempos verbais, sulfixos e plurais. Algoritmos de stemming dependem do idioma, casos em que analisar o contexto melhora o processo não são muito frequentes. Ocorre o overstemming quando é removido uma parte da palavra erroneamente, pois era parte do steam, isso resulta na conflação de termos não relacionados. Ocorre understemming quando o sufixo não é removido, isso causa falha na conflação de palavras relacionadas. O processo de lematização (lemmatization) é mapear as diferentes formas de uma palavra para sua base ou lema. Construir bons lematizadores é um problema ainda não resolvido. 113 Resumo teórico de Machine Learning para concursos Sergio Souza Novak 4. Marcação PoS (part of speech) Nessa etapa é feita a marcação e rotulação das classes gramaticais das palavras. Por exemplo: [('O', 'DT'), ('céu', 'NN'), ('é', 'VBZ'), ('azul', 'JJ')] Todas essas etapas geram uma redução dimensional. Uso do dicionário Thesaurus (pré- processamento) Pode ser utilizado um dicionário para representar sinônimos, hierarquias e relacionamentos entre os termos. Dicionários são muito utilizados então na indexação das palavras. A revocação é o número de documentos recuperados pelo número de documentos relevantes.
Compartilhar