⏩ Comment l'IA *comprend* les images en termes simples
Cet article vise à expliquer l'un des modèles d'intelligence artificielle les plus utilisés au monde. Je vais essayer de faire très simple, afin que tout le monde puisse comprendre comment cela fonctionne. L'IA entoure notre vie quotidienne, et elle ne fera que devenir plus présente, vous devez donc comprendre comment cela fonctionne, où nous en sommes et ce qui nous attend. Plus vous en apprendrez sur l'IA, plus vous vous rendrez compte qu'elle n'est pas aussi avancée que la plupart le pensent en raison de son intelligence étroite, mais elle a de puissantes applications pour les particuliers et les entreprises. Savoir comment cela fonctionne vous aidera à mieux comprendre les applications possibles, les limites et à mieux communiquer avec vos collègues plus techniques.
L'une des architectures de réseau de neurones profonds les plus puissantes en vision par ordinateur, c'est-à-dire toute application basée sur la vision impliquant des images, est les réseaux de neurones convolutifs (CNNs). Les CNNs sont une architecture d'apprentissage en profondeur puissante et largement utilisée pour les applications basées sur la vision. En termes simples, la façon dont cela fonctionne est que l'image est compressée de manière itérative. Le réseau se concentre sur les informations dont nous avons besoin sur l'image tout en supprimant les caractéristiques spatiales redondantes et non générales. On se retrouve avec un taux de confiance nous informant si l'image contient ou non ce que l'on cherchait. Cet accent peut être mis sur n'importe quoi, de la détection de chats, d'humains, d'objets à la détection de fumée dans nos illustrations ici. Tout dépend des données sur lesquelles il est formé, mais l'architecture globale et le fonctionnement resteront les mêmes. Par formation, j'entends le processus consistant à alimenter de manière itérative toutes les images dont nous disposons au modèle pour essayer d'améliorer ses performances, comme nous l'explorerons dans cet article.
Vous pouvez voir les CNN comme compressant l'image, se concentrant sur une caractéristique spécifique de l'image à chaque étape, devenant plus compressés et pertinents par rapport à ce que nous voulons plus nous approfondissons le réseau.
Cet article se concentrera sur une application passionnante où l'IA est utilisée pour aider à repérer les incendies de forêt dans les images afin de réduire le temps moyen de détection et les dommages causés par les incendies. Comme vous pouvez vous y attendre, nos filtres se concentreront sur les caractéristiques de fumée et d'incendie.
Cela se fait à l'aide de filtres qui parcourront l'ensemble de l'image, en mettant l'accent sur des caractéristiques spécifiques telles que les bords avec des orientations spécifiques. Ce processus est répété avec plusieurs filtres faisant une convolution, et ces filtres sont ce qui est appris pendant la formation. Après la première convolution, nous obtenons une nouvelle image plus petite pour chaque filtre, que nous appelons une carte de caractéristiques, chacune d'elles se concentrant sur des bords ou des caractéristiques spécifiques. Ils ressembleront donc tous à une version zoomée étrange et floue de l'image, mettant l'accent sur des fonctionnalités spécifiques. Et nous pouvons utiliser autant de filtres que nécessaire pour optimiser notre tâche.
Ensuite, chacune de ces nouvelles images est envoyée au même processus répété encore et encore jusqu'à ce que l'image soit tellement compressée que nous avons beaucoup de ces minuscules cartes de caractéristiques optimisées sur les informations dont nous avons besoin, adaptées aux nombreuses images différentes que notre ensemble de données contient. Chaque convolution ajoutée est une couche ajoutée à la "profondeur" de notre réseau, ce qui en fait un réseau de neurones profond lorsqu'il comporte plusieurs couches entre l'image et les résultats de la classification. En termes simples, plus nous avons de filtres, plus nous pouvons couvrir d'images différentes pour notre tâche, étant donné que nous avons toutes les variations au sein de nos données utilisées pour l'entraîner. Ce qui est important ici, c'est de trouver le bon compromis entre le nombre de filtres utilisés par couche et la profondeur de notre réseau par rapport à la complexité de la tâche à accomplir.
Enfin, ces minuscules cartes de caractéristiques sont envoyées dans ce que nous appelons des "couches entièrement connectées" pour extraire les informations pertinentes à l'aide de poids.
Ces dernières couches contiennent tous les poids connectés qui apprendront sur quelle caractéristique le modèle doit se concentrer en fonction des images fournies et transmettront les informations pour notre classification finale. Ce processus compressera davantage les informations et nous dira enfin s'il y a de la fumée ou non avec un niveau de confiance. Donc, en supposant que le modèle soit bien entraîné, les résultats finaux seraient un modèle concentrant sa compression sur les caractéristiques de la fumée dans l'image, c'est pourquoi il est si approprié à cette tâche ou à toute tâche impliquant des images. Une bonne formation signifie que le modèle a correctement adapté ses poids (ou filtres) pour identifier la caractéristique qu'il doit identifier. Dans cet exemple, le réseau baserait ses résultats sur la fumée et le feu tout en donnant une réponse faible ou nulle lorsque ni l'un ni l'autre n'apparaît dans l'image. Cette adaptation poids/filtre se fait de manière itérative en fournissant des exemples au réseau et en mettant à jour les valeurs des poids en fonction de la différence entre ce que le réseau a dit et ce que nous voulions qu'il dise. Initialement, le réseau se comportera de manière assez aléatoire, le réseau mettra donc régulièrement à jour son poids. Au fil du temps, il se rapprochera de plus en plus de la vérité, et nous terminerons notre entraînement.
Bien sûr, il y a plus de détails techniques concernant le processus de formation, mais c'est assez bien pour comprendre comment un réseau profond est capable de donner une classification lors de la réception d'une image.
(à gauche) réponses de filtre élevées d'une image avec de la fumée et (à droite) réponses de filtre faibles d'une image sans fumée.
S'il y a de la fumée, les filtres produiront des réponses élevées, et nous nous retrouverons avec un réseau nous indiquant qu'il y a de la fumée dans l'image avec une grande confiance. S'il n'y a pas de fumée, ces résultats de compression produiront des réponses faibles, nous indiquant que rien ne se passe dans l'image concernant ce que nous essayons de détecter, qui est un incendie dans ce cas. Il produira également des résultats avec un taux de confiance entre l'absence de fumée et la fumée évidente. Et voilà, vous avez votre détecteur de feux de forêt !
Merci d’avoir lu cet article!
Regardez la vidéo sous-titrée en anglais:
Venez discuter avec nous dans notre communauté Discord: ‘Learn AI Together’ et partagez vos projets, vos articles, vos meilleurs cours, trouvez des coéquipiers pour des compétitions Kaggle et plus encore!
Si vous aimez mon travail et que vous souhaitez rester à jour avec l'IA, vous devez absolument me suivre sur mes autres médias sociaux (LinkedIn, Twitter) et vous abonner à ma newsletter hebdomadaire sur l'IA!