Il y a un fil similaire ici (la fonction de coût du réseau de neurones n'est pas convexe? ) Mais je n'ai pas pu comprendre les points dans les réponses et ma raison de demander à nouveau en espérant que cela clarifiera certains problèmes:
Si j'utilise la fonction de somme des différences de coût au carré, j'optimise finalement quelque chose de la forme où est la valeur réelle de l'étiquette pendant la formation phase et est la valeur de libellé prédite. Comme cela a une forme carrée, cela devrait être une fonction de coût convexe. Alors, qu'est-ce qui pourrait le rendre non convexe dans un NN?y y
Réponses:
Par exemple, considérons un réseau avec 1 couche cachée de unités et une couche de sortie linéaire: notre fonction de coût est où et (et j'omets les termes de biais pour plus de simplicité). Ce n'est pas nécessairement convexe lorsqu'il est considéré comme une fonction de (selon : si une fonction d'activation linéaire est utilisée, alors elle peut toujours être convexe). Et plus notre réseau s'approfondit, moins les choses sont convexes.g ( α , W ) = ∑ i ( y i - α i σ ( W x i ) ) 2 x i ∈ R p W ∈ R N × p ( α , W ) σN
Définissez maintenant une fonction par où est avec réglé sur et réglé sur . Cela nous permet de visualiser la fonction de coût car ces deux poids varient. h ( u , v ) = g ( α , W ( u , v ) ) W ( u , v ) W W 11 u W 12 vh:R×R→R h(u,v)=g(α,W(u,v)) W(u,v) W W11 u W12 v
La figure ci-dessous montre cela pour la fonction d'activation sigmoïde avec , et (donc une architecture extrêmement simple). Toutes les données ( et ) sont iid , de même que les pondérations qui ne varient pas dans la fonction de tracé. Vous pouvez voir le manque de convexité ici.p = 3 N = 1 x y N ( 0 , 1 )n=50 p=3 N=1 x y N(0,1)
Voici le code R que j'ai utilisé pour faire cette figure (bien que certains paramètres soient à des valeurs légèrement différentes maintenant que lorsque je l'ai fait, ils ne seront donc pas identiques):
la source