Como e por que a normalização e o dimensionamento de recursos funcionam?

61

Vejo que muitos algoritmos de aprendizado de máquina funcionam melhor com cancelamento médio e equalização de covariância. Por exemplo, as Redes Neurais tendem a convergir mais rapidamente, e o K-Means geralmente oferece melhores agrupamentos com recursos pré-processados. Não vejo a intuição por trás dessas etapas de pré-processamento levar a um desempenho aprimorado. Alguém pode me explicar isso?

erogol
fonte

Respostas:

25

É simplesmente um caso de obter todos os seus dados na mesma escala: se as escalas para diferentes recursos forem muito diferentes, isso poderá afetar a sua capacidade de aprender (dependendo de quais métodos você está usando para fazê-lo) . A garantia de valores padronizados de recursos pesa implicitamente todos os recursos igualmente em sua representação.

Ben Allison
fonte
3
o que você quer dizer com "isso pode ter um efeito indireto na sua capacidade de aprender", talvez você possa expandir isso?
Charlie Parker
14
Esta não é realmente uma boa explicação. Para alcançar um entendimento verdadeiro, você precisa ir pelo menos um nível mais profundo na explicação.
Zelphir Kaltstahl
eu preciso de qualquer referência a minha tese, por favor
x-rw
40

É verdade que o pré-processamento no aprendizado de máquina é uma arte bastante negra. Não está muito escrito em artigos por que várias etapas de pré-processamento são essenciais para fazê-lo funcionar. Também não tenho certeza se isso é entendido em todos os casos. Para tornar as coisas mais complicadas, isso depende muito do método usado e também do domínio do problema.

Alguns métodos, por exemplo, são invariantes na transformação afim. Se você possui uma rede neural e apenas aplica uma transformação afiada aos seus dados, a rede não perde nem ganha nada em teoria. Na prática, no entanto, uma rede neural funciona melhor se as entradas estiverem centralizadas e brancas. Isso significa que sua covariância é diagonal e a média é o vetor zero. Por que isso melhora as coisas? Isso ocorre apenas porque a otimização da rede neural funciona mais graciosamente, já que as funções ocultas de ativação não se saturam tão rapidamente e, portanto, não fornecem gradientes próximos de zero desde o início do aprendizado.

Outros métodos, por exemplo, K-Means, podem fornecer soluções totalmente diferentes, dependendo do pré-processamento. Isso ocorre porque uma transformação afim implica uma mudança no espaço métrico: a distância euclidiana entre duas amostras será diferente após essa transformação.

No final do dia, você deseja entender o que está fazendo com os dados. Por exemplo, o clareamento da visão computacional e a normalização sábia das amostras são algo que o cérebro humano também faz em seu pipeline de visão.

bayerj
fonte
17

Algumas idéias, referências e gráficos sobre por que a normalização de entrada pode ser útil para RNA e k-means:

K-significa :

O agrupamento K-significa é "isotrópico" em todas as direções do espaço e, portanto, tende a produzir agrupamentos mais ou menos redondos (em vez de alongados). Nessa situação, deixar as variações desiguais equivale a colocar mais peso nas variáveis ​​com menor variação.

Exemplo no Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

insira a descrição da imagem aqui

insira a descrição da imagem aqui

