É necessário escalar o valor alvo, além dos recursos de escala para análise de regressão?

52

Estou construindo modelos de regressão. Como uma etapa de pré-processamento, dimensiono meus valores de recurso para ter média 0 e desvio padrão 1. É necessário normalizar também os valores-alvo?

user2806363
fonte

Respostas:

50

Vamos primeiro analisar por que o dimensionamento de recursos é realizado. O dimensionamento de recursos melhora a convergência dos algoritmos de descida mais íngreme, que não possuem a propriedade de invariância de escala.

Nos exemplos de treinamento em descida de gradiente estocástico, informe as atualizações de peso de maneira iterativa,

wt+1=wtγw(fw(x),y)

Onde são os pesos, é um tamanho escalonado, é o peso gradiente, é uma função de perda, é a função parametrizada por , é um exemplo de treinamento e é a resposta / rótulo.wγwfwwxy

Compare as seguintes funções convexas, representando escala adequada e escala inadequada.

Escala de recursos

Uma atualização passo a passo de tamanho produzirá uma redução muito melhor no erro no caso adequadamente dimensionado do que no caso incorretamente dimensionado. Abaixo, é mostrada a direção de de comprimento .γw(fw(x),y)γ

Atualização de gradiente

A normalização da saída não afetará a forma de , portanto, geralmente não é necessário.f

A única situação que eu posso imaginar dimensionar as saídas tem um impacto, é se sua variável de resposta for muito grande e / ou você estiver usando variáveis ​​f32 (o que é comum na álgebra linear da GPU). Nesse caso, é possível obter um estouro de ponto flutuante de um elemento dos pesos. O sintoma é um valor Inf ou será envolvido na outra representação extrema.

Jessica Mick
fonte
Mas se não dimensionarmos as entradas e aplicarmos a Descida de gradiente, para resolver teta em algo como y = theta0 + theta1 * x1 + theta2 * x2, se estamos atualizando os valores de X1 e X2 (escalando-os), mantendo Y (saída esperada) da mesma forma, as previsões resultantes para theta1, theta2 não estarão erradas quando as aplicarmos à equação original?
Prashant
14

Geralmente, não é necessário. A entrada de escala ajuda a evitar a situação, quando um ou vários recursos dominam outros em magnitude, como resultado, o modelo dificilmente capta a contribuição das variáveis ​​de menor escala, mesmo que sejam fortes. Mas se você dimensionar o alvo, seu erro quadrado médio será automaticamente dimensionado. MSE> 1 significa automaticamente que você está fazendo pior do que uma previsão constante (ingênua).

inzl
fonte
7

Não, nunca são necessárias transformações lineares da resposta. No entanto, eles podem ser úteis para ajudar na interpretação do seu modelo. Por exemplo, se sua resposta é dada em metros, mas geralmente é muito pequena, pode ser útil fazer uma nova escala para milímetros. Observe também que centralizar e / ou dimensionar as entradas pode ser útil pelo mesmo motivo. Por exemplo, você pode interpretar aproximadamente um coeficiente como o efeito na resposta por unidade de mudança no preditor quando todos os outros preditores estiverem definidos como 0 . Mas 0 geralmente não será um valor válido ou interessante para essas variáveis. Centralizar as entradas permite que você interprete o coeficiente como o efeito por unidade de mudança quando os outros preditores assumem seus valores médios.

Outras transformações (isto é, log ou raiz quadrada) podem ser úteis se a resposta não for linear nos preditores na escala original. Se for esse o caso, você pode ler sobre modelos lineares generalizados para ver se eles são adequados para você.

AlexK
fonte
1

Ele não afeta gradiente descendente em um mau caminho. verifique a fórmula para a descida do gradiente:

xn+1=xnγΔF(xn)

digamos que é um recurso 1000 vezes maior quex2x1

para , temos . A maneira ideal de atingir (0,0), que é o ideal global, é mover-se pela diagonal, mas se um dos recursos dominar o outro em termos de escala que não acontecerá.F(x)=x2ΔF(x)=2x

Para ilustrar: Se você realizar a transformação , assuma uma taxa de aprendizado uniforme para ambas as coordenadas e calcule o gradiente eA forma funcional é a mesma, mas a taxa de aprendizado para a segunda coordenada deve ser ajustada para 1/1000 daquela para a primeira coordenada corresponder a ela. Caso contrário, a coordenada dois dominará e o vetor apontará mais para essa direção.z=(x1,1000x1)γ

zn+1=znγΔF(z1,z2).
Δ

Como resultado, inclina o delta para apontar apenas nessa direção e torna a convergência mais lenta.

drSPacy_
fonte
0

Sim , você precisa dimensionar a variável de destino. Vou citar esta referência :

Uma variável de destino com uma grande variedade de valores, por sua vez, pode resultar em grandes valores de gradiente de erro, fazendo com que os valores de peso mudem drasticamente, tornando o processo de aprendizado instável.

Na referência, há também uma demonstração do código em que os pesos do modelo explodiram durante o treinamento, devido aos erros muito grandes e, por sua vez, os gradientes de erro calculados para atualizações de peso também explodiram. Em resumo, se você não dimensionar os dados e tiver valores muito grandes, use valores de taxa de aprendizado muito pequenos. Isso foi mencionado pelo @drSpacy também.

Fernando Wittmann
fonte