Estamos na semana 01 do curso do Coursera de Machine Learning oferecido pela Universidade de Stanford e ministrado pelo professor Andrew Ng! Como disse no post anterior, estou fazendo o curso e compartilhando com vocês minhas experiências, dicas e materiais extras.

O curso na semana 01 é divido em 05 partes:

  • Welcome
  • Introduction
  • Model and Cost Function
  • Parameter Learning
  • Linear Algebra Review

Durante a semana existem 3 quizzes com 5 perguntas cada um. Todos os vídeos possuem legenda em português brasileiro, o que irá ajudar aqueles que não tem o domínio do inglês.

Com relação ao conhecimento matemático, muito será falado sobre funções, somatória, gráficos e álgebra linear. Se você conseguir calcular uma somatória e entender o plot do gráfico de uma função, vai conseguir acompanhar tranquilamente.  Aqui está um exemplo dos gráficos que são apresentados na primeira semana:

Captura de tela de 2019-10-25 23-14-01

Quando os vídeos de Parameter Learning iniciarem, o Andrew vai explicar o algoritmo de Gradiente Descendente e Regressão Linear com uma variável. Nesses vídeos em especial serão usados alguns conceitos de cálculo, mais especificamente derivadas, mas não se assuste! Você não vai precisar resolver nenhuma derivada, o próprio Andrew explica de forma intuitiva o que você precisa entender sem entrar em detalhes matemáticos complexos, ele mesmo fala que você não vai precisar dominar cálculo para acompanhar o curso. Agora, é claro que se você souber derivar, essa parte do curso vai ser bem bacana! Sabe quando você estava cursando os cálculos intermináveis na faculdade e se perguntava (ou algum amigo/amiga perguntava) onde você usaria tudo isso? Bem, é agora que você vai usar!

Nos últimos vídeos o conteúdo é focado em realizar uma revisão sobre álgebra linear. Também não precisa se assustar. Tudo o que você precisa saber sobre o assunto é explicado de forma didática e com exemplos para você ir acompanhando. Preste atenção nessa parte, pois todas as nomenclaturas explicadas aqui serão usadas em todas as semanas do curso. Mas não precisa se desesperar em decorar tudo, com o tempo você vai se acostumando, afinal serão 11 semanas usando todas elas. Aqui tem um exemplo de um dos exercícios de matrizes que aparecem durante os vídeos para você responder:

Captura de tela de 2019-10-27 13-50-48

Nas Lecture Notes da revisão de álgebra linear você também vai encontrar um pequeno editor de código com alguns exemplos de operações com matrizes escritos em Octave. Você pode executar e ver a saída do código usando o botão Run. Isso já é um spoiler do que está por vir:

Captura de tela de 2019-10-27 14-00-02

Alguns vídeos possuem erros nos slides ou nas anotações feitas pelo Andrew. Então sugiro que você vá na opção Resources do menu principal do curso, lá você irá encontrar Errata Week 1, com as informações corretas e o tempo do vídeo no qual o erro aparece. Eu sempre abro primeiro uma nova aba no navegador com a errata da semana para saber em quais vídeos eu precisarei ficar atenta quanto a isso.

Sempre que o Andrew falar no vídeo que existe muita informação no slide que ele acabou de explicar e sugerir que você pause o vídeo para refletir e ter certeza que você entendeu tudo, faça o que ele pede! Faça melhor ainda, se houver algum slide com cálculos matemáticos, pause o vídeo ao final da explicação para ter certeza que você entendeu tudo. E caso você perceba que não está entendendo, volte o vídeo! Mesmo pra quem estudou esse conteúdo na faculdade, leva um tempo para ir lembrando e compreendendo como funcionam.

Os cursos do Coursera costumam passar por melhorias com o passar do tempo e feedback dos usuários, e uma adição que não existia nas primeiras edições do curso de Machine Learning é que agora são disponibilizadas Lecture Notes que são anotações extras do que não existe nos slides, mas é dito/explicado pelo Andrew durante os vídeos. Claro que isso não quer dizer que você não deva fazer suas próprias anotações, mas ajuda bastante para verificar se você compreendeu todo o conteúdo passado nos vídeos.

Mais uma dica! Use e abuse do fórum de discussão! Um exemplo simples da utilidade dos fóruns: você compreendeu o por quê de na cost function a somatória ser divida por 1/2m? Você encontrará várias pessoas explicando isso se você procurar por “1/2m” na busca do fórum da Week 1!

Resumão de Material Extra!

Segue algumas dicas de material extra que você pode usar para tirar suas dúvidas:

  • No vídeo Unsupervised Learning, o Andrew fala sobre o “cocktail party effect” quando vai exemplificar o uso de algoritmos não supervisionados para realizar o reconhecimento de diferentes sons. Tem uma reportagem da BBC bem curta (dá pra ler rapidinho) falando sobre isso do ponto de vista de pesquisadores neurocientistas, mas é interessante ver como os avanços nas tecnologias de reconhecimento de voz se baseiam nestas pesquisas. Se você quiser ir além da curiosidade e ler mais sobre o assunto, vale a pena ver a página da wikipedia (em inglês).
  • Uma das respostas no fórum sobre o uso de “1/2m” na cost function (a melhor discussão sobre esse assunto na minha opinião).
  • No vídeo Cost Function – Intuition  II, o Andrew fala sobre contour lines, em português,  curvas de nível. Um dos comentários feitos por ele é que algumas pessoas podem ter dificuldade para fazer a leitura deste tipo de gráfico. Você sentiu alguma dificuldade? Então segue dois vídeos do YouTube que podem te ajudar a compreender. Esse primeiro vídeo você pode assistir até o minuto 3:35, fala sobre curvas de nível no contexto de geografia, mas no início é feita uma explicação geral muito boa para ter uma intuição melhor do que o Andrew fala no vídeo sobre cost function. O segundo vídeo também é muito bom e dá um foco matemático sobre curvas de nível (esse sugiro que você assista completo).
  • Nos vídeos sobre Gradient Descent, o Andrew fala que você deve atualizar simultaneamente os valores de theta0 e theta1. No fórum tem várias perguntas sobre isso, mas eu acredito que a melhor discussão e explicações é essa aqui.
  • Ainda falando sobre os vídeos de Gradient Descent, caso você tenha ficado com dúvidas tem um vídeo bem intuitivo no YouTube explicando o passo a passo matemático do algoritmo. E se você quiser se aprofundar mais na implementação, esse é um post bem completo sobre a implementação do algoritmo em Python.

E aí? Como foi sua primeira semana de curso? Ainda não se inscreveu no curso e está com dúvidas? Tem alguma sugestão de material extra? Comenta aqui! Vamos compartilhar nosso conhecimento!

Até mais, e obrigado pelos peixes!