Entendendo Machine Learning: da teoria aos algoritmos [e-book gratuito de 449 páginas]
(cs.huji.ac.il)- "Understanding Machine Learning", de Shai Shalev-Shwartz e Shai Ben-David, é um livro publicado pela Cambridge University Press em 2014
- Aborda a base teórica e os algoritmos de machine learning.
- Com autorização da Cambridge University Press, o PDF do manuscrito foi disponibilizado e pode ser baixado apenas para uso pessoal
- Não é para redistribuição
1 comentários
Opiniões no Hacker News
Se você quer entender machine learning de forma fácil, recomendo The StatQuest Illustrated Guide to Machine Learning, de Josh Starmer: https://www.goodreads.com/book/show/75622146-the-statquest-i...
Até hoje não vi nenhum professor explicar conceitos complexos de forma tão clara e concisa quanto Starmer, e o formato é quase de livro infantil, então é fácil de ler e entender.
Ele também lançou recentemente um livro sobre redes neurais, que é igualmente bom; recomendo muito mesmo para quem já é especialista, porque dá boas ideias de como ensinar e comunicar conceitos complexos de machine learning.
Usei bastante como material de apoio quando estudava estatística na universidade.
Mas é difícil recomendá-lo como forma de aprender machine learning além do nível superficial, e ele também passa uma sensação um pouco datada.
Ainda não li, mas talvez o livro sobre redes neurais cubra essa lacuna.
Também fico curioso se é razoável achar que alguém com background de engenheiro de software web/desenvolvimento, estudando a fundo os livros recomendados aqui, conseguiria entrar em uma função de machine learning/AI.
Meu trabalho envolve usar machine learning em análises econométricas, e a maioria dos economistas não entende machine learning de forma intuitiva.
Se você quer entender os fundamentos de machine learning, Probability for computer scientists, de Stanford, foi um excelente recurso: https://www.youtube.com/watch?v=2MuDZIAzBMY&list=PLoROMvodv4...
A forma como ele aborda a teoria das probabilidades e a base teórica de machine learning foi melhor do que qualquer curso que eu já tenha visto, embora seja basicamente mais um curso de probabilidade que cobre fundamentos de machine learning.
O curso do Andrew Ng também é lendário, mas exige alguma familiaridade matemática com álgebra linear.
Também é possível baixar o PDF das notas do curso CS109: https://chrispiech.github.io/probabilityForComputerScientist...
Se você quer uma compreensão teórica dos temas de machine learning, o Learning From Data, da Caltech, também foi bom: https://work.caltech.edu/telecourse
Também há um livro desse curso da Caltech: https://www.amazon.com/Learning-Data-Yaser-S-Abu-Mostafa/dp/...
Para entender como construir redes neurais do zero, Neural Networks: Zero to Hero é bom: https://www.youtube.com/watch?v=VMj-3S1tku0&list=PLAqhIrjkxb...
https://bloomberg.github.io/foml/#home é o curso de que eu mais gosto, pessoalmente.
Se o objetivo é aprender IA generativa moderna, recomendo em vez disso https://udlbook.github.io/udlbook/
Li partes dele alguns anos atrás e, pelo que lembro, era extremamente teórico e tinha muita teoria estatística do aprendizado; pessoalmente acho que a parte que tratava da minimização estrutural do risco de Vapnik estava errada
Ele é fortemente enviesado para a teoria e praticamente não tem aplicações; como é um livro de 2014, no campo de IA isso é uma eternidade, então é bem provável que o conteúdo aplicado também esteja completamente datado hoje
Não imagino que muita gente queira ler este livro hoje
Até onde sei, teorias matemáticas como a teoria estatística do aprendizado não ajudaram muito na invenção dos transformers, nem foram úteis para explicar por que redes neurais não sofrem overfitting mesmo com dimensão VC grande
O título “da teoria ao aprendizado de máquina” mostra bem o problema dessa abordagem que coloca a teoria em primeiro lugar
Pessoas interessadas em matemática, mas não em engenharia de software, entraram em machine learning e criaram teorias abstratas de aprendizado, como a teoria estatística do aprendizado, mas isso ficava distante do que realmente era possível fazer
Já os engenheiros ignoraram essas teorias, puseram a mão na massa nas implementações reais de redes neurais e tentaram melhorar o desempenho; disso saíram coisas como redes neurais convolucionais e, mais tarde, transformers
Lembro que Vapnik, no prefácio de seu livro, reclamava quase como se fosse extremismo dessa tendência de ignorar belas teorias matemáticas e focar apenas na prática
Mas agora ficou claro que essas teorias eram fracas demais para explicar a complexidade das abordagens que realmente funcionam bem, e vejo isso como evidência de que machine learning é um ramo da engenharia, não da matemática nem da ciência da computação teórica
O título deste livro carrega a esperança equivocada de que as pessoas primeiro aprenderiam uma teoria abstrata do aprendizado e, inspiradas por ela, logo criariam novos algoritmos
A teoria estatística do aprendizado mal consegue modelar aprendizado supervisionado, sem falar em aprendizado por reforço ou aprendizado autossupervisionado
Ela nem explica por que redes neurais são resistentes a overfitting, e teorias fantasiosas como teoria computacional/algorítmica do aprendizado, indução de Solomonoff e complexidade de Kolmogorov estão ainda mais distantes da realidade
Entendo que certos aspectos são surpreendentes e que, quando o tamanho e a diversidade do dataset são adequados, as leis de escala muitas vezes se mantêm
Mas, pela minha experiência treinando do zero em datasets reais, em vez de fazer fine-tuning de modelos pré-treinados, redes neurais certamente podem sofrer overfitting se não houver dados suficientes
Minha intuição é que as teorias existentes não foram provadas como verdadeiras sob certas condições, por exemplo com determinadas características de dataset, mas hoje parece que se assume implicitamente que os datasets são gigantescos e essas ressalvas acabam sendo omitidas
Para problemas de nicho em empresas que não são FAANG, ou na realidade de datasets públicos que não podem ser usados comercialmente, isso ainda é um problema real
Nem todo problema é resolvido por modelos de base ou modelos de fronteira
Eu gostaria que indicassem artigos relacionados; ainda estou aprendendo
É parecido com física: para entender algo como mecânica quântica, é preciso teoria matemática. Caso contrário, pode não fazer sentido
Fico me perguntando se, para um engenheiro de software que não faz pesquisa, há utilidade prática em entender profundamente os conceitos de machine learning
Não tenho planos de seguir para pesquisa, então estou tentando medir onde concentrar meus estudos para a carreira
Em linhas gerais, parece haver demanda nas empresas por implementação de AI/ML, mas, exceto por parte da depuração, será que vale a pena desenvolver modelos do zero?
Também me pergunto se, em negócios comuns, ajustar um pouco modelos prontos para casos de uso específicos provavelmente não basta na maioria das vezes
Este livro é minha introdução favorita à teoria de machine learning, especialmente à teoria estatística do aprendizado, e é muito mais acessível que outros livros
É um livro de 2014; ele ainda é realmente relevante?
O livro tem 10 anos; não está obsoleto?
Quanto ao dilema viés/variância, a atualização também não é grande quando se olha o artigo original de Geman de 1992: https://www.dam.brown.edu/people/documents/bias-variance.pdf
Na época, eles lidavam com datasets pequenos ou infinitos, e a dupla descida só funciona direito quando os padrões do conjunto de teste são suficientemente parecidos com os do conjunto de treinamento
É preciso ter cuidado com algumas visões antigas, mas os conceitos fundamentais são os mesmos
Mesmo em fine-tuning ou aprendizado por reforço, o problema de datasets pequenos/infinitos em que a classe conceitual dos dados de treinamento pode ser nova ainda é coberto pelo artigo de 1992, e assumir que isso é universalmente inválido acaba atrapalhando
A maioria dos conceitos de base veio de meados do século XX
A disponibilidade de grandes volumes de dados e as novas descobertas mudaram muito mais as premissas e ferramentas do que invalidaram os trabalhos anteriores
Ao passar os olhos por aquele artigo, dá para ver que eles simplesmente descartavam como irrealistas, na época, os grandes volumes de dados e computação que temos hoje
É bom encontrar um livro que funcione bem para você, aprender os conceitos e acumular conhecimento tácito
Muitas tentativas estão buscando integrar também métodos simbólicos e outros métodos
Acumular amplitude e profundidade ao mesmo tempo ajuda a economizar tempo e encontrar oportunidades, e considero que conhecimento de base é decisivo para isso
Fundamentos de machine learning como treino/validação e variância/viés continuam os mesmos, e algoritmos clássicos ainda têm seu lugar
Avanços mais recentes que talvez estejam ausentes seriam algo como florestas no estilo XGBoost
Com esses três livros, você literalmente não precisa de mais nada, do extremamente básico a tópicos avançados
Se você só tem curiosidade sobre machine learning, é muito improvável que a informação esteja errada
Mas, diferentemente de um livro de química de 11 anos atrás, por exemplo, ele não se conecta tão bem aos problemas mais interessantes com que os engenheiros estão lidando hoje
Então, para se preparar para entrevistas ou entrar na indústria, acho que não será o mais útil
Porque ele se concentrava principalmente em teorias matemáticas abstratas de valor duvidoso, não em deep learning de ponta
Há outros livros recomendados?
Um livro introdutório gratuito e acessível, escrito por pesquisadores renomados, que cobre uma ampla gama de conteúdos clássicos e também tem muitas seções “Lab” com código
Há também um capítulo sobre deep learning, mas ele não aborda os avanços recentes, então essa parte exige outros materiais
As explicações são sólidas e ele também passa menos a sensação de ser antigo do que o AIMA