Currículo de aprendizado de máquina
O aprendizado de máquina é um ramo da inteligência artificial dedicada a fazer as máquinas aprendem com dados observacionais sem serem explicitamente programados.
O aprendizado de máquina e a IA não são os mesmos. O aprendizado de máquina é um instrumento na AI Symphony - um componente da IA. Então, o que é o aprendizado de máquina - ou ML - exatamente? É a capacidade de um algoritmo aprender com dados anteriores para produzir um comportamento. O ML está ensinando máquinas para tomar decisões em situações que nunca viram.
Este currículo é feito para guiá -lo a aprender aprendizado de máquina, recomendar ferramentas e ajudá -lo a adotar o estilo de vida da ML, sugerindo mídia a seguir. Eu o atualizo regularmente para manter o frescor e me livrar de conteúdo desatualizado e ferramentas depreciadas.
Aprendizado de máquina em geral
Estude esta seção para entender conceitos fundamentais e desenvolver intuições antes de se aprofundar.
Diz -se que um programa de computador aprende com a experiência E em relação a algumas turmas de tarefas e medição P T seu desempenho em tarefas em T , conforme medido por P , melhorar com a experiência E .
- Elementos da AI Um monte de cursos fáceis ensinando IA e aprendizado de máquina
- COMS W4995 APLICAÇÃO APLICAÇÃO APRENDIZAGEM VÍDEOS DE SPRING 2020 E SLIDES DE UM CURSO APLICADO ML pela Columbia University.
- Curso de aprendizado de máquina opinativo por Fast.ai
- Curso Classhy Learning de Machine com APIs de Tensorflow
- Introdução ao aprendizado de máquina - Udacity Hands On Scikit -Learn (Python) Aprendizagem de conceitos de ML Core
- Aprendizado de máquina: supervisionado, não supervisionado e reforço - Udacity Os 2 instrutores são hilários
- Machine Learning Mastery estabeleceu cuidadosamente guia passo a passo para alguns algoritmos específicos
- A especialização de Andrew Ng em Coursera recomendada para pessoas que desejam conhecer os detalhes dos algoritmos ML sob o capô, entender matemática suficientes para serem perigosos e fazer atribuições de codificação no Python
- Receitas ML - Lista de reprodução do YouTube Um conteúdo de concreto muito bem projetado para a Introdução de ML
- O aprendizado de máquina é divertido, parte 1, abordagem simples do aprendizado de máquina para pessoas que não são matemáticas
- Machine Learning With Python - Lista de reprodução do YouTube
- Aprendizagem de máquina ANENSO DE ANDREW NG
- Trabalhando um trabalho de dados: o curso é uma diretriz opinativa e prática para pessoas que desejam se concentrar em conseguir um emprego. Por exemplo, eles sugerem que saber como a árvore de decisão funciona já é boa o suficiente, você não precisa saber como todos os modelos funcionam, o que é verdade! Mas esse conselho é principalmente para dados tabulares.
- Aprendizado de máquina sem servidor Construa seu próprio serviço de previsão sem servidor de aprendizado de máquina
- MLOPs eficazes: Desenvolvimento de modelos Um curso gratuito por pesos e vieses com certificação
- Matemática para aprendizado de máquina e Curso de Matemática de Especialização em Ciência de Dados por Coursera
Livros
- Aprendizado de máquina com Pytorch e Scikit-Learn por Sebastian Raschka
- O aprendizado de máquina prático com Scikit-Learn, Keras e Tensorflow, 2ª edição de Aurélien Géron é o livro mais vendido porque é ótimo.
- https://github.com/fastai/fastbook The Fastai Book, publicado como notebooks Jupyter
- https://www.deeplearningbook.org/ Math Heavy Book de Ian Goodfellow e Yoshua Bengio e Aaron Courville
- https://christophm.github.io/interpretable-ml-book/ Um guia para tornar os modelos de caixa preta explicáveis
- https://themlbook.com/ O livro de aprendizado de máquina de cem-page de Andriy Burkov
Aprendizagem de reforço
Construir uma máquina que detecta o meio ambiente e, em seguida, escolhe a melhor política (ação) a fazer em qualquer estado para maximizar sua recompensa escalar esperada de longo prazo é o objetivo do aprendizado de reforço.
- O Openai Spinning Up este é um recurso educacional produzido pelo OpenAI que facilita o aprendizado do aprendizado de reforço profundo (RL Deep).
- Aprendizagem de reforço básico Uma série de introdução para o aprendizado de reforço (RL) com tutoriais passo a passo abrangentes.
- Tópicos avançados: RL 2015 (Compm050/CompGi13) por David Silver (o cara por trás do AlphaGo)
- Um livro de introdução de Richard S. Sutton e Andrew G. Barto
- Aprendizagem de reforço profundo: pong de pixels
- Palestra 10: Aprendizagem de reforço - YouTube
- Um documento de pesquisa
- Aprendizagem de reforço profundo: um tutorial - OpenAI
- CS 294: Aprendizagem de reforço profundo, primavera de 2017
Aprendizado profundo
A aprendizagem profunda é um ramo do aprendizado de máquina onde as redes neurais artificiais profundas (DNN) - algoritmos inspirados na maneira como os neurônios funcionam no cérebro - encontram padrões nos dados brutos, combinando várias camadas de neurônios artificiais. À medida que as camadas aumentam, o mesmo acontece com a capacidade da rede neural de aprender conceitos cada vez mais abstratos.
O tipo mais simples de DNN é um perceptron multicamada (MLP).

