Fundamentos de IA

O que é Redução de Dimensionalidade?

mm
Adicione Unite.AI às suas fontes preferidas no Google

O que é Redução de Dimensionalidade?

Redução de dimensionalidade é um processo usado para reduzir a dimensionalidade de um conjunto de dados, pegando muitas características e representando-as como menos características. Por exemplo, a redução de dimensionalidade pode ser usada para reduzir um conjunto de dados de vinte características para apenas algumas características. A redução de dimensionalidade é comumente usada em tarefas de aprendizado não supervisionado para criar automaticamente classes a partir de muitas características. Para entender melhor por que e como a redução de dimensionalidade é usada, vamos examinar os problemas associados a dados de alta dimensionalidade e os métodos mais populares de redução de dimensionalidade.

Mais Dimensões Levam a Overfitting

Dimensionalidade se refere ao número de características/colunas dentro de um conjunto de dados.

É frequentemente assumido que, em aprendizado de máquina, mais características são melhores, pois criam um modelo mais preciso. No entanto, mais características não necessariamente se traduzem em um modelo melhor.

As características de um conjunto de dados podem variar amplamente em termos de quão úteis elas são para o modelo, com muitas características sendo de pouca importância. Além disso, quanto mais características o conjunto de dados contém, mais amostras são necessárias para garantir que as diferentes combinações de características sejam bem representadas dentro dos dados. Portanto, o número de amostras aumenta em proporção com o número de características. Mais amostras e mais características significam que o modelo precisa ser mais complexo, e à medida que os modelos se tornam mais complexos, eles se tornam mais sensíveis ao overfitting. O modelo aprende os padrões nos dados de treinamento muito bem e falha em generalizar para dados fora da amostra.

Reduzir a dimensionalidade de um conjunto de dados tem vários benefícios. Como mencionado, modelos mais simples são menos propensos a overfitting, pois o modelo precisa fazer menos suposições sobre como as características estão relacionadas entre si. Além disso, menos dimensões significam menos poder de processamento necessário para treinar os algoritmos. Da mesma forma, menos espaço de armazenamento é necessário para um conjunto de dados que tem menor dimensionalidade. Reduzir a dimensionalidade de um conjunto de dados também pode permitir o uso de algoritmos que não são adequados para conjuntos de dados com muitas características.

Métodos Comuns de Redução de Dimensionalidade

A redução de dimensionalidade pode ser feita por seleção de características ou engenharia de características. A seleção de características é onde o engenheiro identifica as características mais relevantes do conjunto de dados, enquanto engenharia de características é o processo de criar novas características combinando ou transformando outras características.

A seleção e engenharia de características podem ser feitas programaticamente ou manualmente. Quando se selecionam e engenheiam características manualmente, é comum visualizar os dados para descobrir correlações entre características e classes. Realizar a redução de dimensionalidade dessa forma pode ser bastante intensivo em termos de tempo e, portanto, alguns dos métodos mais comuns de redução de dimensionalidade envolvem o uso de algoritmos disponíveis em bibliotecas como Scikit-learn para Python. Esses algoritmos comuns de redução de dimensionalidade incluem: Análise de Componentes Principais (PCA), Decomposição de Valor Singular (SVD) e Análise Discriminante Linear (LDA).

Os algoritmos usados na redução de dimensionalidade para tarefas de aprendizado não supervisionado são tipicamente PCA e SVD, enquanto os algoritmos usados para redução de dimensionalidade de aprendizado supervisionado são tipicamente LDA e PCA. No caso de modelos de aprendizado supervisionado, as novas características geradas são simplesmente alimentadas no classificador de aprendizado de máquina. Observe que os usos descritos aqui são apenas casos de uso gerais e não as únicas condições em que essas técnicas podem ser usadas. Os algoritmos de redução de dimensionalidade descritos acima são simplesmente métodos estatísticos e são usados fora de modelos de aprendizado de máquina.

Análise de Componentes Principais

Foto: Matriz com componentes principais identificados

Análise de Componentes Principais (PCA) é um método estatístico que analisa as características de um conjunto de dados e resume as características que são as mais influentes. As características do conjunto de dados são combinadas em representações que mantêm a maioria das características dos dados, mas são distribuídas em menos dimensões. Você pode pensar nisso como “esmagando” os dados de uma representação de alta dimensão para uma com apenas algumas dimensões.

Como exemplo de uma situação em que a PCA pode ser útil, pense sobre as várias maneiras pelas quais se pode descrever vinho. Embora seja possível descrever vinho usando muitas características específicas, como níveis de CO2, níveis de aeração, etc., essas características específicas podem ser relativamente inúteis ao tentar identificar um tipo específico de vinho. Em vez disso, seria mais prudente identificar o tipo com base em características mais gerais, como sabor, cor e idade. A PCA pode ser usada para combinar características mais específicas e criar características que sejam mais gerais, úteis e menos propensas a causar overfitting.

