Estudantes e praticantes de machine learning procurando uma base sólida sobre o assunto provavelmente ouviram falar sobre Learning From Data, um curso real da Caltech ministrado pelo Professor Yaser Abu-Mostafa e transmitido ao vivo, gratuitamente.
Como contribuição para esta maravilhosa iniciativa, reúno aqui minhas impressões sobre alguns aspectos do curso.
Pré-requisitos
Probabilidade básica, matrizes e cálculo. De acordo com o site do curso, isso é tudo que você precisa saber. Eu adicionaria programação a essa lista, no entanto, já que é necessário escrever alguns programas complicados para responder a algumas questões.
Transmissão
A plataforma Ustream foi escolhida para transmitir o curso e, exceto por algumas pequenas falhas, funcionou bem nas vezes que tentei. É assim que eu assistiria as aulas se morasse em algum lugar com um fuso horário mais favorável. (14:30 às 15:30 no Brasil)
Material
Sorte nossa, os vídeos das aulas foram disponibilizados em vários formatos – em versões de baixa e alta qualidade – apenas alguns dias após sua transmissão. A sessão Ustream gravada ficou acessível logo após cada aula. As aulas também foram postadas no YouTube e no aplicativo de curso iTunes U para dispositivos iOS. Isso foi realmente impressionante.
Gostei da qualidade dos slides, que foram disponibilizados em formato PDF. Todas as imagens, gráficos e equações são nítidos e fáceis de ler. Outro ponto positivo: a notação escolhida para explicar cada conceito e algoritmo se relaciona com a notação adotada em artigos populares sobre o mesmo assunto, por exemplo, na Wikipedia. Isso facilita as coisas para aqueles que buscam enriquecer ainda mais seu conhecimento.
Encomendei o livro-texto do curso, mas infelizmente não chegou a tempo para este post. No entanto, de acordo com as poucas avaliações na Amazon e o feedback dado no fórum do curso, ele cumpre bem seu papel.
Como o site do curso afirma, este realmente não é um material simplificado e estou feliz por isso.
Os assuntos que mais gostei: Teoria VC (Função de Crescimento, Dimensão VC), Regularização, Validação, e Support Vector Machines.
Professores
Devo dizer que o professor do curso, Professor Yaser Abu-Mostafa, é um dos professores mais didáticos que já tive, online ou presencial. Ele realmente domina o assunto e sabe o que é relevante e o que é ruído ao explicar algo.
Outra coisa impressionante foi como ele estava disponível no fórum de perguntas e respostas, junto com os Professores Assistentes, respondendo perguntas dos alunos e coletando feedback para manter o curso em alto nível. O Professor Malik Magdon-Ismail também ajudou muito em algumas discussões ao escrever algumas verdadeiras pérolas. Alguns de seus posts poderiam ser transformados em bons artigos muito facilmente.
Exercícios
Gostei de cada um deles. Eles eram completos, desafiadores e divertidos de fazer. Alguns deles me fizeram “gastar” o fim de semana inteiro para responder todas as questões.
Na verdade, eu pararia de usar a palavra tarefa porque o que fizemos no final de cada semana foi na verdade um experimento. Brincamos com cada aspecto envolvido no design e implementação de simples sistemas de machine learning, seja implementando tudo do zero ou usando pacotes de terceiros.
A ambiguidade presente em várias respostas (sendo elas intencionais ou não) me tornou mais cético sobre o que estava saindo dos meus programas. Isso encorajou os alunos a se engajar em discussões esclarecedoras no fórum de perguntas e respostas.
Para ser honesto, não gosto do vBulletin, a plataforma escolhida para o fórum de perguntas e respostas. Acho que ainda mais usuários teriam se juntado às discussões se uma opção mais amigável (e orientada a recompensas) tivesse sido escolhida. (algum clone do Stack Overflow teria sido melhor)
Ainda assim, estou impressionado com a qualidade das discussões iniciadas lá. Obrigado aos colegas muito talentosos e dedicados que me ajudaram a esclarecer minhas dúvidas – e até mudar minha opinião. Devo a vocês! :-)
Minhas Soluções
Escolhi Octave como minha linguagem de programação ao longo do curso, e essa escolha se mostrou a correta. Algumas questões envolviam cálculos pesados baseados em matrizes e problemas de programação quadrática, e é aí que Octave brilha.
Infelizmente, não tenho permissão para postar minhas soluções online por causa do
código de honra, mas me pergunte se você quiser discutir alguma questão em
particular.
Atualização (20 de jan, 2014): Participei da reedição deste curso no edX para poder ganhar um certificado como recompensa pelo meu trabalho duro. Nesta edição, a equipe do curso encorajou os alunos a discutir suas soluções após o prazo de cada semana. Minhas soluções estão disponíveis aqui.