La perte MSE est utilisée pour les tâches de régression. Comme son nom l’indique, cette perte est calculée en prenant la moyenne des différences au carré entre les valeurs réelles (cibles) et les valeurs prédites.
Exemple
Par exemple, nous avons un réseau de neurones qui prend les données de la maison et prédit le prix de la maison. Dans ce cas, vous pouvez utiliser la perte MSE
. Fondamentalement, dans le cas où la sortie est un nombre réel, vous devez utiliser cette fonction de perte.
Crossentropie binaire
La perte BCE est utilisée pour les tâches de classification binaire. Si vous utilisez la fonction de perte BCE
, il vous suffit d’un nœud de sortie pour classer les données en deux classes. La valeur de sortie doit être transmise par une fonction d’activation sigmoïde et la plage de sortie est (0 – 1).
Exemple
Par exemple, nous avons un réseau de neurones qui prend des données sur l’atmosphère et prédit s’il pleuvra ou non. Si la sortie est supérieure à 0,5, le réseau la classe comme rain
et si la sortie est inférieure à 0,5, le réseau la classe comme not rain
. (cela pourrait être opposé selon la façon dont vous entraînez le réseau). Plus la valeur du score de probabilité est élevée, plus il risque de pleuvoir.
Lors de l’entraînement du réseau, la valeur cible fournie au réseau doit être 1 s’il pleut sinon 0.
Note 1
Une chose importante, si vous utilisez la fonction de perte BCE
, la sortie du nœud doit être comprise entre (0-1). Cela signifie que vous devez utiliser une fonction d’activation sigmoïde sur votre sortie finale. Puisque sigmoid convertit toute valeur réelle comprise entre (0 et 1).
Note 2
Que se passe-t-il si vous n’utilisez pas l’activation sigmoïde sur la couche finale? Ensuite, vous pouvez passer un argument appelé from logits
comme true
à la fonction de perte et il appliquera en interne le sigmoïde à la valeur de sortie.
Crossentropie catégorielle
Lorsque nous avons une tâche de classification multi-classes, l’une des fonctions de perte que vous pouvez utiliser est celle-ci. Si vous utilisez la fonction de perte CCE
, il doit y avoir le même nombre de nœuds de sortie que les classes. Et la sortie de la couche finale doit être passée par une activation softmax afin que chaque nœud produise une valeur de probabilité comprise entre (0-1).
Exemple
Par exemple, nous avons un réseau de neurones qui prend une image et la classe dans un chat ou un chien. Si le nœud de chat a un score de probabilité élevé, l’image est classée dans un chat sinon un chien. Fondamentalement, quel que soit le nœud de classe ayant le score de probabilité le plus élevé, l’image est classée dans cette classe.
Pour alimenter la valeur cible au moment de l’entraînement, nous devons les coder à chaud. Si l’image est de chat, le vecteur cible serait (1, 0) et si l’image est de chien, le vecteur cible serait (0, 1). Fondamentalement, le vecteur cible serait de la même taille que le nombre de classes et la position de l’indice correspondant à la classe réelle serait 1 et toutes les autres seraient nulles.
Note
Que se passe-t-il si nous n’utilisons pas l’activation softmax sur la couche finale? Ensuite, vous pouvez passer un argument appelé from logits
comme true
à la fonction de perte et il appliquera en interne le softmax à la valeur de sortie. Comme dans le cas ci-dessus.
Crossentropie catégorielle clairsemée
Cette fonction de perte est presque similaire à CCE
à l’exception d’un changement.
Lorsque nous utilisons la fonction de perte SCCE
, vous n’avez pas besoin d’encoder à chaud le vecteur cible. Si l’image cible est celle d’un chat, vous passez simplement 0, sinon 1. Fondamentalement, quelle que soit la classe, vous venez de passer l’index de cette classe.