Este post vai cobrir alguns conceitos muito básicos na aprendizagem de máquinas, desde álgebra linear até métricas de avaliação. Serve como um bom guia para iniciantes que procuram entrar no campo.

Álgebra da linhera

Álgebra linear é o pilar central no campo da aprendizagem de máquinas. Porquê? Os algoritmos de aprendizagem de máquinas são descritos em livros, artigos e no website usando notação vectorial e matricial. A álgebra linear é a matemática dos dados e sua notação permite descrever operações sobre dados com precisão com operadores específicos. Os 2 conceitos mais importantes em álgebra linear que você deve estar familiarizado são vetores e matrizes.

1 – Vetores

Um vetor é um tuple de um ou mais valores conhecidos como escalares. É comum introduzir vetores usando definição geométrica, na qual um vetor representa um ponto ou coordenada em um espaço de alta dimensão. As principais operações aritméticas vetoriais são adição, subtração, multiplicação, divisão, produto de pontos e multiplicação escalar.

  • Dois vetores de igual comprimento podem ser adicionados juntos para criar um novo terceiro vetor.
  • Um vetor pode ser subtraído de outro vetor de igual comprimento para criar um novo terceiro vetor.
  • Dois vectores de igual comprimento podem ser multiplicados juntos.
  • Dois vectores de igual comprimento podem ser divididos.
  • O produto ponto é a soma dos elementos multiplicados de dois vectores do mesmo comprimento para dar um escalar.
  • Um vector pode ser multiplicado por um escalar para escalar a magnitude do vector.

Existem muitos usos de vectores. Por exemplo, os vetores podem representar um offset no espaço 2D ou 3D. Os pontos são apenas vectores da origem. Dados (pixels, gradientes num ponto chave da imagem, etc) também podem ser tratados como um vector.

2 – Matrizes

Uma matriz é uma matriz bidimensional de escalares com uma ou mais colunas e uma ou mais filas. Se a matriz tem o mesmo número de linhas e colunas, então ela é uma matriz quadrada. A matriz de identidade é uma matriz quadrada com 1’s na diagonal e 0’s em todos os outros lugares. Matriz diagonal é uma matriz quadrada com números na diagonal e 0’s em qualquer outro lugar. Um vetor de coluna é apenas uma matriz na qual há uma linha, enquanto um vetor de linha é apenas uma matriz na qual há uma coluna.

As operações básicas da matriz são adição, escalonamento, produto de ponto, multiplicação vetorial, multiplicação escalar, transpor, inverter, e determinante / traço.

  • Duas matrizes com as mesmas dimensões podem ser adicionadas juntas para criar uma terceira matriz.
  • Simplesmente, uma matriz pode ser subtraída de outra matriz com as mesmas dimensões.
  • Duas matrizes com o mesmo tamanho podem ser multiplicadas juntas, e isto é frequentemente chamado de multiplicação de matrizes no sentido dos elementos.
  • Uma matriz pode ser dividida por outra matriz com as mesmas dimensões.
  • Matrix dot product tem as entradas de 2 vetores multiplicados vezes um ao outro e somando o resultado.
  • Uma matriz e um vetor podem ser multiplicados juntos desde que a regra de multiplicação de matrizes seja observada.
  • Uma matriz pode ser multiplicada por uma escalar. O resultado é uma matriz com o mesmo tamanho da matriz pai onde cada elemento da matriz é multiplicado pelo valor escalar.
  • A matriz transposta é quando viramos as colunas e linhas de uma matriz, então a linha 1 é agora coluna 1, e assim por diante.
  • Dada uma matriz A, seu inverso A^(-1) é uma matriz tal que A x A^(-1) = I. Se A^(-1) existe, então A é invertível ou não-singular. Caso contrário, é singular.

Aprendizagem da máquina

1 -Aprendizagem principal

As 3 principais abordagens à aprendizagem da máquina são:

  • Aprendizagem sem supervisão, que é muito usada na visão por computador. Exemplos são k-means, ICA, PCA, Gaussian Mixture Models, e auto-encoders profundos.
  • Supervised Learning, que também é muito usado em visão computacional. Exemplos são redes neurais profundas supervisionadas.
  • Reinforcement Learning, que é usado principalmente para robótica e problemas de controle. Exemplos são métodos de Q-learning profundo e gradiente de políticas.

