O que faz com que uma superfície de erro seja convexa? É determinado pela matriz de Covarinace ou pelo Hessian?

17

Atualmente, estou aprendendo sobre estimativas de mínimos quadrados (e outras) para regressão e, pelo que também estou lendo em algumas literaturas de algoritmos adaptativos, muitas vezes a frase "... e como a superfície de erro é convexa ..." aparece e qualquer profundidade sobre por que é convexo, para começar, não é onde encontrar.

... Então, o que exatamente a torna convexa ?

Acho essa omissão repetida um pouco irritante porque quero ser capaz de projetar meus próprios algoritmos adaptativos, com minhas próprias funções de custo, mas se não puder dizer se minha função de custo gera ou não uma superfície de erro convexa, não poderei vá longe demais ao aplicar algo como descida de gradiente, porque não haverá um mínimo global. Talvez eu queira ser criativo - talvez não queira usar mínimos quadrados como critério de erro, por exemplo.

Ao me aprofundar mais (e minhas perguntas começam aqui), descobri que, para poder saber se você tem uma superfície de erro convexa, você deve certificar-se de que sua matriz Hessiana é semidefinida positiva. Para matrizes simétricas, este teste é simples - basta garantir que todos os autovalores da matriz Hessiana sejam não negativos. (Se a sua matriz não é simétrica, você pode fazê-la simétrica adicionando-a à sua própria transposição e realizando o mesmo teste de autovalor, em virtude do Gramian , mas isso não é importante aqui).

O que é uma matriz hessiana? A matriz Hessiana codifica toda a combinação possível das parciais da sua função de custo. Quantas parciais existem? Até o número de recursos no seu vetor de recursos. Como calcular as parciais? Pegue as derivadas parciais 'à mão' da função de custo original.

Então foi exatamente isso que fiz: presumo que temos uma matriz de dados m x n , denotada pela matriz X , em que m indica o número de exemplos e n indica o número de recursos por exemplo. (que também será o número de parciais). Suponho que podemos dizer que temos m amostras de tempo e n amostras espaciais de sensores, mas a aplicação física não é muito importante aqui.

Além disso, também temos um vetor de tamanho m x 1 . (Este é o seu vetor 'label' ou a sua 'resposta' correspondente a cada linha de X ). Por simplicidade, assumi m = n = 2 para este exemplo em particular. Então 2 'exemplos' e 2 'recursos'.ym1Xm=n=2

Então agora suponha que você queira verificar a 'linha' ou polinômio de melhor ajuste aqui. Ou seja, você projeta seus recursos de dados de entrada com relação ao vetor polinomial modo que sua função de custo seja:θ

J(θ)=12mi=1m[θ0x0[i]+θ1x1[i]y[i]]2

Agora, vamos pegar a primeira derivada parcial wrt , (recurso 0) Assim:θ0

δJ(θ)δθ0=1mi=1m[θ0x0[i]+θ1x1[i]y[i]]x0[i]

δJ(θ)δθ0=1mi=1m[θ0x02[i]+θ1x1[i]x0[i]y[i]x0[i]]

Agora, vamos calcular todas as segundas parciais, então:

δ2J(θ)δθ02=1mi=1mx02[i]

δ2J(θ)δθ0θ1=1mi=1mx0[i]x1[i]

δ2J(θ)δθ1θ0=1mi=1mx1[i]x0[i]

δ2J(θ)δθ12=1mi=1mx12[i]

Sabemos que o hessiano nada mais é do que:

H(J(θ))=[δ2J(θ)δθ02δ2J(θ)δθ0θ1δ2J(θ)δθ1θ0δ2J(θ)δθ12]

H(J(θ))=[1mi=1mx02[i]1mi=1mx0[i]x1[i]1mi=1mx1[i]x0[i]1mi=1mx12[i]]

Agora, com base em como eu construí a matriz de dados (meus 'recursos' passam por colunas e meus exemplos passam por linhas), o Hessian parece ser:X

H(J(θ))=XTX=Σ

... que nada mais é do que a matriz de covariância de amostra !

Portanto, não tenho muita certeza de como interpretar - ou devo dizer, não tenho muita certeza de como devo generalizar aqui. Mas acho que posso dizer isso:

  • Sempre verdade:

    • A matriz Hessiana sempre controla se sua superfície de erro / custo é convexa ou não.
    • Se sua matriz Hessiana é pós-semidefinida, você é convexo (e felizmente pode usar algoritmos como descida de gradiente para convergir para a solução ideal).
  • Verdadeiro apenas para LSE:

    • A matriz Hessiana para o critério de custo da LSE nada mais é que a matriz de covariância original. (!)
    • Para mim, isso significa que, se eu usar o critério LSE, os próprios dados determinam se eu tenho ou não uma superfície convexa. ... O que significaria então que os vetores próprios da minha matriz de covariância têm a capacidade de 'moldar' a superfície de custo? Isso é sempre verdade? Ou funcionou apenas para os critérios de LSE? Apenas não me parece certo que a convexidade de uma superfície de erro deva depender dos dados.

