Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
1 hour to browse the algos stars of machine learning. No code, big concepts with a little math. Linear regression, classification (logistic regression / svm / tree), neural network, deep learning...
Les 10 plus populaires algorithmes du machine learningHakim Nasaoui
Une présentation très simple montre les 10 algorithmes d’apprentissage automatique les plus populaires, qui donnent leurs définitions, leurs avantages, leurs inconvénients.
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.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
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.
1 hour to browse the algos stars of machine learning. No code, big concepts with a little math. Linear regression, classification (logistic regression / svm / tree), neural network, deep learning...
Les 10 plus populaires algorithmes du machine learningHakim Nasaoui
Une présentation très simple montre les 10 algorithmes d’apprentissage automatique les plus populaires, qui donnent leurs définitions, leurs avantages, leurs inconvénients.
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.
Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.
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.
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.
Démystifions le machine learning avec spark par David Martin pour le Salon B...Ippon
Les volumes de données permettent d’envisager de nouveaux usages, pour la plupart rendus accessibles grâce aux algorithmes de Machine Learning. Découvrez ce qu’est le Machine Learning par de multiples exemples. Comprenez les enjeux autour de la donnée et comment passer de la donnée brute aux prédictions en identifiant les différentes étapes intermédiaires. Enfin, découvrez comment mettre ces concepts en oeuvre avec une présentation des outils à disposition aujourd’hui, et un focus sur Spark, son architecture et les possibilités offertes autour du Machine Learning.
Ce cours est le premier en lien avec l'algorithmique présente les algorithmes et fonctions récursives ainsi que le type abstrait de données arbre. La première partie revient sur les notions de problème, algorithhme et spécification. La deuxième partie présente la récursion et de nombreux exemples. Enfin, la troisième partie présente le type abstrait de données arbre qui permet d'organiser des données de manière hiérarchique. Le cours se termine avec une introduction aux notions de backtracking et lookahead.
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
ALT.NET Modéliser Parallèle avec C# 4.0Bruno Boucard
Dans cette session présentée le 21 avril 2010 à Paris dans les locaux d'OCTO Technology. Vous découvrirez les règles essentielles et les principaux patterns parallèles qui vous aideront à écrire en C# 4.0 des applications parallèles plus évolutives et plus faciles à maintenir pour retrouver le Free Lunch
3. 3
Arbres de décision
Une structure de données utilisée comme modèle pour la
classification [Quinlan]
Méthode récursive basée sur diviser-pour-régner pour créer des
sous-groupes (plus) purs (un sous-groupe est pur lorsque tous les
éléments du sous-groupe appartiennent à la même classe)
Construction du plus petit arbre de décision possible
Nœud = Test sur un attribut
Une branche pour chaque valeur d’un attribut
Les feuilles désignent la classe de l’objet à classer
Taux d’erreur: La proportion des instances qui n’appartiennent pas
à la classe majoritaire de la branche
Problèmes: Choix de l’attribut, terminaison
4. 4
Algorithmes
Les deux algorithmes les plus connus et les plus
utilisés (l'un ou l'autre ou les deux sont présents dans
les environnements de fouille de données) sont CART
(Classification And Regression Trees [BFOS84]) et C5
(version la plus récente après ID3 et C4.5 [Qui93]).
[BFOS84] L. Breiman, J. H. Friedman, R. A. Olshen,
and C. J. Stone. Classification and regression trees.
Technical report, Wadsworth International, Monterey,
CA, 1984.
[Qui93] J. R. Quinlan. C4.5: Programs for Machine
Learning. Morgan Kaufmann, San Mateo, CA, 1993.
6. 6 I.H. Witten and E. Frank, “Data Mining”, Morgan Kaufmann Pub., 2000.
Météo et match de foot
Attribut but
2 classes: yes et
no
Prédire si un
match de foot va
avoir lieu ou non
Température est
un nominal
7. 7
2 classes: yes et no
Température est un numérique
Météo et match de foot
I.H. Witten and E. Frank, “Data Mining”, Morgan Kaufmann Pub., 2000.
11. 11
Transformations
Arbre de décision Règles (Évident)
– Les arbres de décision représentent une collection
d’implications
Règles Arbre de décision (Non évident)
Optimisations toujours possibles
12. 12
Arbre de décision Règles
Attribution d’un prêt suivant la moyenne des soldes
courants (MS), l’age et la possession d’autres comptes
If MS > 5000 then Pret = Yes
If MS <= 5000 and age <= 25 then
Pret = No
If MS <= 5000 and age > 25 and
autres_comptes = Yes then Pret = Yes
If MS <= 5000 and age > 25 and
autres_comptes = No then Pret = No
true
true
false
false
false
true
13. 13
Représentation d’une expression
par un arbre de décision
Certaines fonctions ne sont pas facilement
représentées par des arbres de décision
Exemple:
– La fonction paire définie par: le résultat est vrai si le nombre
d’attributs est pair
Toute formule de la logique propositionnelle peut être
représentée par un arbre de décision
– La logique propositionnelle est construite à partir de:
Variables propositionnelles
D’opérateurs logiques: and, or, not, (implication),
(équivalence)
14. 14
Règles Arbre de décision
Exemple:
if X and Y then A
if X and W and V then B
if Y and V then A
Peuvent être représentées par un arbre de décision.
De plus, Les règles peuvent être combinées en:
if Y and (X or V) then A
if X and W and V then B
Et on obtient un autre arbre de décision de ces 2
règles.
19. 19
Pour quels types de données?
On se restreint d’abord aux données
nominales seulement
Extension aux numériques:
– Il est possible de traiter les numériques en les
transformant en nominaux (ou ordinaux) par
discrétisation
20. 20
Algorithme
On considère un nœud
On sélectionne un attribut pour ce nœud
On crée une branche pour chaque valeur de
cet attribut
Pour chaque branche, on regarde la pureté de
la classe obtenue
On décide si on termine la branche ou non
Si on ne termine pas le processus est répété
21. 21
Algorithme
algorithm LearnDecisionTree(examples, attributes, default) returns a décision tree
inputs: examples, a set of examples
attributes, a set of attributes
default, default value for goal attribute
if examples is empty then return leaf labeled by default
else if all examples have same value for goal attribute // pure class
then return leaf labeled by value
else
bestatt = ChooseAttribute(attributes, examples) // to be defined
tree = a new décision tree with root test bestatt
for each value vi of bestatt do
examplesi = {éléments of examples with best = vi}
subtree = LearnDecisionTree(examplesi, attributes – bestatt,
MajorityValue(examples))
add a branch to tree with label vi and subtree subtree
return tree
MajorityValue: classe
majoritaire
22. 22
Analyse de l’algorithme
m : le nombre d’attributs
n : le nombre d’exemples/instances
Hypothèse: La hauteur de l’arbre est O(log n)
A chaque niveau de l’arbre, n instances sont
considérées (best = vi) (pire des cas)
– O(n log n) pour un attribut dans l’arbre complet
Coût total: O(m n log n) car tous les attributs
sont considérés (pire des cas)
23. 23
Combien d’arbres de décision?
Considérons m attributs booléens (ne contenant pas le
but)
Nous pouvons construire un arbre de décision pour
chaque fonction booléenne avec m attributs
Il y a 2m façons de donner des valeurs aux attributs
Le nombre de fonctions est le nombre de sous-
ensembles dans un ensemble à m éléments
Donc, il y a 22m
arbres de décision possibles.
Comment sélectionner le meilleur?
24. 24
Théorie de l’information
Besoin d’une méthode pour bien choisir l’attribut
[Shannon & Weaver, 1949]
Mesure de l’information en bits (pas dans le sens
ordinaire de bit – 0 ou 1)
– L’information peut être un décimal
A chaque étape,à chaque point de choix dans l’arbre,
on va calculer le gain d’information
– L’attribut avec le plus grand gain d’information est sélectionné
Méthode ID3 pour la construction de l’arbre de
décision
25. 25
Terminaison
Tous les attributs ont été considérés
Il n’est plus possible d’obtenir de gain
d’information
Les feuilles contiennent un nombre prédéfini
d’éléments majoritaires
Le maximum de pureté a été atteint
– Toutes les instances sont dans la même
classe
L’arbre a atteint une hauteur maximum
26. 26 I.H. Witten and E. Frank, “Data Mining”, Morgan Kaufmann Pub., 2000.
Exemple: Météo et match de foot
Attribut but
2 classes: yes et
no
Température est
un nominal
On veut pouvoir
décider/prédire si
un match de foot
va avoir lieu ou
pas suivant la
météo
28. 28
Information = Entropie
2
2
1
1
2
1 log
log
2
log
1
)
,
( p
p
p
p
p
p
Entropy
pi est la probabilité de la classe i
pi = # d’occurrences de i / total # d’occurrences
Cette formule est généralisable
29. 29
Entropie pour 3 probabilités
))
,
(
)
((
)
,
(
)
,
,
(
log
log
log
2
log
1
)
,
,
(
3
2
3
3
2
2
3
2
3
2
1
3
2
1
3
3
2
2
1
1
3
2
1
p
p
p
p
p
p
Entropy
p
p
p
p
p
Entropy
p
p
p
Entropy
p
p
p
p
p
p
p
p
p
Entropy
Propriété de l’entropie
30. 30
Première étape: Information Outlook
bits
Info
Info
Entropy
Info
Entropy
Info
971
.
0
])
3
,
2
([
)
6
.
0
log(
6
.
0
)
4
.
0
log(
4
.
0
2
log
1
])
3
,
2
([
)
6
.
0
,
4
.
0
(
])
3
,
2
([
5
3
,
5
2
])
3
,
2
([
bits
Info
bits
Info
971
.
0
])
2
,
3
([
0
.
0
])
0
,
4
([
Similarly:
Outlook =
“Sunny”
Outlook =
“Overcast”
Outlook =
“Rainy”
33. 33
Information sans utiliser l’arbre
bits
Info
Entropy
Info
940
.
0
])
5
,
9
([
14
5
,
14
9
])
5
,
9
([
Outlook
34. 34
Gain d’information pour Outlook
bits
outlook
gain
outlook
gain
Info
Info
outlook
gain
247
.
0
)
(
693
.
0
940
.
0
)
(
])
2
,
3
[
],
0
,
4
[
],
3
,
2
([
])
5
,
9
([
)
(
De même:
bits
windy
gain
bits
humidity
gain
bits
e
temperatur
gain
048
.
0
)
(
152
.
0
)
(
029
.
0
)
(
Outlook est
choisi
35. 35
Étape suivante
Sélection d’un deuxième attribut
On peut examiner:
– Température, Humidity ou Windy pour Outlook =
“sunny”
– Gain(“Température”) = 0.571 bits
– Gain(“Humidity”) = 0.971 bits
– Gain(“Windy”) = 0.020 bits
Et on continue…
Humidity est choisi
38. 38
Problèmes lies au calcul du gain
Les attributs qui ont de nombreuses valeurs possibles
sont privilégiés
– Exemple: Les attributs clés
Pour corriger ce problème, on utilise une autre mesure
le rapport de gain (gain ratio)
– Calcul de l’information de branchement dans l’arbre en
utilisant:
Original Gain / Information de branchement
– Choisir l’attribut avec le plus grand rapport de gain
40. 40
Calcul des gains de rapport
I.H. Witten and E. Frank, “Data Mining”, Morgan Kaufmann Pub., 2000.
Outlook est choisi
41. 41
Évaluer les arbres de décision
2 types d’évaluation
– Les performances d’un modèle
– Les performances de la technique de FDD
Quelle mesure utiliser?
– Taille du modèle
– Nombre d’erreurs
42. 42
Extensions de l’algorithme
Comment traiter:
– Les attributs numériques
– Les valeurs manquantes
Comment simplifier le modèle pour éviter les
bruits?
Comment tolérer les bruits?
Comment interpréter les arbres de décision?
43. 43
Comment traiter les attributs
numériques?
Les attributs numériques sont transformés en ordinaux
/ nominaux. Ce processus est appelé discrétisation
Les valeurs des attributs sont divisées en intervalles
– Les valeurs des attributs sont triées
– Des séparations sont placées pour créer des intervalles /
classes pur/e/s
– On détermine les valeurs des attributs qui impliquent un
changement de classes
Ce processus est très sensible au bruit
Le nombre de classes doit être contrôlé
– Solution: On spécifie un nombre minimum d’éléments par
intervalle
– On combine les intervalles qui définissent la même classe
44. 44
Exemple: Les températures
Étape 1: Tri et création des intervalles
64 | 65 | 68 69 70 | 71 72 | 72 75 75 | 80 | 81 83 | 85
Y | N | Y Y Y | N N | Y Y Y | N | Y Y | N
Étape 2: Les anomalies sont traitées
64 | 65 | 68 69 70 | 71 72 72 | 75 75 | 80 | 81 83 | 85
Y | N | Y Y Y | N N Y | Y Y | N | Y Y | N
8 intervalles
Étape 3: Un minimum de 3 éléments (de la même classe) par intervalle
64 65 68 69 70 | 71 72 72 75 75 | 80 81 83 85
Y N Y Y Y | N N Y Y Y | N Y Y N
3 intervalles
Étape 4: Combiner les intervalles
64 65 68 69 70 71 72 72 75 75 | 80 81 83 85
Y N Y Y Y N N Y Y Y | N Y Y N
2 intervalles
Étape 5: Changement de classe pour une température de 77.5 ((75 + 80) / 2)
45. 45
Exercice
Faire de même pour les humidités suivantes:
65 70 70 70 75 80 80 85 86 90 90 91 95 96
Y N Y Y Y Y Y N Y N Y N N Y
47. 47
Les valeurs manquantes
Ignorer les instances avec des valeurs manquantes
– Solution trop générale, et les valeurs manquantes peuvent ne
pas être importantes
Ignorer les attributs avec des valeurs manquantes
– Peut-être pas faisable
Traiter les valeurs manquantes comme des valeurs
spéciales
– Les valeurs manquantes ont un sens particulier
Estimer les valeurs manquantes
– Donner la valeur de l’attribut la plus répandue à l’attribut
considéré
– Imputation de données en utilisant diverses méthodes
Exemple : régression.
49. 49
Simplification de l’arbre de
décision
Pour lutter contre l’overtiffing on peut simplifier
l’arbre
Simplification avant
– Simplifier étape par étape pendant la construction
de l’arbre de décision
Simplification arrière
– Simplification d’un arbre de décision existant
50. 50
Interprétation des arbres de
décision
Une description adaptée et lisible par tout le
monde
En général, les personnes astigmates doivent avoir
une prescription de lentilles de contacte dures.
51. 51
La méthode
Apprentissage supervisé
Le résultat est lisible
– Outils de navigation dans l’arbre
Les valeurs manquantes peuvent être traitées
Tous les types d’attributs peuvent être pris en compte
Elle peut être utilisée comme près traitement
La classification d’un exemple est très efficace
Moins efficace pour un nombre important de classes
Elle n’est pas incrémentale