- O Little Book Of Deep Learning Este livro é uma breve introdução ao Deep Lears for Readers com fundo de STEM, originalmente projetado para ser lido em uma tela de telefone. Ele é distribuído sob uma licença Creative Commons não comercial e foi baixado quase 250.000 vezes no mês seguinte ao seu lançamento público.
- Aprendizagem profunda da pilha completa Aprenda o aprendizado profundo do nível de produção dos principais praticantes
- Deeplearning.ai Um bando de cursos ministrados por Andrew Ng em Coursera; É a sequência do curso de aprendizado de máquina no Coursera.
- Introdução à aprendizagem profunda com Pytorch Um curso pelo Facebook AI sobre Udacity
- Uma introdução amigável à aprendizagem profunda e redes neurais
- Um playground de rede neural Tinker com uma rede neural simples projetada para ajudá -lo a visualizar o processo de aprendizado
- Deep Learning Demystified - YouTube Explique a inspiração do aprendizado profundo de neurônios reais para redes neurais artificiais
- Aprenda tensorflow e aprendizado profundo, sem Ph.D. Este curso de 3 horas (vídeo + slides) oferece aos desenvolvedores uma rápida introdução aos fundamentos de aprendizado profundo, com algum fluxo de tensorro de pechincha.
- Um guia para o aprendizado profundo por yn^2 Um guia de matemática com curadoria para aprendizado profundo
- Curso prático de aprendizado profundo para codificadores em Fast.ai ensinado por Jeremy Howard (o concorrente nº 1 de Kaggle 2 anos e fundador da Inglytic)
- Aprendizagem Deep - Udacity Recomendado para o aluno visual que conhece algum ML, este curso fornece idéias de alto nível de aprendizado profundo, detalhes intuitivos densos em um curto período de tempo, você usará o tensorflow dentro do curso
- Escola de verão Deep Learning, Montreal 2015
- Classe de redes neurais - Lista de reprodução do YouTube
- http://neuralnetworksanddeeplearning.com/index.html Um livro on-line prático para a intuição de matemática de aprendizado profundo, posso dizer que, depois de terminar isso, você poderá explicar o aprendizado profundo em um detalhe.
- A rede neural zoológico Um monte de modelos de rede neural que você deve conhecer (eu conheço metade deles, então não se preocupe, pois você não conhece muitos porque a maioria deles não é popular ou útil no presente)
- Introdução ao Tensorflow para aprendizado profundo ensinado na Udacity
- Primers • Ai Aqui está uma seleção escolhida a dedo de artigos sobre os fundamentos/conceitos da IA que cobrem todo o processo de construção de redes neurais para treiná-las para avaliar os resultados. Há também uma explicação de arquitetura de transformadores muito detalhada.
- Abraçando os modelos de difusão de rosto Curso Aprenda a teoria, treine o modelo do zero e use -o para gerar imagens e áudio.
- Fundamentos de aprendizagem profunda por Lightning.ai com Sebastian Raschka
Redes neurais convolucionais
DNNs que funcionam com dados de grade, como formas de onda sonora, imagens e vídeos melhor do que os DNNs comuns. Eles são baseados nas suposições de que as unidades de entrada próximas estão mais relacionadas do que as unidades distantes. Eles também utilizam invariância de tradução. Por exemplo, dada uma imagem, pode ser útil detectar o mesmo tipo de bordas em todos os lugares da imagem. Às vezes, eles são chamados de ConvNets ou CNNs .
- Como funcionam as redes neurais convolucionais - explicações técnicas do YouTube, incluindo operações de agrupamento, relu, camada totalmente conectada, otimização usando descida de gradiente
- Rede neural que muda tudo - Computerphile
- Guia para iniciantes para entender as redes neurais convolucionais
- Aprendizagem profunda para a visão computacional (Andrej Karparthy, Openai) Este é o meu vídeo mais favorito de rede convolucional. Andrej explica o ConvNet em detalhes, respondendo a todas as perguntas curiosas que se pode ter. Por exemplo, a maioria dos artigos fala apenas sobre convolução na imagem em escala de cinza, mas ele descreve a convolução em imagens com canais de cores também. Ele também fala sobre as preocupações e as suposições que os condenados fazem. Esta é uma ótima palestra!
- Compreender as redes neurais através da visualização profunda explica como visualizar uma convnet usando várias técnicas
Redes neurais recorrentes
DNNs que têm estados. Eles também entendem sequências que variam em comprimento. Eles às vezes são chamados de RNNs .
- http://karpathy.github.io/2015/05/21/rnn-effectivity/
- http://colah.github.io/postss/2015-08-undestanding-lstms/
- http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
Práticas recomendadas
- Regras de aprendizado de máquina: práticas recomendadas para engenharia de ML É um documento de Martin Zinkevich sobre as melhores práticas do Google no aprendizado de máquina.
- Uma receita para treinar redes neurais Andrej's BlogPost sobre como se treinar para ser um engenheiro de aprendizado de máquina paranóica.
- Como depurar redes neurais. Manual.
- Uma visão geral dos algoritmos de otimização de descida de gradiente
- Manual de ajuste de aprendizado profundo Um manual para maximizar sistematicamente o desempenho de modelos de aprendizado profundo.
Ferramentas
Bibliotecas e estruturas que são úteis para aprendizado prático de máquina
Estruturas
Machine Learning Building Blocks
- Biblioteca de aprendizado de máquina em geral Scikit-Learn, abstração de alto nível, voltada para iniciantes
- Tensorflow; Tensorflow incrível; A estrutura de gráfico de computação construída pelo Google, possui um bom quadro de visualização, provavelmente a estrutura mais popular hoje em dia para fazer aprendizado profundo
- Keras: Aprendizagem profunda para os humanos Keras é uma API de aprendizado profundo escrito em Python, executando em cima do Tensorflow. Ainda é rei de abstração de alto nível para aprendizado profundo. ATUALIZAÇÃO: Keras agora está disponível para Tensorflow, Jax e Pytorch!
- Tensores de Pytorch e redes neurais dinâmicas em Python com forte aceleração da GPU. É comumente usado por pesquisadores de ponta, incluindo o Openai.
- Lightning the Deep Learning Framework para treinar, implantar e enviar produtos de produtos AI rapidamente. (Costumava ser chamado de Pytorch Lightning)
- Jax é autograd e XLA, reunidos para pesquisas de aprendizado de máquina de alto desempenho.
- O OneFlow é uma estrutura de aprendizado profunda projetada para ser fácil de usar, escalável e eficiente.
- O Apache MXNET (incubando) para o Apache MXNET de aprendizado profundo é uma estrutura de aprendizado profundo projetado para eficiência e flexibilidade. Ele permite misturar programação simbólica e imperativa para maximizar a eficiência e a produtividade.
- Corrente uma estrutura flexível de redes neurais para aprendizado profundo
- O Vowpal Wabbit é um sistema de aprendizado de máquina que empurra a fronteira do aprendizado de máquina com técnicas como on -line, hash, alteração, reduções, aprendizado de aprendizado2, ativo e aprendizado interativo. Existe um foco específico no aprendizado de reforço com vários algoritmos de Bandit contextuais implementados e os empréstimos da natureza on -line para o problema.
- O H2O é uma plataforma na memória para aprendizado de máquina distribuído e escalável.
- Redes neurais de gráfico spektral com Keras e Tensorflow 2.
- Ivy é um transpiler de ML e uma estrutura, atualmente suporta Jax, Tensorflow, Pytorch e Numpy. Ivy unifica todas as estruturas de ML? permitindo que você não apenas escreva o código que possa ser usado com qualquer uma dessas estruturas como back -end, mas também para converter qualquer função, modelo ou biblioteca escrita em qualquer uma delas em sua estrutura preferida!
Sem codificação
- Ludwig Ludwig é uma caixa de ferramentas que permite aos usuários treinar e testar modelos de aprendizado profundo sem a necessidade de escrever código. Ele é construído sobre o TensorFlow.
Gradiente aumentando
Modelos que são usados fortemente em competições devido ao seu excelente desempenho de generalização.
- https://github.com/dmlc/xgboost Extreme Gradient Boosting
- https://github.com/microsoft/lightgbm alternativa leve em comparação com XGBOOST
- https://github.com/catboost/catboost Um gradiente rápido, escalável e de alto desempenho, aumentando na biblioteca de árvores de decisão, usado para classificação, classificação, regressão e outras tarefas de aprendizado de máquina para Python, R, Java, C ++. Suporta a computação na CPU e GPU.
- https://github.com/tensorflow/decision-forests O Tensorflow Decision Forests (TF-DF) é uma coleção de algoritmos de última geração para o treinamento, a servir e a interpretação dos modelos de decisão da floresta.
- Implementação de Pytorch/TensorFlow do papel TabNet. Leia adicional: Balances Tabnet Explabilidade e desempenho do modelo em dados tabulares, mas pode destrone modelos de árvores impulsionados?
Inferência da série temporal
Os dados de séries temporais requerem um processo exclusivo de extração de recursos para serem utilizáveis na maioria dos modelos de aprendizado de máquina, porque a maioria dos modelos exige que os dados estejam em um formato tabular. Ou você pode usar arquiteturas de modelos especiais que visam séries temporais, por exemplo, LSTM, TCN, etc.
- https://github.com/timeseriesai/tsai Séries temporais Timesseries Deep Learning Pytorch Fastai-Aprendizagem Deep-of-the-Art Deep com séries temporais e sequências em Pytorch/Fastai. LEIA POSTE: TSAI - Aprendizagem de Machine de última geração para séries temporais, parte 1.
- https://github.com/alan-thuring-institute/sktime Uma estrutura unificada para aprendizado de máquina com séries temporais
- https://github.com/sktime/sktime-dl um pacote de extensão para aprendizado profundo com tensorflow/keras para sktime
- https://github.com/tslearn-team/tslearn/ Um kit de ferramentas de aprendizado de máquina dedicado aos dados da Série Time
- https://github.com/blue-yonder/tsfresh Extração automática de recursos relevantes de séries temporais
- https://github.com/johannfaouzi/pyts Um pacote python para classificação de séries temporais
- https://github.com/facebook/prophet Ferramenta para produzir previsões de alta qualidade para dados de séries temporais que possuem várias sazonalidade com crescimento linear ou não linear.
- https://github.com/philipperemy/keras-tcn keras-temporal Rede convolucional
- Rocket: Classificação de séries temporais excepcionalmente rápidas e precisas usando kernels convolucionais aleatórios; Minirocket: uma transformação determinística muito rápida (quase) para classificação de séries temporais; Essas duas técnicas são para extrair recursos de séries temporais. LEIA POSTE: Rocket: Classificação de séries temporais rápidas e precisas
Vida útil
Bibliotecas que ajudam você a desenvolver/depurar/implantar o modelo em produção (MLOPS). Há mais no ML do que treinar o modelo.
- https://huggingface.co/ Assim como o Github, mas para armazenar modelos, conjuntos de dados e aplicativos ML (eles chamam aplicativos como espaços). Eles têm bibliotecas para você usar facilmente seus modelos/conjuntos de dados em seu código. O armazenamento é gratuito e ilimitado para projetos públicos e privados.
- https://wandb.ai/ Construa modelos melhores mais rapidamente com rastreamento de experimentos, versão do conjunto de dados e gerenciamento de modelos
- https://github.com/flyteorg/flyte Flyte facilita a criação de fluxos de trabalho simultâneos, escaláveis e sustentáveis para aprendizado de máquina e processamento de dados.
- https://github.com/allegroai/clearml suíte auto-magical de ferramentas para otimizar seu fluxo de trabalho ML. Gerente de Experimento, ML-OPS e gerenciamento de dados
- https://github.com/quantumblacklabs/kedro Uma estrutura Python para criar código de ciência de dados reproduzível, sustentável e modular.
- https://github.com/determined-ai/determined determinado é uma plataforma de treinamento de aprendizado profundo de código aberto que torna os modelos de construção rápida e fácil. Eu o uso principalmente para ajustar os hiperparâmetros.
- https://github.com/iterative/cml Continuous Machine Learning (CML) é uma biblioteca de código aberto para implementar a integração e entrega contínuas (CI/CD) em projetos de aprendizado de máquina. Use -o para automatizar partes do seu fluxo de trabalho de desenvolvimento, incluindo treinamento e avaliação de modelos, comparando experimentos de ML no histórico do projeto e monitorando os conjuntos de dados em mudança.
- https://github.com/creme-ml/creme Python Library para aprendizado de máquina on-line . Todas as ferramentas da biblioteca podem ser atualizadas com uma única observação por vez e, portanto, podem ser usadas para aprender com os dados de streaming.
- https://github.com/aimhubio/aim Uma maneira super -asy de gravar, pesquisar e comparar 1000s de execuções de treinamento em ML
- https://github.com/netflix/metaflow metaflof é uma biblioteca Python amigável ao ser humano que ajuda cientistas e engenheiros a construir e gerenciar projetos de ciência de dados da vida real. O Metaflow foi originalmente desenvolvido na Netflix.
- O MLFlow MLFlow (atualmente na versão beta) é uma plataforma de código aberto para gerenciar o ciclo de vida do ML, incluindo experimentação, reprodutibilidade e implantação. Atualmente, ele oferece três componentes: rastreamento MLFlow, projetos MLFlow, modelos MLFlow.
- Floydhub um Heroku para aprender profundo (você se concentra no modelo, eles implantarão)
- O Comet.ML Comet permite que cientistas e equipes de dados rastreem, comparem, expliquem e otimizem experimentos e modelos em todo o ciclo de vida do modelo. De treinamento à produção
- https://neptune.ai/ Gerencie todos os seus metadados de construção de modelos em um único lugar
- https://github.com/fastai/nbdev Crie deliciosos projetos Python usando notebooks Jupyter
- https://rapids.ai/ Ciência de dados nas GPUs
- https://github.com/datarvenue-berlin/openmlops
- https://github.com/jacopotagliabue/you-dont-need-a-bigger-boat não é realmente uma ferramenta, mas um guia sobre como compor muitas ferramentas em negócios de escala razoável do mundo real.
- https://www.modular.com/ Uma empresa com objetivo ambicioso de redesenhar a infraestrutura de IA desde o início. Eles introduzem uma nova linguagem chamada Mojo, que é um superconjunto de Python.
GPU Cloud
Lembre -se de que esta é uma lista opinativa. Existem bilhões de provedores de nuvem por aí. Não vou listar todos eles. Só vou listar os que estou familiarizado e acho que são bons.
- https://lightning.ai/ Lightning Studio permite que você abandone seu laptop de ponta para desenvolver modelos de aprendizado de máquina. Basta escrever código na nuvem usando o VSCode e usar suas GPUs para treinamento ou inferência. O Lightning Studio é semelhante aos espaços de código do GitHub, mas com a GPU.
- https://modal.com/ Modal permite executar ou implantar modelos de aprendizado de máquina, trabalhos de computação massivamente paralela, filas de tarefas, aplicativos da Web e muito mais, sem sua própria infraestrutura.
- https://www.runpod.io/ economize mais de 80% nas GPUs. O aluguel da GPU facilitou o Jupyter para Pytorch, Tensorflow ou qualquer outra estrutura de IA. Eu já usei antes. Muito fácil de usar.
- https://replicate.com/ Run e modelos Fine-Tune Open Source. Implante modelos personalizados em escala usando o Cog. Tudo com uma linha de código.
- https://bentoml.com/ bentoml é a plataforma para engenheiros de software construir produtos de IA. Implantar usando o pacote bentoml.
- https://www.baseten.co/ Inferência de modelo rápido e escalável na nuvem usando treliça
- https://lambdalabs.com/ GPU Cloud construído para aprendizado profundo. Acesso instantâneo aos melhores preços das GPUs em nuvem no mercado. Não são necessários compromissos ou negociações. Economize mais de 73% vs AWS, Azure e GCP. Configurado para aprendizado profundo com Pytorch, Tensorflow, Jupyter
- https://www.beam.cloud/ on-demand gpu compute: treinar e implantar aplicativos AI e LLM com segurança em GPUs sem servidor, sem gerenciar a infraestrutura
Armazenamento de dados
- https://github.com/huggingface/datasets/ Um pacote para carregar, pré -processamento e compartilhamento de conjuntos de dados.
- https://github.com/activeloopai/deeplake Data Lake para aprendizado profundo. Crie, gerencie, consulte, versão e visualize conjuntos de dados. Dados de transmissão em tempo real para pytorch/tensorflow.
- https://github.com/determined-ai/yogadl abordagem melhor para o carregamento de dados para aprendizado profundo. Cache de API-Transparent para disco, GCS ou S3.
- https://github.com/google/ml_collections ML Collections é uma biblioteca de coleções Python projetada para casos de uso de ML. Ele contém o ConfigDict, uma estrutura de dados "tipo dicta" com acesso ao ponto a elementos aninhados. É para ser usado como uma maneira principal de expressar configurações de experimentos e modelos.
Disputa de dados
Limpeza de dados e aumento de dados
- https://github.com/cgnorthcutt/cleanlab Erro de rotulagem limpa do conjunto de dados
- https://github.com/aleju/imgaug biblioteca de aumento de imagem, que suporta a conversão de pontos -chave em mapas de calor
- https://github.com/albu/albumentations mais rápida biblioteca de aumento de imagem
- https://github.com/mdbloice/augmentor Easy to-use Aumentação de imagens para tarefas de classificação (não é possível aumentar os pontos-chave)
- https://github.com/facebookresearch/augly Uma biblioteca de aumentos de dados para áudio, imagem, texto e vídeo.
Orquestração de dados
- https://github.com/prefecthq/prefect
- https://github.com/dagster-io/dagster
- https://github.com/ploomber/Ploomber Ploomber é a maneira mais rápida de criar pipelines de dados ⚡️. Use seu editor favorito (Jupyter, Vscode, PyCharm) para desenvolver interativamente e implantar ☁️ sem alterações de código (Kubernetes, fluxo de ar, lote AWS e Slurm).
- https://github.com/orchest/orchest Build Data Pipelines, da maneira mais fácil de usar a interface do usuário fácil de usar
Visualização de dados
- https://github.com/gradio-app/gradio Crie UIs para o seu modelo de aprendizado de máquina em Python em 3 minutos. A interface do usuário é um aplicativo da web que pode ser compartilhado com qualquer pessoa, mesmo pessoas não técnicas. Um dos recursos que eu gosto é o componente exemplos. Isso mostra muito bem que este aplicativo é para o caso de uso do aprendizado de máquina.
- https://github.com/streamlit/streamlit streamlit transforma scripts de dados em aplicativos da web compartilhável em minutos. Tudo em Python. Tudo de graça. Nenhuma experiência no final da frente é necessária.
- https://github.com/oegedijk/explainerdashboard rapidamente construa painéis de IA explicáveis que mostram o funcionamento interno dos chamados modelos de aprendizado de máquina "BlackBox".
- https://github.com/lux-org/lux Ao simplesmente imprimir um dataframe em um notebook Jupyter, Lux recomenda um conjunto de visualizações destacando tendências e padrões interessantes no conjunto de dados.
- https://github.com/slundberg/shap Shap (Shapeley Additive Explicações) é uma abordagem teórica do jogo para explicar a saída de qualquer modelo de aprendizado de máquina.
- https://github.com/comet-ml/kangas kangas é uma ferramenta para explorar, analisar e visualizar dados multimídia em larga escala. Ele fornece uma API Python simples para registrar grandes tabelas de dados, juntamente com uma interface visual intuitiva para executar consultas complexas no seu conjunto de dados.
Ajuste hiperparâmetro
Antes de começar, leia esta postagem para entender a motivação da pesquisa em geral: https://www.determined.ai/blog/stop-doing-iterative-model-development
Abra seus olhos para o desenvolvimento orientado a pesquisas. Isso vai mudar você. O principal benefício é que não haverá contratempos. Somente progresso e melhoria são permitidos. Imagine trabalhar e progredir todos os dias, em vez de regredir para trás porque sua nova solução não funciona. Esse progresso garantido é o que o desenvolvimento orientado a pesquisas fará com você. Aplique -o em tudo em otimização, não apenas no aprendizado de máquina.
My top opinionated preferences are determined, ray tune, and optuna because of parallelization (distributed tuning on many machines), flexibility (can optimize arbitrary objectives and allow dataset parameters to be tuned), library of SOTA tuning algorithms (eg HyperBand, BOHB, TPE, PBT, ASHA, etc), result visualization/analysis tools, and extensive documentations/tutorials.
- https://github.com/determined-ai/determined determinado é uma plataforma de treinamento de aprendizado profundo de código aberto que torna os modelos de construção rápida e fácil. IMO, é melhor para ajustar os hiperparâmetros de modelos de aprendizado profundo, porque treinará muitas épocas em modelos que possuem métricas promissoras e modelos de parada precoce que não. Eles apoiam a AWS e a maioria dos serviços em nuvem como cidadão de primeira classe. Eles também apóiam instâncias preventíveis , o que é novamente barato. Quando você termina o treinamento, todas as instâncias da GPU são automaticamente desligadas. Se você deseja economizar dinheiro em treinamento em larga escala, vá com determinação.
- https://docs.ray.io/en/master/tune/index.html Ray Tune é uma biblioteca Python para execução do experimento e ajuste de hiperparâmetro em qualquer escala. Se você está procurando ajuste distribuído, o Ray Tune é provavelmente a estrutura mais séria do mercado.
- https://github.com/optuna/optuna Uma estrutura de software de otimização de hiperparameter automática (estrutura de estrutura agnóstica, define-by-run)
- https://github.com/pyhopper/pyhopper pyhopper é um otimizador de hiperparâmetro, feito especificamente para problemas de alta dimensão que surgem em pesquisas e empresas de aprendizado de máquina. Esse cara afirmou que é 10x mais rápido que o Optuna. Essa reivindicação é verdadeira? Não podemos saber até tentarmos!
- https://github.com/keras-team/keras-tuner Uma otimização hiperparâmetro fácil de usar e distribuível para Keras; Leia seu artigo aqui
- https://github.com/autonomio/talos hyperparameter otimização para keras, tensorflow (tf.keras) e pytorch
- https://github.com/maxpumperla/hyperas keras + hyperopt: um invólucro muito simples para otimização conveniente de hiperparâmetro
- https://github.com/fmfn/bayesianotimization Uma implementação do Python da otimização global com processos gaussianos.
- https://github.com/hyperopt/hyperopt
- https://github.com/msu-coinlab/pymoo otimização multi-objetiva no Python
- https://github.com/google/vizier Open Source Vizier: Otimização de caixa preta confiável e flexível. OSS Vizier é um serviço baseado em Python para otimização e pesquisa de caixa preta, baseada no Google Vizier, um dos primeiros serviços de ajuste hiperparâmetro projetados para trabalhar em escala.
Automl
Faça com que as máquinas aprendam sem a tediosa tarefa de engenharia de recursos, seleção de modelos e ajuste hiperparâmetro que você precisa fazer. Deixe as máquinas executarem o aprendizado de máquina para você!
Pessoalmente, se eu tiver um conjunto de dados tabulares, tentaria o Flaml e o MLJAR primeiro, especialmente se você quiser fazer algo funcionando rapidamente. Se você deseja experimentar estruturas de aumento de gradiente, como XGBoost, LightGBM, Catboost, etc., mas você não sabe qual funciona melhor, sugiro que você experimente o Automl primeiro, porque internamente tentará as estruturas de reforço de gradiente mencionadas anteriormente.
- Best OpenSource Automl Frameworks em 2021 Um artigo sobre o meio contendo uma lista com curadoria de estruturas de automl OpenSource.
- https://github.com/dabl/dabl Data Analysis Baseline Library; Treine rapidamente um modelo simples para ser usado como uma linha de base de desempenho
- https://www.automl.org/ Encontre a lista com curadoria de bibliotecas e pesquisas de automóveis
- https://github.com/jhfjhfj1/autokeras A partir da redação (24 de agosto de 2018), esta biblioteca é bastante prematura, pois só pode ser classificada.
- https://github.com/automl/auto-sklearn/ não é executado no Windows, você precisa instalar o WSL (subsistema Windows para Linux) para usá-lo
- https://github.com/epistasislab/tpot executa milhares de pipelines de aprendizado de máquina e produzi o código para você
- https://github.com/climbsrocks/auto_ml Leia o que o autor pensa sobre a comparação entre TPOT e Auto-Sklearn
- https://github.com/microsoft/flaml Fast e Lightweight Automl com algoritmos de otimização econômica econômica.
- https://github.com/mljar/mljar-supervise Um pacote automatizado de aprendizado de máquina que funciona com dados tabulares. Eu gosto que ele gera relatório de visualização (no modo Explique) e recursos extras para você, por exemplo, recursos de ouro e recursos K-means.
- https://github.com/awslabs/autoGluon Automl para texto, imagem e dados tabulares. Mas não suporta o Windows (a partir de 11 de outubro de 2021).
- https://github.com/autovisiml/auto_viml auto_viml foi projetado para criar modelos interpretáveis de alto desempenho com o menor número de variáveis necessárias.
Arquiteturas modelo
Arquiteturas que são de última geração em seu campo.
- https://github.com/rwightman/pytorch-image-models modelos de imagem pytorch, scripts, pesos pré-tenhados-resnet, ressexagem, eficienteNET, eficientesNetv2, nfnet, vision transformador, mixnet, mobleNet-v3/v2, regnet, dpn, dpn, mixnet, mixnet, mobleNet-v3/v2, regnet, dpn, dpn, csp, mixnet, mobleNet-v3/v2, regnet, dpn, dpn, mixnet, mixnet, mobilet-v3/v2, regnet, dpn, dpn, csp, mixnet, mobilet-nenet e 3/v2, regnet, dpn, dpn, mixnet, mixnet, mobleNet-v3/v2. Normalmente é chamado de
timm . - https://modelzoo.co/ Model Zoo
- https://github.com/tensorflow/models
- Magenta: música e geração de arte com inteligência de máquina
- https://github.com/phillipi/pix2pix Image To-image Tradução usando redes adversárias condicionais; Porta tensorflow de pix2pix; Assista à apresentação deste trabalho: aprendendo a ver sem um professor
- WAV2LETTER Facebook AI pesquisa automática Reconhecimento de fala Kit
- https://github.com/huggingface/transformers Processamento de linguagem natural de estado do Tensorflow 2.0 e Pytorch
- https://github.com/huggingface/diffusers? Difusores: modelos de difusão de última geração para geração de imagem e áudio em Pytorch
- https://bigscience.huggingface.co/blog/bloom Open Language Model da Bigscience LLM. Artigo
- https://github.com/hpcaitech/colossalai artigo
- https://stability.ai/blog/stable-diffusion-public-release A difusão estável é um modelo que pode gerar imagens de alta qualidade a partir de breves descrições de texto. Aqui está um pequeno tópico do Twitter explicando por que funciona tão bem. E aqui está um fio que contém recursos para saber mais sobre os modelos de difusão.
Engenharia rápida
Modelos de idiomas grandes (LLMs) como o GPT-3 são poderosos, mas precisam ser solicitados a gerar a saída desejada. É aqui que entra a engenharia imediata. Engenharia imediata é o processo de projetar avisos que podem ser usados para gerar a saída desejada.
- https://github.com/hwchase17/langchain É um pacote Python para criar aplicativos com LLMS através da composibilidade.
- https://dust.tt/ Uma ferramenta baseada na Web para projetar e implantar aplicativos de modelos de idiomas grandes.
- https://github.com/jerryjliu/gpt_index GPT Index é um projeto que consiste em um conjunto de estruturas de dados criadas usando LLMS e podem ser percorridas usando o LLMS para responder a perguntas.
- https://github.com/xpitfire/symbolicai/ biblioteca de programação diferenciável composicional: criando aplicativos com LLMs em seu núcleo através de nossa API simbólica aproveita o poder da programação clássica e diferenciável em Python.
Bom blogs e vlogs a seguir
- https://www.pyimagesearch.com/ blog frequentemente atualizado sobre OpenCV e Deep Learning
- http://colah.github.io/ Boas explicações com belas visualizações
- https://karpathy.github.io/ Ele ministrou alguns cursos em redes profundas e costumava trabalhar na Tesla como diretor de IA.
- http://ruder.io Sebastian Ruder's Deep Learning and PNL Blog
- http://www.wildml.com/
- https://machinelearningmastery.com/ contém muito conteúdo e belo site
- Listas de reprodução do YouTube de Sirajology Muitas densas introdução hilária curta ao ML
- Documentos de dois minutos na lista de reprodução de aprendizado profundo
- Destill.pub um meio moderno para apresentar pesquisas em aprendizado de máquina
- monitor de aprendizado profundo deeplearn.org; Notícias sobre documentos de aprendizagem profunda e tweets
- blog Dataevenue sobre Mlops principalmente
- https://www.youtube.com/c/andrejkarpathy Andrej Karparthy criou um novo canal do YouTube depois que ele deixou a equipe do Tesla AutoPilot para ensinar as pessoas a implementar redes neurais no estilo "soletrado".
- https://e2eml.school/blog.html blog de aprendizado de máquina de ponta para end que abrange muitos tópicos em detalhes, por exemplo, como os transformadores funcionam.
- https://jalammar.github.io/ visualizando o aprendizado de máquina um conceito de cada vez. Seu blog contém explicações ilustradas de conceitos de ML, como transformador ou difusão estável.
- Radek Osmulski Blog Ele blogs sobre técnicas e estratégias de DL que você pode aproveitar para aprender mais rapidamente.
Pessoas impactantes
- Geoffrey Hinton, ele foi chamado de padrinho do aprendizado profundo, introduzindo 2 técnicas de revolução (Relu e abandono) com seus alunos. Essas técnicas resolvem o gradiente de desaparecimento e o problema de generalização das redes neurais profundas.
- Yann Lecun, ele inventou a CNNs (redes neurais convolucionais), o tipo de rede que é realmente popular entre os desenvolvedores de visão computacional hoje. Atualmente trabalhando na Meta.
- Yoshua Bengio another serious professor at Deep Learning, you can watch his TEDx talk here (2017)
- Andrew Ng he discovered that GPUs make deep learning faster. He taught 2 famous online courses, Machine Learning and Deep Learning specialization at Coursera. particular type of RNN)
- Jeff Dean, a Google Brain engineer, watch his TEDx Talk
- Ian Goodfellow, he invented GANs (Generative Adversarial Networks), is an OpenAI engineer
- David Silver this is the guy behind AlphaGo and Artari reinforcement learning game agents at DeepMind
- Demis Hassabis CEO of DeepMind, has given a lot of talks about AlphaGo and Reinforcement Learning achievements they have
- Andrej Karparthy he teaches convnet classes, wrote ConvNetJS, and produces a lot of content for DL community, he also writes a blog (see Nice Blogs & Vlogs to Follow section)
- Pedro Domingos he wrote the book The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World , watch his TEDx talk here
- Emad Mostaque he is the founder of stability.ai, a company that releases many open source AI models including Stable Diffusion
- Sam Altman he is the president of OpenAI, a company that releases ChatGPT
Cutting-Edge Research Publishers
Steal the most recent techniques introduced by smart computer scientists (could be you).
- http://www.arxiv-sanity.com/ Arxiv Sanity Preserver
- https://research.facebook.com/ai/
- http://research.google.com/pubs/MachineIntelligence.html
- https://deepmind.com/research/ Research of DeepMind company
- https://www.openai.com/
- https://www.openai.com/requests-for-research/
- State of the art performance on each ML task
- State-of-the-art result for all Machine Learning Problems
- https://stability.ai/ is releasing a lot of open source high-quality models.
- https://twitter.com/ai__pub AI papers and AI research explained, for technical people.
- https://twitter.com/_akhaliq is a Twitter account that tweets the latest research papers in the field of AI.
Practitioner Community
- https://www.kaggle.com
- https://gym.openai.com
- https://universe.openai.com/
- /r/MachineLearning
- https://www.facebook.com/groups/DeepNetGroup/
Thoughtful Insights for Future Research
- Why AI is Harder Than We Think
- The Consciousness Prior by Yoshua Bengio
- What Can't Deep Learning Do? a list of problems that deep learning faces
- Pedro Domingos: "The Master Algorithm" - Talks at Google
- The AI Revolution: The Road to Superintelligence
- https://ai100.stanford.edu/2016-report
- Why does Deep Learning work so well? - The Extraordinary Link Between Deep Neural Networks and the Nature of the Universe
- These are three of the biggest problems facing today's AI
- Four Questions For: Geoff Hinton Geoff Hinton is referred to as "godfather of neural networks"
- What product breakthroughs will recent advances in deep learning enable? - Quora
- Liquid Neural Networks
Uncategorized
- Artificial Intelligence: A Modern Approach (Online Book)
- The Principles of Modern Game AI
- Scipy Lecture Notes
- https://www.youtube.com/user/aicourses
- The Fundamentals of Neuroscience learn how our brain works so that you can discover new deep learning breakthrough
- Bayesian Methods for Hackers An introduction to Bayesian methods + probabilistic programming with a computation/understanding-first, mathematics-second point of view. All in pure Python ;)
Other Big Lists
- https://github.com/ahmedbahaaeldin/From-0-to-Research-Scientist-resources-guide This guide is designated to anybody with basic programming knowledge or a computer science background interested in becoming a Research Scientist with on Deep Learning and NLP.
- https://www.mrdbourke.com/ml-resources/ Machine Learning Courses & Resources recommendation by Daniel Bourke
- List of MLOps Courses and Books by Damien Benveniste on Facebook
- https://github.com/collections/machine-learning
- https://github.com/topics/machine-learning
- https://github.com/topics/mlops
- https://github.com/GokuMohandas/MadeWithML Join 30K+ developers in learning how to responsibly deliver value with ML.
- https://papers.labml.ai/papers/daily
- https://github.com/alirezadir/Production-Level-Deep-Learning
- https://github.com/jindongwang/transferlearning
- https://github.com/kmario23/deep-learning-drizzle
- https://github.com/ZuzooVn/machine-learning-for-software-engineers
- https://github.com/josephmisiti/awesome-machine-learning
- https://github.com/ujjwalkarn/Machine-Learning-Tutorials
- https://github.com/terryum/awesome-deep-learning-papers
- https://github.com/ChristosChristofidis/awesome-deep-learning
- https://github.com/Developer-Y/cs-video-courses#machine-learning
- Deep Learning Resources by Jeremy D. Jackson
- https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap
- https://github.com/aikorea/awesome-rl Awesome Reinforcement Learning
- https://github.com/artix41/awesome-transfer-learning Awesome Transfer Learning
- https://github.com/heejkoo/Awesome-Diffusion-Models Awesome Diffusion Models
- https://github.com/Renumics/awesome-open-data-centric-ai Data-centric AI is the practice of systematically engineering the data used to build AI systems.
- https://github.com/labmlai/annotated_deep_learning_paper_implementations
- https://github.com/ashishpatel26/500-AI-Machine-learning-Deep-learning-Computer-vision-NLP-Projects-with-code
I am confused, too many links, where do I start?
If you are a beginner and want to get started with my suggestions, please read this issue: #4
Isenção de responsabilidade
From now on, this list is going to be compact and opinionated towards my own real-world ML journey and I will put only content that I think are truly beneficial for me and most people. All the materials and tools that are not good enough (in any aspect) will be gradually removed to combat information overload, including:
- too difficult materials without much intuition; impractical content
- too much theory without real-world practice
- low-quality and unstructured materials
- courses that I don't consider to enroll myself
- knowledge or tools that are too niche and not many people can use it in their works eg deepdream or unsupervised domain adaptation (because you can Google it if you want to use it in your work).
- tools that are beaten by other tools; not being state-of-the-art anymore
- commercial tools that look like it can die any time soon
- projects that are outdated or not maintained anymore
NOTE : There is no particular rank for each link. The order in which they appear does not convey any meaning and should not be treated differently.
How to contribute to this list
- Fork this repository, then apply your change.
- Make a pull request and tag me if you want.
- É isso. If your edition is useful, I'll merge it.
Or you can just submit a new issue containing the resource you want me to include if you don't have time to send a pull request.
The resource you want to include should be free to study.