Comprendre facilement la non-linéarité dans un Réseau de Neurones

Déjà 30 minutes sur Stack Overflow, 1 heure sur Quora et tu ne comprends toujours pas POURQUOI la non-linéarité est nécessaire dans un Réseau de neurones ?

Si toi aussi tu es dans ce cas, tu es tombé au bon endroit !💡

Dans cet article, on explique le pourquoi de la non-linéarité en Deep Learning sous un angle différent de nos collègues Data Scientists.

Le but d’un Réseau de Neurones

Pour comprendre le rôle de la non-linéarité il faut d’abord se représenter clairement comment fonctionne un Réseau de Neurones

Le but principal d’un Réseau de Neurones est d’apprendre, de s’entraîner à résoudre une tâche.

Dit autrement, il doit optimiser ses performances

En mathématique, pour optimiser une fonction, on la dérive.

En effet, avec la dérivé, on peut facilement repérer la valeur pour laquelle la fonction est optimal.

Un exemple concret avec en bleu notre fonction et en rouge sa dérivée :

Trouver l’optimum d’une fonction

L’optimum d’une fonction est facilement repérable. Il est atteint lorsque la dérivée g'(x) = 0.

Grâce à cette dérivée, on peut connaître la valeur de x pour laquelle f(x) est optimal. En l’occurence lorsque x = 2.

Eh bien pour un Réseau de Neurones, c’est la même chose.

On va dériver le réseau pour trouver son optimum. C’est ce qu’on appelle la Descente de Gradient.

De même que pour une fonction, la dérivée nous permet de savoir pour quels valeurs de x le réseau optimise ses performances.

Seulement ici, on pas un seul x mais une multitude !

Effectivement, dans notre Réseau de Neurones, on a plusieurs fonctions.

En fait chaque couche d’un modèle de Deep Learning est une fonction à optimiser.

Ainsi lorsqu’on veut optimiser notre modèle, il faut optimiser chacune de ses couches.

Là, on comprend mieux pourquoi on appelle cela du Deep Learning, ou Apprentissage Profond. Le calcul des dérivées est démentiel ce qui le rend très long ou… très profond !

C’est d’ailleurs ce qui fait la force du Deep Learning. Cette complexité d’apprentissage lui permet justement de résoudre des tâches complexes.


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


Photo by Marco Bicca on Unsplash

Le but de la non-linéarité

Mais alors que vient faire la non-linéarité dans tout ça ?

Car non je n’ai pas oublié de le sujet principale de cet article !

Le but de la non-linéarité est de marquer un cap entre chaque couche.

Je m’explique.

Les fonctions que l’on trouve dans les couches d’un Réseau de Neurones sont linéaires.

Le problème c’est qu’une succession de fonctions linéaires peut-être résumé très facilement à une seule fonction linéaire (la démonstration mathématique est trouvable sur internet).

Dit autrement, si on avait une succession de 100 couches linéaires, on pourrait les simplifier mathématiquement à seulement une couche linéaire.

On perd tout de suite en complexité !

En fait, avec uniquement la linéarité, on perd l’atout principal du Deep Learning : sa profondeur, le nombre de couche qui se succède.

Ainsi pour garder cette complexité, on va marquer une étape entre chacune des couches.

Cette étape, c’est la fonction d’activation et c’est elle qui apporte la non-linéarité.

Cette non-linéarité crée une frontière entre chacune des couches pour qu’elles ne puissent pas se simplifier.

Dit autrement, la non-linéarité permet de maintenir la complexité d’un Réseau de Neurones.

Ainsi un réseau de neurones est composé de couche et de fonctions d’activation qui permettent grâce à leur non-linéarité de créer des frontières artificielles entre les couches.

Photo by Michelle Owens on Unsplash

Conclusion

Finalement la non-linéarité c’est un peu la cerise sur le gateau du Réseau de Neurones. C’est ce qui lui permet de fonctionner.

Sans la non-linéarité pas de complexité. On aurait un Réseau d’une seule couche. On ne parlerait alors plus de Deep Learning mais seulement de Machine Learning.

Ainsi en Deep Learning, on a besoin de marquer la séparation entre chacune couche pour révéler leur utilité !

Pour rentrer plus en détails dans la non-linéarité, n’hésitez pas à aller voir notre article sur les différentes fonctions d’activation.

sources :


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


Tom Keldenich
Tom Keldenich

Data Engineer & passionné d'Intelligence Artificielle !

Fondateur du site Inside Machine Learning

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.