Então, colocando-o de volta no contexto da pergunta original, como determinar se uma superfície de erro (com base em alguma função de custo selecionada) é convexa ou não? Essa determinação é baseada nos dados ou no Hessiano?

obrigado

TLDR: Como, exatamente e praticamente eu determino se minha função de custo e / ou conjunto de dados produz uma superfície de erro convexa ou não convexa?

Spacey
fonte

Respostas:

7

Você pode pensar em mínimos lineares em dimensão única. A função de custo é algo como . A primeira derivada (jacobiana) é então , portanto linear em . A segunda derivada (Hessian) é - uma constante. 2 a a 2a22aa2

Como a segunda derivada é positiva, você está lidando com a função de custo convexo. Isso é equivalente à matriz Hessiana definida positiva no cálculo multivariado.

Você lida com apenas duas variáveis ​​( , ), portanto, o Hessian é particularmente simples. θ 2θ1θ2

Na prática, no entanto, muitas vezes há muitas variáveis ​​envolvidas, por isso é impraticável construir e inspecionar o Hessian.

O método mais eficiente é trabalhar diretamente na matriz jacobiana no problema dos mínimos quadrados:J

Jx=b

J pode ser deficiente, singular ou quase singular. Nesses casos, a superfície quadrática da função de custo é quase plana e / ou esticada em alguma direção. Você também pode descobrir que sua matriz é teoricamente solucionável, mas a solução é numericamente instável. Um método de pré-condicionamento pode ser usado para lidar com esses casos.

Alguns algoritmos simples executar uma decomposição de Cholesky de . Se o algoritmo falhar, isso significa que é singular (ou está mal condicionado).JJJ

Numericamente mais estável, mas mais cara, é uma decomposição QR , que também existe apenas se for regular.J

Finalmente, o método mais avançado é uma Decomposição de Valor Singular (SVD) , que é mais cara, pode ser feita em todas as matrizes, revela a classificação numérica de e permite tratar casos com deficiência de classificação separadamente.J

Escrevi um artigo sobre soluções de mínimos quadrados lineares e não lineares que aborda esses tópicos em detalhes:

Mínimos quadrados lineares e não lineares com Math.NET

Também existem referências a ótimos livros que lidam com tópicos avançados relacionados a mínimos quadrados (covariância em parâmetros / pontos de dados, pré-condicionamento, redimensionamento, regressão ortogonal à distância - mínimos quadrados totais, determinação da precisão e exatidão do estimador de mínimos quadrados etc.) )

Fiz um projeto de amostra para o artigo, que é de código aberto:

LeastSquaresDemo - binário

LeastSquaresDemo - fonte (C #)

Libor
fonte
Obrigado Libor: 1) Tangencial, mas, choleskey é como uma raiz quadrada de matriz, parece? 2) Não sei ao certo o que você entende sobre como o Hessiano fala sobre a convexidade em cada ponto na superfície do erro - você está dizendo em geral? Porque a partir da derivação LSE acima, o Hessian não depende dos parâmetros , e apenas dos dados. Talvez você queira dizer em geral? 3) Finalmente, no total, como determinar se uma superfície de erro é convexa - basta garantir que o Hessian seja SPD? Mas você mencionou que isso pode depender de ... então como alguém pode saber com certeza? Obrigado! θθθ
Spacey
2) Sim, eu quero dizer em geral. Nos mínimos quadrados lineares, toda a superfície de erro tem um hessiano constante. Tomar o segundo derviativo quadrático é constante, o mesmo se aplica a Hessian. 3) Depende do condicionamento da sua matriz de dados. Se o Hessian é spd, existe uma única solução fechada e a superfície de erro é convexa em todas as direções. Caso contrário, a matriz de dados está mal condicionada ou singular. Nunca usei o Hessian para investigar isso, inspecionando valores singulares da matriz de dados ou verificando se ela possui decomposição de Cholesky. Ambas as formas lhe dirão se existe uma solução.
Libor
Libor - 1) Se puder, adicione como você usou a matriz de dados SVD do ou como você usou a decomposição de Choleskey para verificar se você possui uma única solução fechada, elas parecem ser muito úteis e um bom ponto, e Eu ficaria curioso para aprender como usá-los. 2) A última coisa, só para ter certeza que eu entendo sobre Hessian: Então o bárbaro é, em geral, uma função de , e / ou . Se for SPD, temos uma superfície convexa. (Se o Hessiano tiver no entanto, teríamos que avaliá-lo onde quer que pareça). Obrigado novamente. θ X θXθXθ
Spacey
Mohammad: 1) Reescrevi a resposta e adicionei links ao meu artigo sobre Mínimos Quadrados (pode haver alguns erros, ainda não o publiquei oficialmente), incluindo um exemplo de projeto de trabalho. Espero que ajude a entender o problema mais profundamente ... 2) Nos mínimos quadrados lineares, o Hessian é constante e depende apenas de pontos de dados. Em geral, depende também dos parâmetros do modelo, mas este é apenas o caso dos mínimos quadrados não lineares.
Libor