(FYI: Como posso detectar se meu conjunto de dados está em cluster ou não em cluster (por exemplo, formando um único cluster )

Armazenamento em cluster distribuído :

A análise comparativa mostra que os resultados do armazenamento em cluster distribuído dependem do tipo de procedimento de normalização.

Rede neural artificial (entradas) :

Se as variáveis ​​de entrada são combinadas linearmente, como em um MLP, raramente é estritamente necessário padronizar as entradas, pelo menos em teoria. O motivo é que qualquer redimensionamento de um vetor de entrada pode ser efetivamente desfeito, alterando os pesos e desvios correspondentes, deixando as mesmas saídas exatas que você tinha antes. No entanto, existem várias razões práticas pelas quais a padronização das entradas pode tornar o treinamento mais rápido e reduzir as chances de ficar preso nos ótimos locais. Além disso, a redução de peso e a estimativa bayesiana podem ser feitas de maneira mais conveniente com entradas padronizadas.

Rede neural artificial (entradas / saídas)

Você deve fazer alguma dessas coisas nos seus dados? A resposta é: depende.

A padronização de variáveis ​​de entrada ou de destino tende a tornar o processo de treinamento melhor, melhorando a condição numérica (consulte ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) do problema de otimização e garantindo que vários padrões valores envolvidos na inicialização e finalização são apropriados. A padronização de metas também pode afetar a função objetivo.

A padronização dos casos deve ser abordada com cautela, pois descarta informações. Se essa informação é irrelevante, a padronização de casos pode ser bastante útil. Se essa informação é importante, a padronização de casos pode ser desastrosa.


Curiosamente, alterar as unidades de medida pode até levar a uma estrutura de agrupamento muito diferente: Kaufman, Leonard e Peter J. Rousseeuw .. "Encontrar grupos em dados: uma introdução à análise de agrupamentos". (2005).

Em algumas aplicações, alterar as unidades de medida pode até levar a uma estrutura de cluster muito diferente. Por exemplo, a idade (em anos) e a altura (em centímetros) de quatro pessoas imaginárias são dadas na Tabela 3 e plotadas na Figura 3. Parece que {A, B) e {C, 0) são dois grupos bem separados . Por outro lado, quando a altura é expressa em pés, obtém-se a Tabela 4 e a Figura 4, onde os aglomerados óbvios são agora {A, C} e {B, D}. Essa partição é completamente diferente da primeira, porque cada sujeito recebeu outro companheiro. (A Figura 4 teria sido achatada ainda mais se a idade tivesse sido medida em dias.)

Para evitar essa dependência na escolha das unidades de medida, é possível padronizar os dados. Isso converte as medidas originais em variáveis ​​sem unidade.

insira a descrição da imagem aqui insira a descrição da imagem aqui

Kaufman et al. continua com algumas considerações interessantes (página 11):

Do ponto de vista filosófico, a padronização não resolve realmente o problema. De fato, a escolha das unidades de medida gera pesos relativos das variáveis. Expressar uma variável em unidades menores levará a um intervalo maior para essa variável, o que terá um grande efeito na estrutura resultante. Por outro lado, ao padronizar, tenta-se dar a todas as variáveis ​​um peso igual, na esperança de alcançar objetividade. Como tal, pode ser usado por um profissional que não possui conhecimento prévio. No entanto, pode muito bem ser que algumas variáveis ​​sejam intrinsecamente mais importantes que outras em uma aplicação específica, e então a atribuição de pesos deve ser baseada no conhecimento do assunto (ver, por exemplo, Abrahamowicz, 1985). Por outro lado, houve tentativas de criar técnicas de agrupamento independentes da escala das variáveis ​​(Friedman e Rubin, 1967). A proposta de Hardy e Rasson (1982) é buscar uma partição que minimize o volume total dos cascos convexos dos clusters. Em princípio, esse método é invariável em relação às transformações lineares dos dados, mas infelizmente não existe algoritmo para sua implementação (exceto por uma aproximação restrita a duas dimensões). Portanto, o dilema da padronização parece inevitável no momento e os programas descritos neste livro deixam a escolha para o usuário. A proposta de Hardy e Rasson (1982) é buscar uma partição que minimize o volume total dos cascos convexos dos clusters. Em princípio, esse método é invariável em relação às transformações lineares dos dados, mas infelizmente não existe algoritmo para sua implementação (exceto por uma aproximação restrita a duas dimensões). Portanto, o dilema da padronização parece inevitável no momento e os programas descritos neste livro deixam a escolha para o usuário. A proposta de Hardy e Rasson (1982) é buscar uma partição que minimize o volume total dos cascos convexos dos clusters. Em princípio, esse método é invariável em relação às transformações lineares dos dados, mas infelizmente não existe algoritmo para sua implementação (exceto por uma aproximação restrita a duas dimensões). Portanto, o dilema da padronização parece inevitável no momento e os programas descritos neste livro deixam a escolha para o usuário.

Franck Dernoncourt
fonte
6

Por que o dimensionamento de recursos funciona? Eu posso te dar um exemplo (do Quora )

30000- 80000. Nesta situação, se você usar um euclidiana simples métrica, o recurso de idade não desempenhará nenhum papel, pois é muito menor do que outros recursos. No entanto, pode conter algumas informações importantes que podem ser úteis para a tarefa. Aqui, você pode normalizar os recursos de forma independente na mesma escala, digamos [0,1], para que eles contribuam igualmente ao calcular a distância.

Vijay PR
fonte
4
Se você está citando uma publicação do Quora, precisa realmente criar um link para a fonte.
Matthew Drury
5

Existem dois problemas separados:

a) aprendendo a função correta, por exemplo, k-means: a escala de entrada especifica basicamente a semelhança; portanto, os clusters encontrados dependem da escala. regularização - por exemplo, regularização de pesos com l2 - você assume que cada peso deve ser "igualmente pequeno" - se seus dados não forem dimensionados "adequadamente", esse não será o caso

