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 x , denotada pela matriz , em que indica o número de exemplos e indica o número de recursos por exemplo. (que também será o número de parciais). Suponho que podemos dizer que temos amostras de tempo e 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'.
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:
Agora, vamos pegar a primeira derivada parcial wrt , (recurso 0) Assim:
Agora, vamos calcular todas as segundas parciais, então:
Sabemos que o hessiano nada mais é do que:
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:
... 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?