Croisements de caractéristiques : encodage de la non-linéarité

Dans les figures 1 et 2, supposons que :

  • les points bleus représentent des arbres malades ;
  • les points orange représentent des arbres sains.

Les points bleus occupent le quadrant nord-est ; les points orange occupent le quadrant sud-ouest.

Figure 1 : S'agit-il d'un problème linéaire ?

Pouvez-vous tracer une ligne qui sépare clairement les arbres malades des sujets sains ? Bien sûr ! Il s'agit d'un problème linéaire. La ligne ne sera pas parfaite. Un ou deux arbres malades peuvent, en effet, se trouver du côté "sain". Cependant, votre ligne constituera un bon prédicteur.

Observez à présent l'illustration ci-dessous :

Les points bleus occupent les quadrants nord-est et sud-ouest ; les points orange occupent les quadrants nord-ouest et sud-est.

Figure 2 : S'agit-il d'un problème linéaire ?

Pouvez-vous tracer une seule ligne droite qui sépare clairement les arbres malades des sujets sains ? Non, c'est impossible. Il s'agit d'un problème non linéaire. Toute ligne tracée sera un mauvais prédicteur de la santé des arbres.

Même illustration que la figure 2, si ce n'est que le plan est coupé par une ligne horizontale. Les points bleus et orange se situent au-dessus de la ligne ; les points bleus et orange se situent sous la ligne.

Figure 3 : Les deux classes ne peuvent pas être séparées par une seule ligne.

 

Pour résoudre le problème non linéaire illustré à la figure 2, créez un croisement de caractéristiques. Un croisement de caractéristiques est une caractéristique synthétique qui encode la non-linéarité dans l'espace de caractéristiques en multipliant plusieurs caractéristiques d'entrée. Le terme croisement vient de produit croisé ou produit vectoriel. Nous allons maintenant créer un croisement de caractéristiques nommé \(x_3\) en croisant \(x_1\) et \(x_2\) :

$$x_3 = x_1x_2$$

Nous allons traiter ce nouveau croisement de caractéristiques \(x_3\) comme n'importe quelle autre caractéristique. La formule linéaire devient alors :

$$y = b + w_1x_1 + w_2x_2 + w_3x_3$$

Un algorithme linéaire peut apprendre une pondération pour \(w_3\) comme il le ferait pour \(w_1\) et \(w_2\). En d'autres termes, bien que \(w_3\) encode des informations non linéaires, il n'est pas nécessaire de modifier le mode d'apprentissage du modèle linéaire pour déterminer la valeur de \(w_3\).

Types de croisements de caractéristiques

Il est possible de créer de nombreux types de croisements de caractéristiques différents, par exemple :

  • [A X B] : croisement de caractéristiques résultant de la multiplication des valeurs de deux caractéristiques.
  • [A x B x C x D x E] : croisement de caractéristiques résultant de la multiplication des valeurs de cinq caractéristiques.
  • [A x A] : croisement de caractéristiques résultant de la mise au carré d'une seule caractéristique.

La descente de gradient stochastique permet un entraînement efficace des modèles linéaires. Par conséquent, l'ajout de croisements de caractéristiques à des modèles linéaires mis à l'échelle constitue généralement une méthode efficace pour effectuer un apprentissage sur des ensembles de données à très grande échelle.