A PCA é realizada determinando como as características de entrada variam da média em relação umas às outras, determinando se existem relacionamentos entre as características. Para fazer isso, uma matriz de covariância é criada, estabelecendo uma matriz composta pelas covariâncias em relação aos pares possíveis de características do conjunto de dados. Isso é usado para determinar correlações entre as variáveis, com uma covariância negativa indicando uma correlação inversa e uma correlação positiva indicando uma correlação positiva.

Os componentes principais (mais influentes) do conjunto de dados são criados criando combinações lineares das variáveis iniciais, o que é feito com a ajuda de conceitos de álgebra linear chamados valores próprios e vetores próprios. As combinações são criadas de modo que os componentes principais sejam não correlacionados entre si. A maior parte das informações contidas nas variáveis iniciais é comprimida nos primeiros componentes principais, significando que novas características (os componentes principais) foram criadas que contêm as informações do conjunto de dados original em um espaço de menor dimensionalidade.

Decomposição de Valor Singular

Foto: Por Cmglee – Trabalho próprio, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Decomposição de Valor Singular (SVD) é usada para simplificar os valores dentro de uma matriz, reduzindo a matriz para suas partes constituintes e tornando cálculos com essa matriz mais fáceis. A SVD pode ser utilizada para matrizes de valores reais e complexos, mas para os propósitos desta explicação, vamos examinar como decompor uma matriz de valores reais.

Suponha que tenhamos uma matriz composta por dados de valor real e nosso objetivo é reduzir o número de colunas/características dentro da matriz, semelhante ao objetivo da PCA. Como a PCA, a SVD comprime a dimensionalidade da matriz enquanto preserva tanto quanto possível a variabilidade da matriz. Se quisermos operar na matriz A, podemos representar a matriz A como três outras matrizes chamadas U, D e V. A matriz A é composta por elementos x * y originais, enquanto a matriz U é composta por elementos X * X (é uma matriz ortogonal). A matriz V é uma matriz ortogonal diferente contendo elementos y * y. A matriz D contém elementos x * y e é uma matriz diagonal.

Para decompor os valores para a matriz A, precisamos converter os valores singulares originais para os valores diagonais encontrados em uma nova matriz. Ao trabalhar com matrizes ortogonais, suas propriedades não mudam se elas forem multiplicadas por outros números. Portanto, podemos aproximar a matriz A aproveitando essa propriedade. Quando multiplicamos as matrizes ortogonais juntas com uma transposta da Matriz V, o resultado é uma matriz equivalente à nossa matriz A original.

Quando a Matriz A é decomposta em matrizes U, D e V, elas contêm os dados encontrados na Matriz A. No entanto, as colunas mais à esquerda das matrizes conterão a maior parte dos dados. Podemos pegar apenas essas primeiras colunas e ter uma representação da Matriz A que tem muito menos dimensões e a maioria dos dados dentro de A.

Análise Discriminante Linear

 

Esquerda: Matriz antes da LDA, Direita: Eixo após a LDA, agora separável

Análise Discriminante Linear (LDA) é um processo que pega dados de um gráfico multidimensional e reprojeta-os em um gráfico linear. Você pode imaginar isso pensando em um gráfico bidimensional cheio de pontos de dados pertencentes a duas classes diferentes. Suponha que os pontos estejam espalhados de tal forma que nenhuma linha possa ser desenhada para separar as duas classes diferentes. Para lidar com essa situação, os pontos encontrados no gráfico 2D podem ser reduzidos para um gráfico 1D (uma linha). Essa linha terá todos os pontos de dados distribuídos ao longo dela e pode ser dividida em duas seções que representem a melhor separação possível dos dados.

Quando se realiza a LDA, existem dois objetivos principais. O primeiro objetivo é minimizar a variância para as classes, enquanto o segundo objetivo é maximizar a distância entre as médias das duas classes. Esses objetivos são alcançados criando um novo eixo que existirá no gráfico 2D. O novo eixo criado atua para separar as duas classes com base nos objetivos descritos anteriormente. Após a criação do eixo, os pontos encontrados no gráfico 2D são colocados ao longo do eixo.

Existem três etapas necessárias para mover os pontos originais para uma nova posição ao longo do novo eixo. Na primeira etapa, a distância entre as médias das classes individuais (a variância entre classes) é usada para calcular a separabilidade das classes. Na segunda etapa, a variância dentro das diferentes classes é calculada, determinando a distância entre a amostra e a média para a classe em questão. Na terceira etapa, o espaço de menor dimensionalidade que maximiza a variância entre as classes é criado.

A técnica LDA alcança os melhores resultados quando as médias para as classes-alvo estão longe uma da outra. A LDA não pode separar efetivamente as classes com um eixo linear se as médias para as distribuições se sobrepõem.

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tópicos. Daniel espera ajudar os outros a usar o poder da IA para o bem social.