b) otimização, nomeadamente por descida gradiente (por exemplo, a maioria das redes neurais). Para descida gradiente, você precisa escolher a taxa de aprendizado ... mas uma boa taxa de aprendizado (pelo menos na 1ª camada oculta) depende da escala de entrada: entradas pequenas [relevantes] normalmente exigem pesos maiores, portanto, você deseja uma aprendizagem maior taxa para esse peso (para chegar mais rápido) e vv para entradas grandes ... como você deseja usar apenas uma única taxa de aprendizado, você redimensiona suas entradas. (e clareamento, ou seja, decorar também é importante pela mesma razão)

seanv507
fonte
1

Este artigo trata apenas de k-means, mas explica e comprova bastante bem o requisito de pré-processamento de dados.

A padronização é a etapa central de pré-processamento na mineração de dados, para padronizar valores de recursos ou atributos de diferentes faixas dinâmicas em uma faixa específica. Neste artigo, analisamos o desempenho dos três métodos de padronização no algoritmo K-means convencional. Ao comparar os resultados em conjuntos de dados de doenças infecciosas, verificou-se que o resultado obtido pelo método de padronização do escore z é mais eficaz e eficiente do que os métodos de padronização min-max e decimal.

.

... se houver alguns recursos, com um tamanho grande ou grande variabilidade, esse tipo de recurso afetará fortemente o resultado do cluster. Nesse caso, a padronização de dados seria uma tarefa importante de pré-processamento para dimensionar ou controlar a variabilidade dos conjuntos de dados.

.

... os recursos precisam ser adimensionais, já que os valores numéricos dos intervalos de recursos dimensionais dependem das unidades de medidas e, portanto, uma seleção das unidades de medidas pode alterar significativamente os resultados do agrupamento. Portanto, não se deve empregar medidas de distância como a distância euclidiana sem a normalização dos conjuntos de dados.

Fonte: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf

leo
fonte
1

O pré-processamento geralmente funciona porque remove recursos dos dados que não estão relacionados ao problema de classificação que você está tentando resolver. Pense, por exemplo, na classificação de dados de som de diferentes alto-falantes. As flutuações no volume (amplitude) podem ser irrelevantes, enquanto o espectro de frequências é o aspecto realmente relevante. Portanto, neste caso, normalizar a amplitude será realmente útil para a maioria dos algoritmos de ML, porque remove um aspecto dos dados que é irrelevante e causaria uma rede neural se superajustando a padrões espúrios.

Nicolas Schuck
fonte
1

Eu acho que isso é feito simplesmente para que o recurso com um valor maior não ofusque os efeitos do recurso com um valor menor ao aprender um classificador. Isso se torna particularmente importante se o recurso com valores menores realmente contribuir para a separabilidade de classe. Os classificadores, como a regressão logística, teriam dificuldade em aprender o limite de decisão, por exemplo, se ele existir no nível micro de um recurso e tivermos outros recursos da ordem de milhões .Também ajuda o algoritmo a convergir melhor. Portanto, não nos arriscamos ao codificá-los em nossos algoritmos. É muito mais fácil para um classificador aprender as contribuições (pesos) dos recursos dessa maneira. Também é verdade para K significa usar normas euclidianas (confusão por causa da escala). Alguns algoritmos também podem funcionar sem normalizar.

Vaibhav Arora
fonte