Curso oferecido pela deeplearning.ai no Coursera



Semana 1

Quando estamos modelando um projeto de Machine Learning várias atitudes podem ser tomadas para melhorar a performance. Porém, deve-se escolher corretamente tais medidas de modo que haja um aumento efetivo na performance. Para isto é necessário estruturar uma estratégia para atingir este objetivo.

Ortogonalização

A ortogonalização é uma propriedade onde uma modificação em um componente de um algoritmo não cria ou propaga efeitos colaterais aos outros componentes. De certa forma deseja-se que o sistema possa ser modificado componente a componente separadamente.

No contexto de projetos de Machine Learning desejamos poder controlar independentemente cada processo:

  1. Ter uma boa performance no conjunto de treino
  2. Ter uma boa performance no conjunto de desenvolvimento
  3. Ter uma boa performance no conjunto de teste
  4. Ter uma boa performance em dados reais

Métricas unitárias

Ao desenvolver algum projeto desejamos obter uma boa performance através de várias otimizações. A performance é medida por uma séries de métricas. Porém, estas métricas não necessariamente se relacionam de forma clara, existindo vários trade-offs.

Imagine que estamos avaliando vários modelos a qual tem duas métricas $m_1,m_2$, onde os maiores valores significam maior performance. Uma estratégia é definir uma terceira métrica $m_3$ que relacione as duas métricas $m_1,m_2$ (pode ser a média), desta forma há uma métrica unitária. O maior valor de $m_3$ é também o que traz os melhores valores de $m_1,m_2$.

É muito mais fácil avaliar a performance de vários modelos e escolher o melhor, dada as mudanças que podem ser feitas, com uma métrica unitária.

Semana 2

Distribuições de conjunto de treino e teste

Devemos ter cuidado com as distribuições dos conjuntos de treino e teste. Uma boa prática é dividir todo nosso conjunto de dados em três conjuntos: treino, desenvolvimento e teste.