In Reinforcement Learning, as regras do jogo são desconhecidas. Não há supervisor, apenas um sinal de recompensa com feedback retardado. As ações do agente afetam os dados subsequentes que ele recebe.

In Unsupervised Learning, queremos encontrar estrutura e significado nos dados sem nenhuma etiqueta. Como mencionado acima, exemplos de algoritmos são Análise de Componentes Principais, k significa, Factorização de Matriz Não-Negativa, Análise de Componentes Independentes, Modelos de Mistura Gaussiana, Alocação de Dirichlet Latente, e Auto-Encodificadores.

Na aprendizagem supervisionada, a terminologia básica é tal que temos um espaço inicial de entrada x e um espaço inicial de saída y. Depois de ver um monte de exemplos (x, y), queremos escolher um mapeamento F: x -> y que replica com precisão o padrão input-output dos exemplos. Existem muitos algoritmos para encontrar diferentes modelos de F a partir de observações rotuladas (ground truth). Muitas vezes o aprendizado é categorizado de acordo com o seu espaço de saída, que pode ser discreto ou contínuo.

  • O espaço de saída contínuo é usado no problema de regressão. Por exemplo, dada a entrada como uma imagem de um prato de comida, queremos a saída como o número de calorias totais. Ou dada a entrada como a cara de uma pessoa, queremos a saída como a idade dessa pessoa.
  • Com espaço de saída discreto, estamos tipicamente a construir classificadores. Por exemplo, queremos que o output seja classe 1, classe 2, classe 3…, onde os números representam algum tipo de categoria significativa. Também podemos chamar estas etiquetas ou categorias.

2 – Dados de Treinamento e Dados de Teste

Dados de Treinamento é o que damos ao classificador durante o processo de treinamento. Estes são os dados emparelhados para aprendizagem f(x) = y, onde x é a entrada (um vector de características em R^d) e y é a saída (uma etiqueta com classificação). Durante o treinamento, tentamos encontrar um bom modelo de f(x) que replica a relação input-output dos dados.

Os dados de teste são usados com um classificador treinado para avaliá-los. Nós temos x, mas não sabemos y. Normalmente, nós só fingimos não ter y na pesquisa, mas no mundo real, você realmente não o terá. O sistema treinado prevê y para nós, e nós avaliamos como o sistema funciona.

3 – Probabilidades

Em vez de apenas categorizar um input em uma das diferentes classes de K, podemos querer saber a probabilidade de cada uma dessas classes. Para cada categoria possível, P(C = k | x) retorna um valor entre 0 e 1, com valores mais próximos de 1, significando que o classificador “pensa” que a classe é provavelmente a categoria do input. Para classificar, queremos escolher o maior P(C = k | x).

4 – Paramétrico e Não Paramétrico

Modelos paramétricos envolvem parâmetros de ajuste. Por exemplo, nós queremos encontrar bons valores para os vetores w para o nosso classificador linear. Os modelos paramétricos têm um número finito de parâmetros, no qual o número de parâmetros é independente do conjunto de treinamento.

Modelos não paramétricos envolvem o armazenamento dos dados e a utilização dos mesmos de alguma forma. Aqui, o número de parâmetros depende do conjunto de treinamento (quantos dados você armazena). Mais especificamente, o número de parâmetros cresce com o tamanho do conjunto de treinamento.

Evaluating Machine Learning Classifiers

Após ver um monte de exemplos (x, y), o modelo escolhe um mapeamento F: x -> y que replica o padrão input-output dos exemplos. A questão é até que ponto o modelo F funciona bem após o treinamento? Podemos avaliar F nos dados de treinamento, mas o desempenho nos dados de treinamento não nos diz realmente o quão bem o modelo se generaliza para outros dados. Em outras palavras, F poderia apenas memorizar os dados de treinamento. Assim, devemos avaliar nos dados de teste para ter uma melhor idéia de como o modelo funciona.

