O melhor
10 Melhores Algoritmos de Aprendizado de Máquina

Embora estejamos vivendo um período de inovação extraordinária em aprendizado de máquina acelerado por GPU, os artigos de pesquisa mais recentes frequentemente (e proeminentemente) apresentam algoritmos que têm décadas, em alguns casos 70 anos.
Alguns podem argumentar que muitos desses métodos mais antigos caem na categoria de ‘análise estatística’ em vez de aprendizado de máquina, e preferem datar o início do setor apenas até 1957, com a invenção do Perceptron.
Dada a extensão com que esses algoritmos mais antigos apoiam e estão enredados nas últimas tendências e desenvolvimentos de aprendizado de máquina, é uma postura questionável. Então, vamos dar uma olhada em alguns dos ‘bloqueios clássicos’ que sustentam as últimas inovações, bem como algumas novas entradas que estão fazendo uma oferta precoce para o hall da fama da IA.
1: Transformadores
Em 2017, a Google Research liderou uma colaboração de pesquisa que culminou no artigo Atenção é tudo o que você precisa. O trabalho descreveu uma arquitetura inovadora que promoveu mecanismos de atenção de ‘tubulação’ em modelos de codificador/decodificador e de rede recorrente para uma tecnologia transformacional central em seu próprio direito.
A abordagem foi apelidada de Transformador, e desde então se tornou uma metodologia revolucionária no Processamento de Linguagem Natural (NLP), alimentando, entre muitos outros exemplos, o modelo de linguagem autoregressivo e o poster-child da IA GPT-3.

Os Transformadores resolveram elegantemente o problema de transdução de sequência, também chamado de ‘transformação’, que lida com o processamento de sequências de entrada em sequências de saída. Um transformador também recebe e gerencia dados de forma contínua, em vez de em lotes sequenciais, permitindo uma ‘persistência de memória’ que as arquiteturas RNN não são projetadas para obter. Para uma visão geral mais detalhada dos transformadores, dê uma olhada em nosso artigo de referência.
Em contraste com as Redes Neurais Recorrentes (RNNs) que haviam começado a dominar a pesquisa de ML na era CUDA, a arquitetura do Transformador também poderia ser facilmente paralelizada, abrindo caminho para abordar produtivamente um corpus de dados muito maior do que as RNNs.
Uso Popular
Os Transformadores capturaram a imaginação do público em 2020 com o lançamento do GPT-3 da OpenAI, que ostentava um recorde de 175 bilhões de parâmetros na época. Essa aparentemente impressionante realização foi eventualmente ofuscada por projetos posteriores, como o lançamento de 2021 do Megatron-Turing NLG 530B da Microsoft, que (como o nome sugere) apresenta mais de 530 bilhões de parâmetros.

Uma linha do tempo de projetos de NLP de Transformador em escala hiperscalável. Fonte: Microsoft
A arquitetura do Transformador também cruzou de NLP para visão computacional, alimentando uma nova geração de frameworks de síntese de imagens, como o CLIP e o DALL-E da OpenAI, que usam mapeamento de domínio texto>imagem para concluir imagens incompletas e sintetizar imagens novas a partir de domínios treinados, entre um número crescente de aplicações relacionadas.

O DALL-E tenta concluir uma imagem parcial de uma busto de Platão. Fonte: https://openai.com/blog/dall-e/
2: Redes Adversárias Generativas (GANs)
Embora os Transformadores tenham ganhado cobertura midiática extraordinária com o lançamento e adoção do GPT-3, a Rede Adversária Generativa (GAN) se tornou uma marca reconhecida por si só, e pode eventualmente se juntar a deepfake como um verbo.
Proposto pela primeira vez em 2014 e principalmente usado para síntese de imagens, uma arquitetura de Rede Adversária Generativa é composta por um Gerador e um Discriminador. O Gerador percorre milhares de imagens em um conjunto de dados, tentando iterativamente reconstruí-las. Para cada tentativa, o Discriminador avalia o trabalho do Gerador e o envia de volta para fazer melhor, mas sem qualquer insight sobre como a reconstrução anterior errou.

Fonte: https://developers.google.com/machine-learning/gan/gan_structure
Isso força o Gerador a explorar uma multiplicidade de avenidas, em vez de seguir os possíveis becos sem saída que resultariam se o Discriminador tivesse dito a ele onde estava errado (veja #8 abaixo). No final do treinamento, o Gerador tem um mapa detalhado e abrangente das relações entre os pontos no conjunto de dados.

Do artigo Improving GAN Equilibrium by Raising Spatial Awareness: um framework novo percorre o espaço latente sometimes-mysterious de uma GAN, fornecendo instrumentação responsiva para uma arquitetura de síntese de imagens. Fonte: https://genforce.github.io/eqgan/
Por analogia, isso é a diferença entre aprender um único commute monótono para o centro de Londres ou adquirir O Conhecimento.
O resultado é uma coleção de alto nível de características no espaço latente do modelo treinado. O indicador semântico para uma característica de alto nível pode ser ‘pessoa’, enquanto uma descida através da especificidade relacionada à característica pode desenterrar outras características aprendidas, como ‘masculino’ e ‘feminino’. Em níveis mais baixos, as sub-características podem se quebrar em, ‘loiro’, ‘caucasiano’, etc.
Entrelaçamento é um problema notável no espaço latente das GANs e frameworks de codificador/decodificador: o sorriso em uma face gerada por GAN é uma característica entrelaçada de sua ‘identidade’ no espaço latente, ou é um ramo paralelo?

Faces geradas por GAN de thispersondoesnotexist. Fonte: https://this-person-does-not-exist.com/en
Os últimos dois anos trouxeram uma série de novas iniciativas de pesquisa nesse respeito, talvez abrindo caminho para edição de nível de característica, estilo Photoshop, para o espaço latente de uma GAN, mas no momento, muitas transformações são efetivamente ‘tudo ou nada’ pacotes. Notavelmente, o lançamento do EditGAN da NVIDIA no final de 2021 alcança um alto nível de interpretabilidade no espaço latente usando máscaras de segmentação semântica.
Uso Popular
Além de seu (na verdade bastante limitado) envolvimento em vídeos de deepfake populares, GANs centrados em imagem/vídeo proliferaram nos últimos quatro anos, fascinando pesquisadores e o público alike. Manter o ritmo e a frequência de novos lançamentos é um desafio, embora o repositório GitHub Aplicações Incríveis de GAN busque fornecer uma lista abrangente.
Redes Adversárias Generativas podem, em teoria, derivar características de qualquer domínio bem estruturado, incluindo texto.
3: SVM
Originado em 1963, Máquina de Vetor de Suporte (SVM) é um algoritmo central que surge frequentemente em novas pesquisas. Sob SVM, vetores mapeiam a disposição relativa dos pontos de dados em um conjunto de dados, enquanto vetores de suporte delineiam as fronteiras entre diferentes grupos, características ou traços.

Vetores de suporte definem as fronteiras entre grupos. Fonte: https://www.kdnuggets.com/2016/07/support-vector-machines-simple-explanation.html
A fronteira derivada é chamada de hiperplano.
Em níveis de característica baixos, o SVM é bidimensional (imagem acima), mas onde há um número maior reconhecido de grupos ou tipos, ele se torna tridimensional.

Um array mais profundo de pontos e grupos exige um SVM tridimensional. Fonte: https://cml.rhul.ac.uk/svm.html
Uso Popular
Desde que as Máquinas de Vetor de Suporte podem abordar efetiva e agnosticamente dados de alta dimensionalidade de muitos tipos, elas surgem amplamente em uma variedade de setores de aprendizado de máquina, incluindo detecção de deepfake, classificação de imagem, classificação de discurso de ódio, análise de DNA e previsão de estrutura populacional, entre muitos outros.
4: Agrupamento K-Means
O agrupamento em geral é uma abordagem de aprendizado não supervisionado que busca categorizar dados por meio de estimativa de densidade, criando um mapa da distribuição dos dados que estão sendo estudados.

Agrupamento K-Means divina segmentos, grupos e comunidades em dados. Fonte: https://aws.amazon.com/blogs/machine-learning/k-means-clustering-with-amazon-sagemaker/
Agrupamento K-Means se tornou a implementação mais popular dessa abordagem, conduzindo dados em grupos distintos ‘K’, que podem indicar setores demográficos, comunidades online ou qualquer outra possível agregação secreta esperando ser descoberta em dados estatísticos brutos.

Grupos se formam em análise K-Means. Fonte: https://www.geeksforgeeks.org/ml-determine-the-optimal-value-of-k-in-k-means-clustering/
O valor K em si é o fator determinante na utilidade do processo, e no estabelecimento de um valor ótimo para um grupo. Inicialmente, o valor K é atribuído aleatoriamente, e suas características e características de vetor são comparadas com as de seus vizinhos. Os vizinhos que mais se assemelham ao ponto de dados com o valor K atribuído aleatoriamente são atribuídos ao seu grupo iterativamente até que os dados tenham rendido todos os agrupamentos que o processo permite.
O gráfico para o erro quadrado, ou ‘custo’ de valores diferentes entre os grupos, revelará um ponto de cotovelo para os dados:

O ponto de cotovelo em um gráfico de grupo. Fonte: https://www.scikit-yb.org/en/latest/api/cluster/elbow.html
O ponto de cotovelo é semelhante em conceito à forma como a perda se achatada até retornos decrescentes no final de uma sessão de treinamento para um conjunto de dados. Ele representa o ponto em que nenhuma distinção adicional entre os grupos será aparente, indicando o momento de prosseguir para as fases subsequentes no pipeline de dados, ou relatar os resultados.
Uso Popular
O Agrupamento K-Means, por razões óbvias, é uma tecnologia primária na análise de clientes, pois oferece uma metodologia clara e explicável para traduzir grandes quantidades de registros comerciais em insights demográficos e ‘leads’.
Fora dessa aplicação, o Agrupamento K-Means também é empregado para previsão de deslizamentos de terra, segmentação de imagem médica, síntese de imagem com GANs, classificação de documentos e planejamento urbano, entre muitos outros usos potenciais e reais.
5: Random Forest
Random Forest é um método de aprendizado ensemble que calcula a média do resultado de uma matriz de árvores de decisão para estabelecer uma previsão geral para o resultado.

Fonte: https://www.tutorialandexample.com/wp-content/uploads/2019/10/Decision-Trees-Root-Node.png
Se você pesquisou isso mesmo apenas assistindo à trilogia De Volta para o Futuro, uma árvore de decisão em si é fairly fácil de conceituar: um número de caminhos se estende diante de você, e cada caminho se ramifica para um novo resultado que, por sua vez, contém caminhos possíveis adicionais.
Em aprendizado reforçado, você pode recuar de um caminho e começar novamente a partir de uma posição anterior, enquanto as árvores de decisão se comprometem com suas jornadas.
Assim, o algoritmo Random Forest é essencialmente uma aposta espalhada para decisões. O algoritmo é chamado de ‘aleatório’ porque ele faz ad hoc seleções e observações para entender a média soma dos resultados da matriz de árvore de decisão.
Como ele leva em conta uma multiplicidade de fatores, uma abordagem de Random Forest pode ser mais difícil de converter em gráficos significativos do que uma árvore de decisão, mas é provável que seja notavelmente mais produtiva.
As árvores de decisão estão sujeitas a sobreajuste, onde os resultados obtidos são específicos de dados e não prováveis de generalizar. A seleção aleatória de dados do Random Forest combate essa tendência, perfurando até tendências representativas e úteis nos dados.

Regressão de árvore de decisão. Fonte: https://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html
Uso Popular
Como muitos dos algoritmos nesta lista, o Random Forest normalmente opera como um ‘inicial’ classificador e filtro de dados, e como tal, surge consistentemente em novos artigos de pesquisa. Alguns exemplos de uso do Random Forest incluem Síntese de Imagem de Ressonância Magnética, previsão de preço de Bitcoin, segmentação de censo, classificação de texto e detecção de fraude de cartão de crédito.
Como o Random Forest é um algoritmo de baixo nível em arquiteturas de aprendizado de máquina, ele também pode contribuir para o desempenho de outros métodos de baixo nível, bem como algoritmos de visualização, incluindo Agrupamento Indutivo, Transformações de Recurso, classificação de documentos de texto usando recursos esparsos e exibição de Pipelines.
6: Naive Bayes
Acoplado com estimativa de densidade (veja 4, acima), um classificador Naive Bayes é um algoritmo poderoso, mas relativamente leve, capaz de estimar probabilidades com base nas características calculadas dos dados.

Relações de características em um classificador Naive Bayes. Fonte: https://www.sciencedirect.com/topics/computer-science/naive-bayes-model
O termo ‘ingênuo’ refere-se à suposição em teorema de Bayes de que as características são não relacionadas, conhecida como independência condicional. Se você adotar esse ponto de vista, andar e falar como um pato não são o suficiente para estabelecer que estamos lidando com um pato, e nenhuma suposição ‘óbvia’ é adotada prematuramente.
Esse nível de rigor acadêmico e investigativo seria excessivo onde o ‘senso comum’ está disponível, mas é um padrão valioso quando se percorrem as muitas ambiguidades e possíveis correlações não relacionadas que podem existir em um conjunto de dados de aprendizado de máquina.
Em uma rede bayesiana original, as características estão sujeitas a funções de pontuação, incluindo comprimento de descrição mínimo e pontuação bayesiana, que podem impor restrições aos dados em termos das conexões estimadas encontradas entre os pontos de dados e a direção em que essas conexões fluem.
Um classificador Naive Bayes, por outro lado, opera supondo que as características de um objeto determinado são independentes, usando então o teorema de Bayes para calcular a probabilidade de um objeto determinado com base em suas características.
Uso Popular
Filtros Naive Bayes são bem representados em previsão de doenças e categorização de documentos, filtragem de spam, classificação de sentimento, sistemas de recomendação e detecção de fraude, entre outras aplicações.
7: K-Nearest Neighbors (KNN)
Primeiramente proposto pela Escola de Medicina de Aviação da Força Aérea dos EUA em 1951, e tendo que se adaptar ao estado da arte do hardware de computador de meados do século XX, K-Nearest Neighbors (KNN) é um algoritmo magro que ainda surge proeminentemente em artigos acadêmicos e iniciativas de pesquisa de aprendizado de máquina do setor privado.
KNN foi chamado de ‘o aprendiz preguiçoso’, pois ele varre exaustivamente um conjunto de dados para avaliar as relações entre os pontos de dados, em vez de exigir o treinamento de um modelo de aprendizado de máquina completo.

Um agrupamento KNN. Fonte: https://scikit-learn.org/stable/modules/neighbors.html
Embora o KNN seja arquitetonicamente esguio, sua abordagem sistemática coloca uma demanda notável por operações de leitura/escrita, e seu uso em conjuntos de dados muito grandes pode ser problemático sem tecnologias auxiliares, como Análise de Componentes Principais (PCA), que pode transformar conjuntos de dados complexos e de alto volume em agrupamentos representativos que o KNN pode percorrer com menos esforço.
Um estudo recente avaliou a eficácia e a economia de uma série de algoritmos encarregados de prever se um funcionário deixará uma empresa, encontrando que o KNN septuagenário permaneceu superior a contendores mais modernos em termos de precisão e eficácia preditiva.
Uso Popular
Para todos os seus conceitos populares de simplicidade e execução, o KNN não está preso nos anos 50 – ele foi adaptado em uma abordagem mais focada em DNN em uma proposta de 2018 pela Universidade Estadual da Pensilvânia, e permanece um processo central de estágio inicial (ou ferramenta analítica de pós-processamento) em muitos frameworks de aprendizado de máquina mais complexos.
Em várias configurações, o KNN foi usado ou para verificação de assinatura online, classificação de imagem, mineração de texto, previsão de safra e reconhecimento facial, além de outras aplicações e incorporações.

Um sistema de reconhecimento facial baseado em KNN em treinamento. Fonte: https://pdfs.semanticscholar.org/6f3d/d4c5ffeb3ce74bf57342861686944490f513.pdf
8: Processo de Decisão de Markov (MDP)
Uma estrutura matemática introduzida pelo matemático americano Richard Bellman em 1957, o Processo de Decisão de Markov (MDP) é um dos blocos básicos de arquiteturas de aprendizado reforçado. Um algoritmo conceitual em seu próprio direito, ele foi adaptado em uma grande número de outros algoritmos, e surge frequentemente na atual safra de pesquisas de IA/ML.
O MDP explora um ambiente de dados usando sua avaliação de seu estado atual (ou seja, ‘onde’ ele está nos dados) para decidir qual nó dos dados explorar em seguida.

Fonte: https://www.sciencedirect.com/science/article/abs/pii/S0888613X18304420
Um Processo de Decisão de Markov básico priorizará a vantagem de curto prazo sobre objetivos mais desejáveis a longo prazo. Por essa razão, ele é normalmente incorporado ao contexto de uma arquitetura de política mais abrangente em aprendizado reforçado, e é frequentemente sujeito a fatores limitantes, como recompensa descontada, e outras variáveis ambientais que o impedirão de correr para um objetivo imediato sem considerar o resultado desejado mais amplo.
Uso Popular
O conceito de baixo nível do MDP é amplo em pesquisa e implantações ativas de aprendizado de máquina. Ele foi proposto para sistemas de defesa de segurança IoT, colheita de peixes e previsão de mercado.
Além de sua aplicabilidade óbvia a jogos sequenciais estritos, como xadrez, o MDP é também um concorrente natural para o treinamento procedural de sistemas robóticos, como podemos ver no vídeo abaixo.
https://www.youtube.com/watch?v=9JhIsKmoRUc
9: Frequência de Termo-Inversa Frequência de Documento
A Frequência de Termo (TF) divide o número de vezes que uma palavra aparece em um documento pelo número total de palavras naquele documento. Assim, a palavra selo aparecendo uma vez em um artigo de mil palavras tem uma frequência de termo de 0,001. Por si só, a TF é amplamente inútil como um indicador de importância do termo, devido ao fato de que artigos sem sentido (como um, e, o e ele) predominam.
Para obter um valor significativo para um termo, a Frequência Inversa de Documento (IDF) calcula a TF de uma palavra em vários documentos em um conjunto de dados, atribuindo uma classificação baixa a palavras de parada muito frequentes, como artigos. Os vetores de características resultantes são normalizados para valores inteiros, com cada palavra atribuída um peso apropriado.

A TF-IDF pondera a relevância dos termos com base na frequência em vários documentos, com ocorrência rara sendo um indicador de saliência. Fonte: https://moz.com/blog/inverse-document-frequency-and-the-importance-of-uniqueness
Embora essa abordagem impeça que palavras semanticamente importantes sejam perdidas como outliers, inverter o peso de frequência não significa automaticamente que um termo de baixa frequência não seja um outlier, porque algumas coisas são raras e sem valor. Portanto, um termo de baixa frequência precisará provar seu valor no contexto arquitetônico mais amplo, apresentando-se (mesmo em uma frequência baixa por documento) em vários documentos no conjunto de dados.
Apesar de sua idade, a TF-IDF é um método poderoso e popular para passes de filtragem iniciais em frameworks de Processamento de Linguagem Natural.
Uso Popular
Porque a TF-IDF desempenhou pelo menos algum papel no desenvolvimento do algoritmo PageRank da Google ao longo dos últimos vinte anos, ela se tornou amplamente adotada como uma tática manipulativa de SEO, apesar do desvio de John Mueller em 2019 da importância para os resultados de busca.
Devido à secreta natureza do PageRank, não há evidência clara de que a TF-IDF não seja atualmente uma tática eficaz para melhorar a colocação no ranking do Google. Discussões incendiárias entre profissionais de TI ultimamente indicam uma compreensão popular, correta ou não, de que o abuso de termos pode ainda resultar em uma melhor colocação de SEO (embora acusações adicionais de abuso de monopólio e publicidade excessiva obscurecem os limites dessa teoria).
10: Descida Gradual Estocástica
O Descida Gradual Estocástica (SGD) é um método cada vez mais popular para otimizar o treinamento de modelos de aprendizado de máquina.
A Descida Gradual em si é um método de otimização e quantificação do aprimoramento que um modelo está fazendo durante o treinamento.
Nesse sentido, ‘gradiente’ indica uma inclinação para baixo (em vez de uma graduação baseada em cores, veja imagem abaixo), onde o ponto mais alto da ‘colina’, à esquerda, representa o início do processo de treinamento. Nessa etapa, o modelo ainda não viu a totalidade dos dados nem uma vez, e não aprendeu o suficiente sobre as relações entre os dados para produzir transformações eficazes.

Uma descida gradual em uma sessão de treinamento FaceSwap. Podemos ver que o treinamento alcançou um platô por algum tempo na segunda metade, mas eventualmente recuperou seu caminho para baixo na inclinação em direção a uma convergência aceitável.
O ponto mais baixo, à direita, representa a convergência (o ponto em que o modelo é tão eficaz quanto vai ser sob as restrições e configurações impostas).
O gradiente atua como um registro e um preditor para a disparidade entre a taxa de erro (quão precisamente o modelo atualmente mapeou as relações dos dados) e os pesos (as configurações que influenciam a forma como o modelo aprenderá).
Esse registro de progresso pode ser usado para informar um cronograma de taxa de aprendizado, um processo automático que diz à arquitetura para se tornar mais granular e preciso à medida que os detalhes vagos iniciais se transformam em relações e mapeamentos claros. Em essência, a perda de gradiente fornece um mapa em tempo real de para onde o treinamento deve ir em seguida e como deve proceder.
A inovação da Descida Gradual Estocástica é que ela atualiza os parâmetros do modelo em cada exemplo de treinamento por iteração, o que geralmente acelera a jornada até a convergência. Devido ao advento de conjuntos de dados em escala hiperscalável nos últimos anos, o SGD cresceu em popularidade ultimamente como um possível método para abordar as questões logísticas resultantes.
Por outro lado, o SGD tem implicações negativas para a escala de recursos, e pode exigir mais iterações para alcançar o mesmo resultado, exigindo planejamento e parâmetros adicionais, em comparação com a Descida Gradual regular.
Uso Popular
Devido à sua configurabilidade, e apesar de suas limitações, o SGD se tornou o algoritmo de otimização mais popular para ajustar redes neurais. Uma configuração do SGD que está se tornando dominante em novos artigos de pesquisa de IA/ML é a escolha do otimizador ADAM (introduzido em 2015).
O ADAM adapta a taxa de aprendizado para cada parâmetro dinamicamente (‘taxa de aprendizado adaptativa’), bem como incorpora resultados de atualizações anteriores na configuração subsequente (‘momento’). Além disso, ele pode ser configurado para usar inovações posteriores, como Momentum de Nesterov.
No entanto, alguns mantêm que o uso de momento também pode acelerar o ADAM (e algoritmos semelhantes) para uma conclusão sub-ótima. Como a maior parte da vanguarda do setor de pesquisa de aprendizado de máquina, o SGD é um trabalho em andamento.
Publicado pela primeira vez em 10 de fevereiro de 2022. Alterado em 10 de fevereiro de 20.05 EET – formatação.












