Join us for an enlightening presentation that delves into the fascinating world of Convolutional Neural Networks (CNNs). CNNs have emerged as a groundbreaking technology in the field of deep learning, revolutionizing various applications ranging from image recognition and natural language processing to autonomous vehicles and medical diagnosis.
Our presentation will provide a comprehensive overview of CNNs, exploring their architecture, capabilities, and real-world applications. We will begin by unraveling the fundamental concepts underlying CNNs, such as convolution, pooling, and non-linear activation functions. Through intuitive explanations and visual aids, we will demystify the inner workings of CNNs, making the topic accessible to both technical and non-technical audiences.
As we delve deeper, we will showcase how CNNs excel in image recognition tasks, leveraging their ability to automatically learn and extract meaningful features from visual data. We will discuss the hierarchical nature of CNN architectures, which enables them to capture both low-level features like edges and textures, as well as high-level semantic representations. Through engaging examples and case studies, we will illustrate how CNNs have achieved state-of-the-art performance in image classification, object detection, and image segmentation tasks.
Beyond image processing, our presentation will explore the versatility of CNNs in various domains. We will explore their applications in natural language processing, where they have proven effective in tasks like sentiment analysis, text classification, and machine translation. Additionally, we will delve into their usage in autonomous vehicles, where CNNs enable object detection, lane recognition, and even real-time decision-making.
Furthermore, we will highlight the impact of CNNs in the medical field, where they have revolutionized medical imaging analysis, aiding in the early detection of diseases such as cancer and Alzheimer's. Through remarkable case studies, we will demonstrate how CNNs have enhanced the accuracy and efficiency of medical diagnoses, potentially saving countless lives.
Lastly, we will discuss the latest advancements and ongoing research in the realm of CNNs, including emerging architectures, transfer learning, and explainability. We will also touch upon the ethical considerations and challenges associated with the widespread adoption of CNNs, ensuring a holistic understanding of this powerful technology.
Whether you are a student, researcher, industry professional, or simply curious about the cutting-edge developments in artificial intelligence, this presentation on CNNs promises to enlighten and inspire. Prepare to witness the incredible capabilities of CNNs and discover how they are reshaping the world around us.
Les réseaux de neurones convolutifs CNNSALMARACHIDI1
La présentation a débuté par une introduction aux Réseaux de Neurones Convolutifs (CNN), en soulignant leur importance croissante dans le domaine de l'intelligence artificielle et du traitement d'images. Les CNN sont particulièrement adaptés à la reconnaissance d'images, à la classification d'objets et à d'autres tâches liées à la vision par ordinateur.
La première partie de la présentation a abordé les fondements des CNN. Les participants ont été familiarisés avec les concepts de base des réseaux de neurones et ont pu comprendre les différences entre les réseaux de neurones classiques et les CNN. Un accent particulier a été mis sur l'architecture spécifique des CNN, comprenant des couches de convolution, des couches de pooling et des couches entièrement connectées. Les participants ont compris comment les opérations de convolution permettent d'extraire des caractéristiques importantes des images, tandis que les opérations de pooling réduisent la dimensionnalité et conservent les informations essentielles.
Dans la deuxième partie de la présentation, l'accent a été mis sur l'implémentation pratique des CNN en utilisant le langage de programmation Python. Les participants ont été guidés à travers les étapes de construction d'un modèle CNN en utilisant des bibliothèques populaires telles que TensorFlow ou PyTorch. Ils ont appris à définir les couches de convolution, les couches de pooling et les couches entièrement connectées, ainsi qu'à configurer les hyperparamètres du modèle.
La présentation a également abordé des sujets connexes tels que l'entraînement et l'évaluation des modèles CNN, l'application de la technique de transfert d'apprentissage pour des tâches spécifiques, et les défis liés à la mise à l'échelle des CNN pour des ensembles de données plus volumineux.
En résumé, la présentation sur les Réseaux de Neurones Convolutifs (CNN) a permis aux participants de comprendre les principes fondamentaux de cette architecture, ainsi que d'acquérir les connaissances nécessaires pour mettre en œuvre un modèle CNN en utilisant Python. Ils ont également été sensibilisés aux applications et aux perspectives futures des CNN dans le domaine de la vision par ordinateur.
Un réseau de neurones artificiels ou Neural Network est un système informatique s’inspirant du fonctionnement du cerveau humain pour apprendre. Découvrez tout ce que vous devez savoir sur cette technologie d’intelligence artificielle de la famille du Deep Learning.
Les réseaux de neurones convolutifs CNNSALMARACHIDI1
La présentation a débuté par une introduction aux Réseaux de Neurones Convolutifs (CNN), en soulignant leur importance croissante dans le domaine de l'intelligence artificielle et du traitement d'images. Les CNN sont particulièrement adaptés à la reconnaissance d'images, à la classification d'objets et à d'autres tâches liées à la vision par ordinateur.
La première partie de la présentation a abordé les fondements des CNN. Les participants ont été familiarisés avec les concepts de base des réseaux de neurones et ont pu comprendre les différences entre les réseaux de neurones classiques et les CNN. Un accent particulier a été mis sur l'architecture spécifique des CNN, comprenant des couches de convolution, des couches de pooling et des couches entièrement connectées. Les participants ont compris comment les opérations de convolution permettent d'extraire des caractéristiques importantes des images, tandis que les opérations de pooling réduisent la dimensionnalité et conservent les informations essentielles.
Dans la deuxième partie de la présentation, l'accent a été mis sur l'implémentation pratique des CNN en utilisant le langage de programmation Python. Les participants ont été guidés à travers les étapes de construction d'un modèle CNN en utilisant des bibliothèques populaires telles que TensorFlow ou PyTorch. Ils ont appris à définir les couches de convolution, les couches de pooling et les couches entièrement connectées, ainsi qu'à configurer les hyperparamètres du modèle.
La présentation a également abordé des sujets connexes tels que l'entraînement et l'évaluation des modèles CNN, l'application de la technique de transfert d'apprentissage pour des tâches spécifiques, et les défis liés à la mise à l'échelle des CNN pour des ensembles de données plus volumineux.
En résumé, la présentation sur les Réseaux de Neurones Convolutifs (CNN) a permis aux participants de comprendre les principes fondamentaux de cette architecture, ainsi que d'acquérir les connaissances nécessaires pour mettre en œuvre un modèle CNN en utilisant Python. Ils ont également été sensibilisés aux applications et aux perspectives futures des CNN dans le domaine de la vision par ordinateur.
Un réseau de neurones artificiels ou Neural Network est un système informatique s’inspirant du fonctionnement du cerveau humain pour apprendre. Découvrez tout ce que vous devez savoir sur cette technologie d’intelligence artificielle de la famille du Deep Learning.
Un réseau de neurones récurrent (RNN, recurrent neural network) est un type de réseau de neurones artificiels principalement utilisé dans la reconnaissance automatique de la parole, dans l'écriture manuscrite et dans le traitement automatique du langage naturel, en particulier dans la traduction automatique.
Les RNN sont conçus de manière à reconnaître les caractéristiques séquentielles et pour prédire le scénario suivant le plus probable.
Les réseaux LSTM (Long Short Term Memory ou mémoire à long terme et à court terme ) sont un type spécial de RNN, capable d'apprendre les dépendances à long terme. Ils ont été introduits par Hochreiter et Schmidhuber en 1997, et ont été par la suite affinés et popularisés à travers plusieurs travaux. Ils fonctionnent extrêmement bien sur une grande variété de problèmes et sont maintenant largement utilisés.
Lien pour la version vidéo :
https://youtube.com/playlist?list=PLzjg2z2kYUrjcL_UhvQawGGB85UA9rtNO
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...Juba Ait idir
L’objectif lors de ce mémoire, est de pouvoir classifier des image IRM de tumeurs cérébrales. Cela en s’appuyant sur la puissance des paramètres de modèles du Deep Learning et quelques mesures de performances résultantes du traitement de l’apprentissage automatique.
Classifier des tumeurs cérébrales, en développant deux modèles de réseaux de neurones convolutifs (classique et transfert learning).
La problématique posée: Quels sont les paramètres sensibles pour augmenter les performances de ces modèles ?
A convolutional neural network (CNN, or ConvNet) is a class of deep, feed-forward artificial neural networks that has Successfully been applied to analyzing visual imagery
Ce cours est une introduction au traitements informatique des images. Le traitement d'images consiste à changer la nature d'une image, afin de:
1.Améliorer de l’information contenue pour aider à l'interprétation par l'homme,
2.La rendre plus adaptée pour une perception autonome de la machine.
C'est une branche du Machine Learning très prometteuse. Que ce soit pour reconnaître des visages sur des images, analyser des textes et les interpréter automatiquement ou encore avoir des voitures qui conduisent toutes seules, les applications du Deep Learning sont nombreuses. Aujourd'hui, nous vous proposons un workshop qui va vous permettre de comprendre ce domaine et voir en quoi nous pourrions concretement l'utiliser.
Ce support correspond à une conférence qui s'intéresse à la mise en œuvre des Framework de Machines et Deep learning pour les applications web et mobiles. Principalement les Framwork TensorFlow.JS et DeepLeanring4J.
Je l'ai présentée au début dans mon établissement auquel j’appartiens, l’ENSET Mohammedia puis dans la conférence Carrefour des informaticiens, organisée par les étudiants de l'AIAC :
Académie internationale Mohammed VI de l'aviation civile.
et le code source est publié sur mon compte GitHub. La suite de cette série sera sans doute publiées dans les prochaines conférences :
https://github.com/mohamedYoussfi/angular-tensorflowJS
https://github.com/mohamedYoussfi/angular-ml5.js-mobilenet-feature-extractor
https://github.com/mohamedYoussfi/deeplearning4j-cnn-mnist-app
Les vidéos de la conférence sont publiée dans ma chaîne vidéo : https://www.youtube.com/user/mohamedYoussfi
Le plan de la présentation est suivant :
- Quelques Concepts de base à comprendre :
- Machines er Deep Learning, Les réseaux de neurones artificiels, MLP et CNN
- Les problèmes et les contraintes posées par les algorithmes d’apprentissage basés sur les réseaux de neurones
- Principaux catalyseurs qui ont redynamisé l’intelligence artificielle :
- Calcul de hautes performances à savoir les architectures massivement parallèles et les systèmes distribués
- La Virtualisation et le cloud Computing
- Big Data, IOT et Applications Mobiles
- Framework et Algorithmes de Machines et Deep Learning
- Réseaux et Télécommunications
- Open source
- L’écosystème des Framework de Machines et Deep Learning.
- L’architecture du Framwork TensorFlow
- Comment développer des applications de machines et Deep Learning pour les applications Web et Mobile en utilisant TensorFlow.JS et ML.JS
- Comment développer des applications de machines et Deep Learning pour les applications Java JEE en utilisant le Framework DeepLearning4J
Mot Clés :
Intelligence Artificielle, Machines learning, deep learning, TensorflowJS, Deeplearning4j, java, java script, angular
Un réseau de neurones récurrent (RNN, recurrent neural network) est un type de réseau de neurones artificiels principalement utilisé dans la reconnaissance automatique de la parole, dans l'écriture manuscrite et dans le traitement automatique du langage naturel, en particulier dans la traduction automatique.
Les RNN sont conçus de manière à reconnaître les caractéristiques séquentielles et pour prédire le scénario suivant le plus probable.
Les réseaux LSTM (Long Short Term Memory ou mémoire à long terme et à court terme ) sont un type spécial de RNN, capable d'apprendre les dépendances à long terme. Ils ont été introduits par Hochreiter et Schmidhuber en 1997, et ont été par la suite affinés et popularisés à travers plusieurs travaux. Ils fonctionnent extrêmement bien sur une grande variété de problèmes et sont maintenant largement utilisés.
Lien pour la version vidéo :
https://youtube.com/playlist?list=PLzjg2z2kYUrjcL_UhvQawGGB85UA9rtNO
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...Juba Ait idir
L’objectif lors de ce mémoire, est de pouvoir classifier des image IRM de tumeurs cérébrales. Cela en s’appuyant sur la puissance des paramètres de modèles du Deep Learning et quelques mesures de performances résultantes du traitement de l’apprentissage automatique.
Classifier des tumeurs cérébrales, en développant deux modèles de réseaux de neurones convolutifs (classique et transfert learning).
La problématique posée: Quels sont les paramètres sensibles pour augmenter les performances de ces modèles ?
A convolutional neural network (CNN, or ConvNet) is a class of deep, feed-forward artificial neural networks that has Successfully been applied to analyzing visual imagery
Ce cours est une introduction au traitements informatique des images. Le traitement d'images consiste à changer la nature d'une image, afin de:
1.Améliorer de l’information contenue pour aider à l'interprétation par l'homme,
2.La rendre plus adaptée pour une perception autonome de la machine.
C'est une branche du Machine Learning très prometteuse. Que ce soit pour reconnaître des visages sur des images, analyser des textes et les interpréter automatiquement ou encore avoir des voitures qui conduisent toutes seules, les applications du Deep Learning sont nombreuses. Aujourd'hui, nous vous proposons un workshop qui va vous permettre de comprendre ce domaine et voir en quoi nous pourrions concretement l'utiliser.
Ce support correspond à une conférence qui s'intéresse à la mise en œuvre des Framework de Machines et Deep learning pour les applications web et mobiles. Principalement les Framwork TensorFlow.JS et DeepLeanring4J.
Je l'ai présentée au début dans mon établissement auquel j’appartiens, l’ENSET Mohammedia puis dans la conférence Carrefour des informaticiens, organisée par les étudiants de l'AIAC :
Académie internationale Mohammed VI de l'aviation civile.
et le code source est publié sur mon compte GitHub. La suite de cette série sera sans doute publiées dans les prochaines conférences :
https://github.com/mohamedYoussfi/angular-tensorflowJS
https://github.com/mohamedYoussfi/angular-ml5.js-mobilenet-feature-extractor
https://github.com/mohamedYoussfi/deeplearning4j-cnn-mnist-app
Les vidéos de la conférence sont publiée dans ma chaîne vidéo : https://www.youtube.com/user/mohamedYoussfi
Le plan de la présentation est suivant :
- Quelques Concepts de base à comprendre :
- Machines er Deep Learning, Les réseaux de neurones artificiels, MLP et CNN
- Les problèmes et les contraintes posées par les algorithmes d’apprentissage basés sur les réseaux de neurones
- Principaux catalyseurs qui ont redynamisé l’intelligence artificielle :
- Calcul de hautes performances à savoir les architectures massivement parallèles et les systèmes distribués
- La Virtualisation et le cloud Computing
- Big Data, IOT et Applications Mobiles
- Framework et Algorithmes de Machines et Deep Learning
- Réseaux et Télécommunications
- Open source
- L’écosystème des Framework de Machines et Deep Learning.
- L’architecture du Framwork TensorFlow
- Comment développer des applications de machines et Deep Learning pour les applications Web et Mobile en utilisant TensorFlow.JS et ML.JS
- Comment développer des applications de machines et Deep Learning pour les applications Java JEE en utilisant le Framework DeepLearning4J
Mot Clés :
Intelligence Artificielle, Machines learning, deep learning, TensorflowJS, Deeplearning4j, java, java script, angular
Séminaire sur Machines, Deep Learning For Web Mobile and Embedded Application with DL4J and TFJS :
Les vidéos de ce séminaire sont publiée sur les adresses suivantes :
- https://www.youtube.com/watch?v=uGSa4NigFKs
- https://www.youtube.com/watch?v=2yRAu78slgc
- https://www.youtube.com/watch?v=1ThjK3xLWII
- https://www.youtube.com/watch?v=N7LCa6aiqFs
Ce séminaire a été animé à l’ENSET de Mohammedia, dans le cadre du Projet Européen H2020 CybSPEED (Cyber Physical Systems for Pedagogical Rehabilitation in Special Education) dans lequel notre laboratoire de recherche SSDIA (Signaux, Systèmes Distribués et Intelligence Artificielle) est partenaire aux cotés des pays partenaires (France, Espagne, Grèce, Bulgarie, Japan et Chillie). Un projet Multi-disciplinaire autour de l'Intelligence Artificielle, visant à créer un robot destiné à assister les personnes à besoins spécifiques, en particulier les personnes atteintes par la maladie de l’autisme. Ce séminaire traite deux thématiques principales Lattice Computing animé par le professeur Vassillis Kaburlasos, EMaTTech, KAVALA, GRECE et Outils de mise en oeuvre de Machines et Deep Learning pour les applications Web Mobiles et embarquées, animé par moi même. Ce séminaire a un caractère de formation, de sensibilisation et de maîtrise des outils de développement des algorithmes de l'IA pour un public hétérogène Multi-disciplinaire (Informatique, Génie Electrique, Génie Mécanique, Ingénierie Pédagogique, Biologie, Chimie, etc..) constitué principalement des doctorants de notre Labo SSDIA, d'autres Labo affiliés au CeDOC de la FST de Mohammedia ainsi que des enseignants chercheurs de l'ENSET, de EMaTTech Kavala, Grèce et d'autres enseignants chercheurs venant de d'autres centres comme CRMF de Marrakech.
Ce séminaire vise particulièrement à expliquer quelques concepts liés à l’intelligence artificielle. Principalement Machines et Deep Learning et comment mettre en œuvre les Frameworks de machines et deep lerning dans des applications Web, Mobile et embarquées en utilisant Principalement Deeplearning4J pour les applications Java coté backend ou coté FrontEnd Desktop, Web ou Mobiles Android, et TensorFlowJS pour les applications Java Scripts coté Browser Web et Coté Applications Mobiles Hybrides ou NodeJS coté Backend.
Cette série de vidéo aborde les éléments suivants :
• Concepes généraux de l’Intelligence Artificielle, L’IA Distribuée et Systèmes Multi Agents
• Concepts fondamentaux de Machines et Deep Learning
• Réseaux de neurones artificiels : MLP, CNN
• Période d’incertitude des réseaux de neurones
• Catalyseur de l’Intelligence Artificielle
o Architectures Parallèles GPU (CUDA, OpenCL)
o Systèmes Distribués
o Application Mobile et IOT
o Algorithmes de MDL
o Framework de MDL
• Machines et Deep Learning avec TensorFlowJS : Architecture
o Architecture et Mise en oeuvre
• Machines et Deep Learning avec le Framework DL4J
o Architecture et Mise en oeuvre
Étude et résolution numérique de deux modèles basés sur des équations aux dér...Ayoub Boudlal
Ce projet traite le débruitage d’images numériques corrompues en utilisant deux modèles basés sur des équations aux dérivées partielles. Le premier modèle étudié est l’équation de la chaleur, il repose sur un processus de diffusion isotrope pour un lissage de l’image traitée. Ce modèle présente un inconvénient majeur car il ne fait pas distinction entre le bruit et les contours de l’image. Pour remé- dier à cet inconvénient, la notion de diffusion anisotrope a été introduite, dont le principe est de diffuser fortement dans les zones à faibles gradients (zones ho- mogènes), et faiblement dans les zones à forts gradients (contours), c’est le cas du modèle de Pérona-Malik.
La résolution de ces modèles est effectuée en utilisant la méthode des différences finies. Les schémas utilisés sont implémentés sur Matlab et une comparaison de ces schémas est faite.
Enfin, un aperçu sur l’utilisation de la boîte à outils "Imagerie" pour le traitement d’images est présenté.
Dans cette courte présentation je vous introduit aux fondements du Machine Learning, tel que le percepton, les mathématiques de l'apprentissage machine et plus.
Rapport projet Master 2 - Intelligence ArtificielleYanis Marchand
Découverte de l'apprentissage par réseaux de neurones à travers une application concrète : la reconnaissance vocale.
Les données d'entraînement sont des enregistrements vocaux de personnes dans différents états émotionnels. Elles sont traitées par Transformée de Fourier et le réseau est entraîné à renvoyer l'état émotionnel de la personne enregistrée pour un échantillon donné.
Ce projet a été codé sous MatLab.
predict if a customer will remain faithful with a large telephone company in the north America or he will leave it based on some predictive models such as logistic regression, support vector machines, neural networks and decision trees.
Overview of Interpretability Approaches in Deep learning: Focus on Convnet ar...Dr Hajji Hicham
Slides of a tutorial I've given during the AI IndabaX Morocco conference, 30 April 2019: An Overview of Interpretability Approaches in Deep learning, with a focus in convnet. I review attribution approaches such as Perturbation, Gradient, and Pertinence techniques. and many others.
Code used in this session is here: https://github.com/hajjihi/IndabaxMorocco/blob/master/Convnet_Interpretability_IndabaXMorocco.ipynb
Similaire à Convolutional Neural Networks (CNNs) (20)
5. Qu'est ce qu'un réseau de neurones convolutive ?
Il s'agit d'une classe de
Deep Learning.
01
Il est similaire au réseau
neuronal de base, le CNN
possède également des
paramètres d'apprentissage
comme le réseau neuronal,
c'est-à-dire des poids, des
biais, etc.
02
Les réseaux de neurones convolutifs sont
une des catégories principales pour faire
de la reconnaissance d'images, des
classifications d'images, des détections
d'objets, reconnaissance de visages, etc.
03
Les 3 composants de base
définissent le CNN :
-La couche de convolution
-La couche de mise en
commun
-La couche de sortie (ou
couche entièrement
connectée)
04
6. Les composants de base de couches du CNN :
Layers of CNN
01
Fully connected layer
04
SoftMax/logistic layer
05
Output layer
07
Input layer
convolutional layer (Conv)
Pooling layer
02
03
7. Les CNN sont spécialement conçus pour traiter des images en entrée
8. Couche d'entrée (Input Layer) : Cette couche reçoit les données
d'entrée, généralement représentées sous forme d'images. Les
images sont généralement représentées sous la forme d'un tenseur
multidimensionnel, par exemple, pour des images en niveaux de
gris de taille 28x28, le tenseur serait de dimension (28, 28, 1), où 1
représente le canal de couleur.
Couche d'entrée (Input Layer)
9. La couche convolutive
La convolution, d’un point de vue simpliste, est le fait d’appliquer un filtre mathématique à une
image. D’un point de vue plus technique, il s’agit de faire glisser une matrice par-dessus une
image, et pour chaque pixel, utiliser la somme de la multiplication de ce pixel par la valeur de la
matrice. Cette technique nous permet de trouver des parties de l’image qui pourraient nous être
intéressantes. Prenons la Figure ci-dessous à gauche comme exemple d’image et la Figure à
droite comme exemple de
1 0 1
0 1 0
1 0 1
5 2 1 3 5
4 3 2 3 4
0 2 1 2 2
3 3 2 3 2
2 1 3 2 2
16. Stride (pas) :
Le stride fait référence à la taille du pas
utilisé lorsque le filtre de convolution se
déplace à travers les données d'entrée
ou les cartes de caractéristiques. Il
détermine la quantité de déplacement
spatial entre les applications
successives du filtre. Un stride de 1
signifie que le filtre se déplace d'un
pixel à la fois. Un stride de 2 signifie
qu'il se déplace de deux pixels à la fois,
et ainsi de suite. Un stride plus élevé
réduit la dimension spatiale de la sortie.
Padding (Rempliçage) :
Le padding fait référence à l'ajout de zéros autour des
bords de l'image ou des cartes de caractéristiques
avant d'appliquer la convolution. Il est utilisé pour
préserver la taille spatiale de la sortie et éviter une
réduction excessive de la dimensionnalité. Le padding
permet de conserver les informations sur les bords de
l'image et peut être utile pour maintenir la résolution
spatiale ou pour améliorer la performance du modèle.
Deux types courants de padding sont le "valid
padding" (sans remplissage) où aucun zéro n'est
ajouté et le "same padding" où suffisamment de zéros
sont ajoutés pour que la taille de l'entrée et de la
sortie soit la même.
&
19. Valid padding (remplissage valide) :
Dans ce cas, aucun padding n'est
ajouté à l'image. Lorsque le filtre est
appliqué, seuls les pixels entièrement
contenus dans l'image sont
considérés. L'image résultante après
la convolution est plus petite que
l'image d'origine. Cela peut entraîner
une perte d'informations sur les bords
de l'image.
Same padding (remplissage
identique) : Avec ce type de padding,
des pixels sont ajoutés autour de
l'image de manière à ce que la taille
de l'image après la convolution soit
identique à celle de l'image d'origine.
Pour atteindre cela, la quantité de
padding ajoutée dépend de la taille
du filtre et de la façon dont le filtre se
déplace sur l'image. Le remplissage
identique aide à préserver les
informations sur les bords de l'image.
Padding
20.
21.
22. ReLu est une fonction qui doit être appliquée à chaque pixel d’une image après convolution, et
remplace chaque valeur négative par un 0. Si cette fonction n’est pas appliquée, la fonction créée
sera linéaire et le problème XOR persiste puisque dans la couche de convolution, aucune fonction
d’activation n’est appliquée.
ReLu – Unité linéaire rectifiée
23. Comment choisir les features ?
Contrairement aux méthodes traditionnelles, les features ne
sont pas pré-définies selon un formalisme particulier mais
apprises par le réseau lors la phase d'entraînement ! Les noyaux
des filtres désignent les poids de la couche de convolution. Ils
sont initialisés puis mis à jour par rétropropagation du gradient.
C'est là toute la force des réseaux de neurones convolutifs :
ceux-ci sont capables de déterminer tout seul les éléments
discriminants d'une image, en s'adaptant au problème posé. Par
exemple, si la question est de distinguer les chats des chiens,
les features automatiquement définies peuvent décrire la forme
des oreilles ou des pattes.
24. CNN: Pooling
Recherche de détails plus « grossiers », de plus grandes « structures » dans l’image
Max-pooling de taille 𝑙 : on prend l’élément maximal de chaque sous-tableau de taille 𝑙
Sum-pooling de taille 𝑙 : on fait la somme de tous les éléments de chaque sous
tableau de taille 𝑙
Le Pooling : opération utilisée pour réduire la dimension
25. Couche fully-connected
La couche fully-connected constitue toujours la dernière couche d'un réseau de neurones. Ce
type de couche reçoit un vecteur en entrée et produit un nouveau vecteur en sortie. Pour cela,
elle applique une combinaison linéaire puis éventuellement une fonction d'activation aux valeurs
reçues en entrée.
La dernière couche fully-connected permet de classifier l'image en entrée du réseau : elle
renvoie un vecteur de taille N , où N est le nombre de classes dans notre problème de
classification d'images. Chaque élément du vecteur indique la probabilité pour l'image en entrée
d'appartenir à une classe.
Par exemple, si le problème consiste à distinguer les chats des chiens, le vecteur final sera de
taille 2 : le premier élément (respectivement, le deuxième) donne la probabilité d'appartenir à la
classe "chat" (respectivement "chien"). Ainsi, le vecteur [0.9 0.1] signifie que l'image a 90% de
chances de représenter un chat.
Pour calculer les probabilités, la couche fully-connected multiplie donc chaque élément en
entrée par un poids, fait la somme, puis applique une fonction d'activation (logistique si N=2 ,
softmax si N>2) : Ce traitement revient à multiplier le vecteur en entrée par la matrice contenant
les poids. Le fait que chaque valeur en entrée soit connectée avec toutes les valeurs en sortie
explique le terme fully-connected.
26. Architecture d’un CNN
Un réseau de neurones à convolution peut avoir plusieurs étapes de
convolution, ReLu et Pooling. Une règle à respecter est que la fonction de
ReLu doit obligatoirement être appliquée après une étape de convolution
afin d’avoir une réponse non-linéaire, mais le Pooling n’est pas obligatoire.
Après être passé par toutes les étapes de convolution, ReLu et Pooling,
nous pouvons passer à la classification des images. La dernière phase
consiste à envoyer tous les pixels dans un réseau de neurones
multicouches. Étant donné que nous avons pu récupérer les parties les
plus importantes d’une image que nous avons condensée, la phase de
classification sera beaucoup plus performante qu’en utilisant un réseau de
neurones artificiels sans convolution.
27. Un CNN est simplement un empilement de plusieurs couches de convolution, pooling,
correction ReLU et fully-connected. Chaque image reçue en entrée va donc être filtrée,
réduite et corrigée plusieurs fois, pour finalement former un vecteur. Dans le problème
de classification, ce vecteur contient les probabilités d'appartenance aux classes.
Tous les réseaux de neurones convolutifs doivent commencer par une couche de
convolution et finir par une couche fully-connected. Les couches intermédiaires
peuvent s'empiler de différentes manières, à condition que la sortie d'une couche ait la
même structure que l'entrée de la suivante. Par exemple, une couche fully-connected,
qui renvoie toujours un vecteur, ne peut pas être placée avant une couche de pooling,
puisque cette dernière doit recevoir une matrice 3D.
En général, un réseau de neurones empile plusieurs couches de convolution et de
correction ReLU, ajoute ensuite une couche de pooling (facultative), et répète ce motif
plusieurs fois ; puis, il empile des couches fully-connected.
Plus il y a de couches, plus le réseau de neurones est "profond" : on est en plein dans le
Deep Learning!
30. Pour résumer :
• Réseaux de neurones convolutifs :
Permet d’extraire les caractéristiques pertinentes dans les inputs : caractéristiques qui sont
invariantes par translation (forme dans les images), corrélation locale.
• La partie de la couche convolutive d'un CNN consiste à appliquer des filtres de convolution sur les
données d'entrée pour extraire des caractéristiques pertinentes, suivi d'une fonction d'activation non
linéaire pour introduire de la non-linéarité dans le modèle. Cette opération est répétée avec plusieurs
filtres pour capturer des informations à différentes échelles et niveaux d'abstraction, ce qui permet au
CNN d'apprendre des représentations hiérarchiques des données.
• le stride contrôle le déplacement spatial lors de la convolution, tandis que le padding permet de
contrôler la taille de la sortie en ajoutant des zéros autour des bords de l'entrée.
• la couche fully-connected d'un CNN est responsable de la classification en utilisant les caractéristiques
extraites par les couches convolutives.
31. Conclusion
Finalement, le principe de fonctionnement d’un CNN est assez
facile à comprendre, mais paradoxalement, la mise en place d’un
tel procédé pour classifier des images demeure très complexe
étant donné le nombre considérable de paramètres à définir :
nombre, taille, déplacement des filtres, choix de la méthode de
pooling, choix du nombre de couches de neurones, nombre de
neurones par couches, etc.