A medida de avaliação mais simples para classificação é a precisão, que é a fração de pontos corretamente classificada. A precisão pode ser calculada para ser a soma dos verdadeiros positivos e dos verdadeiros negativos, dividida por todos os pontos de dados. A taxa de erro é simplesmente 1 – Precisão, ou a soma dos falsos positivos e falsos negativos, dividida por todos os pontos de dados.

Para implementar a precisão, a melhor maneira é armazenar suas previsões para cada vetor de teste x_t. Então, se você tem um total de vetores T para testar, você acaba com um vetor T-dimensional com todas as suas predições e depois basta compará-lo com a verdade terrestre. Você também poderia salvar as probabilidades de calcular outras métricas, mas isto pode requerer muita memória se você tiver muitas classes.

1 – Matriz de Confusão

Uma matriz de confusão é um layout de tabela específico que permite a visualização do desempenho de um algoritmo, tipicamente um de aprendizagem supervisionada. Cada linha da matriz representa as instâncias em uma classe prevista enquanto cada coluna representa as instâncias em uma classe real. Ele permite que você veja quais classes estão mais confusas. Uma diagonal “forte” indica um bom desempenho. Em uma matriz de confusão normalizada, as linhas são normalizadas para somar a 1,

2 – Precisão e Recall

Precisão é o número de exemplos positivos corretamente classificados dividido pelo número total de exemplos que são classificados como positivos. Recall é o número de exemplos positivos corretamente classificados dividido pelo número total de exemplos positivos reais no conjunto de testes. O Precision-Recall é uma métrica dominante na detecção de objetos e é especialmente útil quando as categorias são desequilibradas. Alta precisão significa que um algoritmo retornou resultados substancialmente mais relevantes do que irrelevantes, enquanto que alta recordação significa que um algoritmo retornou a maioria dos resultados relevantes.

3 – Limiares de Classificador

A maior parte das vezes um classificador terá algum valor de confiança em cada categoria. Estes são mais frequentemente gerados por classificadores probabilísticos. Às vezes, nós limitamos os valores de probabilidade. Na visão por computador, isto acontece muito na detecção. O limite ótimo varia dependendo das tarefas. Algumas métricas de desempenho são sensíveis ao limiar. Alterando o valor do limiar do mínimo para o máximo (de 0 para 1), podemos traçar uma curva (ROC e Curvas de Precisão-Rechamada).

Model Power

1 – Overfitting & Underfitting

Seu classificador F é dito para sobreajustar os dados se o desempenho do treinamento for muito maior do que o desempenho do teste. Por outro lado, F subajusta os dados quando não é suficientemente potente para modelar a relação input-output.

2 – Capacidade do modelo

A capacidade do modelo refere-se ao número de parâmetros. Uma maior capacidade geralmente significa que você precisa de mais dados de treinamento para treinar o modelo, caso contrário, ele tem um alto risco de sobreajuste. Por outro lado, a baixa capacidade provavelmente significa que os dados de treinamento são subajustados significativamente.

Especificamente, com as redes neurais, mais neurônios significam mais capacidade. Uma boa analogia é que o classificador linear tem uma capacidade muito baixa e a rede neural profunda tem muita capacidade. Com mais dados de treinamento, o modelo mais complexo ganha. Classificadores com um modelo maior podem criar limites de decisão complexos, mas complexos demais podem ser um modelo pobre para os dados de teste, especialmente se os dados forem limitados.

3 – Complexidade da amostra

Complexidade da amostra é o número de amostras de treinamento que precisamos fornecer ao algoritmo de aprendizado para que a função retornada pelo algoritmo esteja dentro de um erro arbitrariamente pequeno da melhor função possível (treinamento e teste). Algoritmos com maior capacidade de modelo tendem a ter pior complexidade de amostra porque têm mais parâmetros para caber e são susceptíveis de se sobrepor com dados de treinamento insuficientes. Nesses casos, técnicas de regularização podem ajudar.

Se você estiver interessado neste material, siga a publicação Cracking Data Science Interview para receber meus artigos subseqüentes sobre como craquear o processo de entrevista de dados científicos.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *