Qu'est-ce qui rend une surface convexe d'erreur? Est-il déterminé par la matrice de Covarinace ou la Hesse?


17

J'apprends actuellement les estimations des moindres carrés (et autres) pour la régression, et d'après ce que je lis également dans certaines littératures d'algorithmes adaptatifs, souvent la phrase "... et puisque la surface d'erreur est convexe ..." apparaît et aucune profondeur quant aux raisons pour lesquelles il est convexe au départ n'est nulle part où se trouver.

... Alors qu'est-ce qui le rend exactement convexe ?

Je trouve cette omission répétée légèrement ennuyeuse parce que je veux pouvoir concevoir mes propres algorithmes adaptatifs, avec mes propres fonctions de coût, mais si je ne peux pas dire si ma fonction de coût donne ou non une surface d'erreur convexe, je ne pourrai pas aller trop loin dans l'application de quelque chose comme la descente de gradient car il n'y aura pas de minimum global. Peut-être que je veux faire preuve de créativité - peut-être que je ne veux pas utiliser les moindres carrés comme critère d'erreur par exemple.

En creusant plus profondément (et mes questions commencent ici), j'ai trouvé que pour pouvoir dire si vous avez une surface d'erreur convexe, vous devez vous assurer que votre matrice de Hesse est semi-définie positive. Pour les matrices symétriques, ce test est simple - assurez-vous simplement que toutes les valeurs propres de la matrice de Hesse ne sont pas négatives. (Si votre matrice n'est pas symétrique, vous pouvez la rendre symétrique en l'ajoutant à sa propre transposition et en effectuant le même test de valeur propre, en vertu du Gramian , mais ce n'est pas important ici).

Qu'est-ce qu'une matrice de Hesse? La matrice de Hesse codifie toute la combinaison possible des partiels de votre fonction de coût. Combien de partiels y a-t-il? Autant que le nombre d'entités dans votre vecteur d'entités. Comment calculer les partiels? Prenez les dérivées partielles «à la main» de la fonction de coût d'origine.

C'est exactement ce que j'ai fait: je suppose que nous avons une matrice de données m x , notée par la matrice , où, désigne le nombre d'exemples, et désigne le nombre d'entités par exemple. (qui sera également le nombre de partiels). Je suppose que nous pouvons dire que nous avons échantillons de temps et échantillons spatiaux de capteurs, mais l'application physique n'est pas trop importante ici.X m n m nnXmnmn

De plus, nous avons également un vecteur de taille x . (Il s'agit de votre vecteur «étiquette» ou de votre «réponse» correspondant à chaque ligne de ). Pour simplifier, j'ai supposé pour cet exemple particulier. Donc 2 «exemples» et 2 «fonctionnalités».m 1 X m = n = 2ym1Xm=n=2

Supposons maintenant que vous vouliez déterminer la «ligne» ou le polynôme le mieux adapté ici. C'est-à-dire que vous projetez vos entités de données d'entrée par rapport à votre vecteur polynomial co-efficace telle sorte que votre fonction de coût soit:θ

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

Maintenant, prenons la première dérivée partielle wrt , (caractéristique 0) Ainsi:θ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]]

Maintenant, calculons tous les deuxièmes partiels, donc:

δ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]

Nous savons que la Hesse n'est rien d'autre 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]]

Maintenant, sur la base de la façon dont j'ai construit la matrice de données (mes `` fonctionnalités '' vont par colonnes et mes exemples par lignes), la Hesse semble être:X

H(J(θ))=XTX=Σ

... qui n'est rien d'autre que la matrice de covariance échantillon !

Donc je ne sais pas trop comment interpréter - ou je devrais dire, je ne sais pas trop comment généraliser je devrais être ici. Mais je pense que je peux dire que:

  • Toujours vrai:

    • La matrice de Hesse contrôle toujours si votre surface d'erreur / coût est convexe.
    • Si votre matrice hessoise est pos-semi-def, vous êtes convexe (et pouvez utiliser avec plaisir des algorithmes comme la descente de gradient pour converger vers la solution optimale).
  • Vrai pour LSE uniquement:

    • La matrice de Hesse pour le critère de coût LSE n'est rien d'autre que la matrice de covariance d'origine. (!).
    • Pour moi, cela signifie que, si j'utilise le critère LSE, les données elles-mêmes déterminent si j'ai ou non une surface convexe? ... Ce qui signifierait alors que les vecteurs propres de ma matrice de covariance ont en quelque sorte la capacité de «façonner» la surface de coût? Est-ce toujours vrai? Ou cela a-t-il simplement fonctionné pour les critères LSE? Cela ne me convient pas que la convexité d'une surface d'erreur soit dépendante des données.

Donc, en le replaçant dans le contexte de la question initiale, comment peut-on déterminer si une surfacture d'erreur (basée sur une fonction de coût que vous sélectionnez) est convexe ou non? Cette détermination est-elle basée sur les données ou sur la Hesse?

Merci

TLDR: Comment, exactement et pratiquement, dois-je déterminer si ma fonction de coût et / ou mon ensemble de données produisent une surface d'erreur convexe ou non convexe?

Réponses:


7

Vous pouvez penser aux moindres carrés linéaires en une seule dimension. La fonction de coût est quelque chose comme . La dérivée première (jacobienne) est alors 2 a , donc linéaire en a . La dérivée seconde (Hessian) est 2 - une constante.une22uneune2

Puisque la dérivée seconde est positive, vous avez affaire à une fonction de coût convexe. Ceci est équivalent à une matrice de Hesse définie positive dans le calcul multivarié.

Vous ne traitez qu'avec deux variables ( , θ 2 ), la Hesse est donc particulièrement simple.θ1θ2

Dans la pratique, cependant, il y a souvent de nombreuses variables impliquées, il n'est donc pas pratique de construire et d'inspecter la Hesse.

Une méthode plus efficace consiste à travailler directement sur la matrice jacobienne dans le problème des moindres carrés:J

JX=b

peut être déficient en rang, singulier ou presque singulier. Dans de tels cas, la surface quadratique de la fonction de coût est presque plate et / ou fortement étirée dans une certaine direction. Vous pouvez également constater que votre matrice est théoriquement soluble, mais la solution est numériquement instable. Une méthode depréconditionnementpeut être utilisée pour faire face à de tels cas.J

Certains algorithmes simples exécuter une décomposition de Cholesky de . Si l'algorithme échoue, cela signifie que J est singulier (ou mal conditionné).JJ

J

J

J'ai écrit un article sur les solutions des moindres carrés linéaires et non linéaires qui couvre ces sujets en détail:

Les moindres carrés linéaires et non linéaires avec Math.NET

Il existe également des références à de grands livres qui traitent de sujets avancés liés aux moindres carrés (covariance des paramètres / points de données, préconditionnement, mise à l'échelle, régression de la distance orthogonale - moindres carrés totaux, détermination de la précision et de l'exactitude de l'estimateur des moindres carrés, etc. ).

J'ai créé un exemple de projet pour l'article, qui est open source:

LeastSquaresDemo - binaire

LeastSquaresDemo - source (C #)


θθ

2) Oui, je veux dire en général. Dans les moindres carrés linéaires, toute la surface d'erreur a une Hesse constante. La prise de la deuxième derviative du quadratique est constante, il en va de même pour la Hesse. 3) Cela dépend du conditionnement de votre matrice de données. Si la Hesse est spd, vous il n'y a qu'une seule solution fermée et la surface d'erreur est convexe dans toutes les directions. Sinon, la matrice de données est mal conditionnée ou singulière. Je n'ai jamais utilisé Hessian pour sonder cela, plutôt en inspectant des valeurs singulières de la matrice de données ou en vérifiant si elle a une décomposition Cholesky. Les deux façons vous diront s'il existe une solution.
Libor

XθXθ

Mohammad: 1) J'ai réécrit la réponse et ajouté des liens vers mon article sur les moindres carrés (il peut y avoir des erreurs, je ne l'ai pas encore publié officiellement), y compris un projet d'échantillon de travail. J'espère que cela vous aidera à comprendre le problème plus profondément ... 2) Dans les moindres carrés linéaires, la Hesse est constante et dépend uniquement des points de données. En général, cela dépend aussi des paramètres du modèle, mais ce n'est que le cas des moindres carrés non linéaires.
Libor
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.