ajout semaine 8
This commit is contained in:
parent
cc957aef5a
commit
b2c1fb597e
10 changed files with 507 additions and 8 deletions
43
bibliopresentation2.bib
Normal file
43
bibliopresentation2.bib
Normal file
|
@ -0,0 +1,43 @@
|
|||
@MISC{Paulinas_asurvey,
|
||||
author = {Mantas Paulinas and Andrius Ušinskas},
|
||||
title = {A SURVEY OF GENETIC ALGORITHMS APPLICATIONS FOR IMAGE ENHANCEMENT AND SEGMENTATION},
|
||||
year = 2007
|
||||
}
|
||||
|
||||
@misc{fogel1997introduction,
|
||||
title={An introduction to genetic algorithms: Melanie Mitchell. MIT Press, Cambridge MA, 1996. \$30.00 (cloth), 270 pp},
|
||||
author={Fogel, David B},
|
||||
year=1997,
|
||||
publisher={No longer published by Elsevier}
|
||||
}
|
||||
|
||||
@book{holland1992adaptation,
|
||||
title={Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence},
|
||||
author={Holland, John Henry},
|
||||
year={1992},
|
||||
publisher={MIT press}
|
||||
}
|
||||
|
||||
@article{goldberg1989genetic,
|
||||
title={Genetic algorithms in search, optimization, and machine learning, 1989},
|
||||
author={Goldberg, David E},
|
||||
journal={Reading: Addison-Wesley},
|
||||
year={1989}
|
||||
}
|
||||
|
||||
@Misc{mlaflappy,
|
||||
title = {Machine Learning Algorithm for Flappy Bird using Neural Network and Genetic Algorithm},
|
||||
howpublished = {\url{http://www.askforgametask.com/tutorial/machine-learning-algorithm-flappy-bird/}},
|
||||
month = {August},
|
||||
year = 2017}
|
||||
|
||||
@article{tang2000color,
|
||||
title={Color image segmentation with genetic algorithm for in-field weed sensing},
|
||||
author={Tang, Lie and Tian, L and Steward, Brian L},
|
||||
journal={Transactions of the ASAE},
|
||||
volume={43},
|
||||
number={4},
|
||||
pages={1019},
|
||||
year={2000},
|
||||
publisher={American Society of Agricultural and Biological Engineers}
|
||||
}
|
BIN
images/semaine08/fitness_landscape.png
Normal file
BIN
images/semaine08/fitness_landscape.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 174 KiB |
BIN
images/semaine08/flappy_06.png
Normal file
BIN
images/semaine08/flappy_06.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
BIN
images/semaine08/flappy_ss.png
Normal file
BIN
images/semaine08/flappy_ss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 119 KiB |
BIN
images/semaine08/flowchart_genetic.png
Normal file
BIN
images/semaine08/flowchart_genetic.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
BIN
images/semaine08/remotesensing.png
Normal file
BIN
images/semaine08/remotesensing.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 486 KiB |
238
presentation2.tex
Normal file
238
presentation2.tex
Normal file
|
@ -0,0 +1,238 @@
|
|||
\documentclass[pdf]{beamer}
|
||||
\usepackage[square,sort,numbers]{natbib}% Pour pouvoir utiliser une bibliographie externe
|
||||
\usepackage[french]{babel} % Pour préciser la langue du document
|
||||
\usepackage[utf8]{inputenc} % Précise comment le texte est saisi : cela permet de tapper directement les accents
|
||||
\usepackage[T1]{fontenc} % Précise la façon dont le document actuel est encodé
|
||||
\usepackage{setspace}
|
||||
\usepackage{datetime}
|
||||
|
||||
\mode<presentation>
|
||||
%% preamble
|
||||
\title[Algo. génétique et SàBC]{Algorithmes génétiques et systèmes à base de connaissances}
|
||||
\subtitle{Présentation dans le cadre du cours GLO-7001}
|
||||
\author{François Pelletier}
|
||||
\date{\today}
|
||||
|
||||
\bibliographystyle{plainnat} % Pour changer le style de bibliographie
|
||||
\addto{\captionsfrench}{\renewcommand{\refname}{Bibliographie}} % Comme le langage défini est le français, "Références" aurait été le titre par défaut pour la bibliographie
|
||||
|
||||
\usepackage{amsmath,amsthm,amssymb,amsfonts} % Pour pouvoir inclure certains symboles et environnements mathématiques
|
||||
\usepackage{enumerate} % Pour mieux gérer la commande enumerate dans les sections
|
||||
\usepackage{graphicx} % Pour inclure des images
|
||||
\usepackage{color} % Pour inclure du texte en couleur
|
||||
\usepackage{units} % Pour pouvoir tapper les unités correctement
|
||||
\usepackage{pgf,tikz} % Utilisation du module tikz, qui permet de tracer des belles images
|
||||
\usepackage{hyperref}
|
||||
\usepackage{listings}
|
||||
\usetikzlibrary{shapes.geometric, arrows} % Quand on exporte une image GeoGebra, on a besoin de préciser cela
|
||||
|
||||
\usecolortheme{dolphin}
|
||||
\useoutertheme{infolines}
|
||||
|
||||
\setbeamertemplate{headline}[default]
|
||||
|
||||
% logo of my university
|
||||
\titlegraphic{\includegraphics[width=2cm]{logo}
|
||||
}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}
|
||||
\titlepage
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
\section{Introduction}
|
||||
\label{sec:intro}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Historique des algorithmes génétiques}
|
||||
\begin{itemize}
|
||||
\item Inspirés de la théorie de l'évolution de Charles Darwin (1859): On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life.
|
||||
\item Survie due à la capacité d'adaptation. \cite{fogel1997introduction}
|
||||
\item Rechenberg (1965, 1973): Stratégies d'évolution, optimisation de fonctions réelles.
|
||||
\item Fogel, Owens and Walsh(1966): Programmation évolutionnaire, automate avec un nombre fini d'états.
|
||||
\item John Holland (1975): Adaptation in Natural and Artificial System \cite{holland1992adaptation}
|
||||
\item Début de la popularité avec David Goldberg (1989): Algorithms in Search, Optimization, and Machine Learning \cite{goldberg1989genetic}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Objectifs de l'algorithme}
|
||||
\label{sec:objalgo}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Objectifs de l'algorithme}
|
||||
Il y a deux familles d'objectifs poursuivis par les chercheurs en algorithmique génétique:
|
||||
\begin{enumerate}
|
||||
\item Mathématiques:
|
||||
\begin{itemize}
|
||||
\item Problème d'optimisation combinatoire ou d'optimisation mathématique d'une fonction réelle.
|
||||
\item En autre mots: trouver les meilleures valeurs d'entrées d'une fonction pour obtenir la meilleur valeur de sortie.
|
||||
\end{itemize}
|
||||
\item Biologiques
|
||||
\begin{itemize}
|
||||
\item Modéliser et reproduire l'évolution humaine
|
||||
\item Étude formelle des phénomènes d'adaptation dans la nature (Holland)
|
||||
\end{itemize}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Description de l'algorithme}
|
||||
\label{sec:descalgo}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Étapes de l'algorithme}
|
||||
\begin{enumerate}
|
||||
\item Initialisation: On ititialise une population formée de plusieurs individus ayant un ou plusieurs chromosomes.
|
||||
\item Évaluation: On évalue une fonction objectif, la valeur sélective sur chaque individu de la population.
|
||||
\item Sélection: Selon la fonction de valeur sélective, on sélectionne les parents qui se reproduisent.
|
||||
\item Croisement: Sectionnement des chromosomes en deux ou plusieurs sections et reconstitution de nouveaux chromosomes.
|
||||
\item Mutation: Application de mutations aléatoires sur les descendants.
|
||||
\item Remplacement: remplacement par la nouvelle génération de descendants, incluant parfois aussi des parents (élitisme).
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Espace de recherche}
|
||||
\begin{itemize}
|
||||
\item Espace des solutions candidates (génotypes) pour un problème donné
|
||||
\item L'algorithme génétique peut éviter les solutions locales
|
||||
\item Paysage adaptatif: relations entre des solutions candidates et la valeur sélective à un instant donné
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=2.5in]{images/semaine08/fitness_landscape}
|
||||
\caption{Paysage adaptatif}
|
||||
\label{fig:paysageadapt}
|
||||
\end{figure}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Diagramme de flux}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=2in]{images/semaine08/flowchart_genetic}
|
||||
\caption{Diagramme de flux}
|
||||
\label{fig:paysageadapt}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\section{Utilisations}
|
||||
\label{sec:util}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Amélioration d'images}
|
||||
Une première utilisation des algorithmes génétiques est l'amélioration d'images issues de la vision artificielle \cite{Paulinas_asurvey}.
|
||||
\end{frame}
|
||||
|
||||
\subsection{Amélioration d'images}
|
||||
\label{sec:amelimag}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Amélioration d'images: Types d'améliorations}
|
||||
\begin{itemize}
|
||||
\item Suppression du bruit
|
||||
\item Amplification des contrastes de l'image
|
||||
\item Amplification du niveau de détails
|
||||
\item Détection de bord
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Amélioration d'images: Utilisations}
|
||||
\begin{itemize}
|
||||
\item Construction de nouveaux filtres
|
||||
\item Optimisation des paramètres de filtres existants
|
||||
\item Séquence optimale de filtres
|
||||
\end{itemize}
|
||||
Weighted vector directional filters
|
||||
\begin{itemize}
|
||||
\item Ne peuvent converger vers un optimum global
|
||||
\item On optimise alors avec un algorithme génétique
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Segmentation d'images}
|
||||
\label{sec:segmentationimages}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Segmentation d'images satellite}
|
||||
Application concrète dans le domaine de la télédétection \cite{tang2000color}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=2.5in]{images/semaine08/remotesensing}
|
||||
\label{fig:paysageadapt}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Flappy Bird}
|
||||
\label{sec:flappy}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Résoudre automatiquement le jeu Flappy Bird}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=2.5in]{images/semaine08/flappy_06}
|
||||
\caption{Réseau de neurones}
|
||||
\label{fig:paysageadapt}
|
||||
\end{figure}
|
||||
Référence: Machine Learning Algorithm for Flappy Bird using Neural Network and Genetic Algorithm \cite{mlaflappy}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Flappy Bird: Structure du réseau de neurones}
|
||||
\begin{itemize}
|
||||
\item Couche d'entrée avec deux neurones
|
||||
\begin{itemize}
|
||||
\item Distance horizontale vers l'espacement le plus près
|
||||
\item Différence de hauteur avec l'espacement le plus près
|
||||
\end{itemize}
|
||||
\item Couche cachée de 6 neurones
|
||||
\item Sortie avec un neurone: Si la sortie est supérieure à 0,5 alors \textbf{flap}.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Flappy Bird: Algorithme génétique: entraîner et améliorer le réseau de neurones}
|
||||
\begin{itemize}
|
||||
\item Générer une population de 10 oiseaux avec des réseaux de neurones aléatoires associés
|
||||
\item Faire jouer les 10 unités simultanément au jeu avec leur propre réseau de neurones
|
||||
\item Calculer la fonction de valeur sélective pour chaque oiseau: (distance totale voyagée) - (distance du prochain écart)
|
||||
\item Quand tous les oiseaux sont morts, appliquer la stratégie de remplacement
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Flappy Bird: Stratégie de remplacement}
|
||||
\begin{itemize}
|
||||
\item Trier les oiseaux par leur valeur sélective
|
||||
\item Prendre les 4 meilleurs et les passer à la génération suivante sans possibilité de mutation (élitisme)
|
||||
\item Créer 1 descendant avec les 2 meilleurs
|
||||
\item Créer 3 descendants avec 2 gagnants sur les 4 meilleurs
|
||||
\item Créer 2 copies de 2 gagnants sur les 4 meilleurs
|
||||
\item Appliquer des mutations aléatoires sur tous les descendants
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=3.5in]{images/semaine08/flappy_ss}
|
||||
\caption{Capture: Résolution du jeu Flappy Bird}
|
||||
\label{fig:paysageadapt}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[allowframebreaks]
|
||||
\bibliography{bibliopresentation2}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\include{copyright}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
|
@ -7,7 +7,6 @@ header-includes:
|
|||
- \usepackage{datetime}
|
||||
- \usepackage{hyperref}
|
||||
---
|
||||
|
||||
# Semaine 6: Journal collectif: La gestion de l'incertain dans les systèmes à base de connaissances
|
||||
|
||||
Par François Pelletier et Hans Raldy Saint-Preux
|
||||
|
|
15
semaine07.md
15
semaine07.md
|
@ -5,8 +5,7 @@ header-includes:
|
|||
- \usepackage{datetime}
|
||||
- \usepackage{hyperref}
|
||||
---
|
||||
|
||||
# Semaine 7:
|
||||
# Semaine 7: Réseaux de neurones et système à base de connaissances
|
||||
|
||||
## Lecture 1: Intégration de réseaux de neurones dans un système à base de connaissances en Prolog
|
||||
|
||||
|
@ -20,8 +19,9 @@ Les réseaux de neurones permettent de pallier à ces problèmes, mais leurs rai
|
|||
Au départ, les réseaux de neurones sont surtout associés à des tâches de perception en comparaison avec des tâches de cognition.
|
||||
|
||||
Enjeux:
|
||||
|
||||
- Détecter la structure des réseaux par le comportement collectif: Un neurone seul ne fournit aucune information utilisable pour comprendre le fonctionnement du réseau. Exemple:
|
||||
|
||||
- Détecter la structure des réseaux par le comportement collectif: Un neurone seul ne fournit aucune information utilisable pour comprendre le fonctionnement du réseau.
|
||||
- Exemple:
|
||||
- Self-Organizing Feature Maps (SOFM), Kohonen
|
||||
- Haute dimensionnalité vers réseaux de neurones bidimensionnel.
|
||||
- Difficile de voir la structure (U-matrix)
|
||||
|
@ -123,9 +123,10 @@ Propriétés désirables:
|
|||
### Technologies complémentaires
|
||||
|
||||
Le réseau de neurones:
|
||||
- Performance qui dégrade lentement avec la réduction de la qualité des entrées. Par rapport à un système expert qui décroit rapidement en performance face à l'inconnu ou à la mauvaise qualité des entrées
|
||||
- Bons dans une seule tâche, on peut en avoir besoin de plusieurs
|
||||
- Difficile d'expliquer la sortie
|
||||
|
||||
- Performance qui dégrade lentement avec la réduction de la qualité des entrées. Par rapport à un système expert qui décroit rapidement en performance face à l'inconnu ou à la mauvaise qualité des entrées
|
||||
- Bons dans une seule tâche, on peut en avoir besoin de plusieurs
|
||||
- Difficile d'expliquer la sortie
|
||||
|
||||
On adresse ces problèmes avec la logique floue.
|
||||
|
||||
|
|
218
semaine08.md
Normal file
218
semaine08.md
Normal file
|
@ -0,0 +1,218 @@
|
|||
---
|
||||
header-includes:
|
||||
- \usepackage[T1]{fontenc}
|
||||
- \usepackage[french]{babel}
|
||||
- \usepackage{datetime}
|
||||
- \usepackage{hyperref}
|
||||
---
|
||||
# Semaine 8: Algorithmes génétiques et systèmes à base de connaissances
|
||||
|
||||
## Lecture d'introduction
|
||||
|
||||
Article de blog: [Introduction to Genetic Algorithm & their application in data science](https://www.analyticsvidhya.com/blog/2017/07/introduction-to-genetic-algorithm/)
|
||||
|
||||
Darwin: La survie des espèces est due à leur capacité d'adaptation au changement.
|
||||
|
||||
Les chromosomes, formés d'ADN, peuvent être représentés par une séquence binaire d'allèles. Les traits sont encodés dans les gènes par des blocs d'allèles. L'ensemble des gènes d'un individu forme son génôme.
|
||||
|
||||
### Algorithme génétique
|
||||
|
||||
- Modéliser et reproduire l'évolution humaine
|
||||
- Technique d'optimisation qui essaie de trouver les meilleures valeurs en entrée pour obtenir la meilleure valeur de sortie
|
||||
|
||||
### Étapes
|
||||
|
||||
- Initialisation
|
||||
- Nous avons une population formée de chromosomes, qui sont des séquences de gènes
|
||||
- Évaluation
|
||||
- Fonction objectif
|
||||
- Une fonction de score que l'on veut maximiser
|
||||
- Sélection
|
||||
- Les couples sont choisis aléatoirement selon une distribution de probabilités uniforme pondérée par le score de la fonction objectif
|
||||
- Une autre méthode est celle de l'[échantillonnage universel stochastique](https://en.wikipedia.org/wiki/Stochastic_universal_sampling)
|
||||
- Une seule valeur aléatoire nécessaire
|
||||
- Intervalle constant entre les solutions choisies
|
||||
- Croisement
|
||||
- En un point: on sectionne les deux chromosomes au même endroit et on prend la première section du premier et la seconde section du second chromosome
|
||||
- Multi-point: Même principe, mais on sectionne à plusieurs endroits
|
||||
- Mutation
|
||||
- Certains gènes sont différents de ceux des deux parents.
|
||||
- On change quelques encodages de gènes aléatoirement
|
||||
|
||||
Algorithme utilisé en exemple: [Tree-Based Pipeline Optimization](https://pypi.python.org/pypi/TPOT/0.4.1)
|
||||
|
||||
### Applications
|
||||
|
||||
- Design d'ingénierie: optimiser et offrir une solution robuste
|
||||
- Circulation et logistique (Problème du commis voyageur)
|
||||
- Robotique: répliquer des tâches quotidiennes banales par apprentissage essai et erreur.
|
||||
|
||||
## Tree-Based Pipeline Optimization
|
||||
|
||||
Source: [Evaluation of a Tree-based Pipeline Optimization Tool
|
||||
for Automating Data Science](https://arxiv.org/pdf/1603.06212v1.pdf)
|
||||
|
||||
## 2e lecture: An Introduction to Genetic Algorithms (textbook)
|
||||
|
||||
Référence: [An Introduction to Genetic Algorithms, Melanie Mitchell](https://mitpress.mit.edu/books/introduction-genetic-algorithms)
|
||||
|
||||
### Historique
|
||||
|
||||
- Rechenberg (1965, 1973), Schwefel(1975, 1977): Stratégies d'évolution, optimisation de fonctions réelles.
|
||||
- Fogel, Owens and Walsh(1966): Programmation évolutionnaire, automate avec un nombre fini d'états.
|
||||
- Les deux domaines ont évolué séparément jusqu'au début des années 1990.
|
||||
- John Holland (1975): Algorithmes génétiques, étude formelle des phénomènes d'adaptation dans la nature, pas nécessairement la résolution de problèmes (Adaptation in Natural and Artificial Systems).
|
||||
- Approche de la théorie des schémas (blocs) qui construisent les séquences de gènes, formés de valeurs fixes et de cartes vierges.
|
||||
- Opérateurs: croisement, mutation, inversion
|
||||
|
||||
### L'intérêt pour l'évolution
|
||||
|
||||
- Opérer dans un environnement changeant
|
||||
- Gérer le parallélisme et décider des meilleures pistes de solutions à explorer
|
||||
- Solutions complexes à programmer: les concepteurs de systèmes experts témoignent d'un optimisme selon l'auteur (top-down).
|
||||
- On programme seulement des règles simples et on lance une multitude d'instance de calcul en souhaitant qu'une d'entre elles parvienne à la solution recherchée (bottom-up)
|
||||
- L'évolution, c'est la recherche de la meilleure solution pour la survie et la reproduction
|
||||
|
||||
### Espace de recherche
|
||||
|
||||
- Espace des solutions candidates (génotypes) pour un problème donné
|
||||
- L'algorithme génétique peut éviter les solutions locales via le croisement de celles-ci. Il n'est donc pas dépendant d'une fonction de distance entre les solutions candidates.
|
||||
- [Paysage adaptatif](https://en.wikipedia.org/wiki/Fitness_landscape)
|
||||
- représentation des relations entre des solutions candidates et la valeur sélective (fitness).
|
||||
- ![](images/semaine08/fitness_landscape.png)
|
||||
- Distance de Hamming: nombre de bits différents
|
||||
- La valeur sélective est relative à la population à un instant précis
|
||||
|
||||
### Éléments d'un algorithme génétique
|
||||
|
||||
Quatre éléments:
|
||||
|
||||
1. Population de chromosomes
|
||||
1. Fonction de valeur sélective (fitness)
|
||||
1. Croisements pour produire une descendance
|
||||
1. Présence de mutations
|
||||
|
||||
### Pseudocode
|
||||
|
||||
1. Générer aléatoirement une population de $n$ chromosomes de $l$-bit. Solutions candidates
|
||||
1. Calculer la valeur sélective $f(x)$ de chaque chromosome $x$ de la population
|
||||
1. Répérer les étapes suivantes $\lceil{\frac{n}{2}}\rceil$ fois
|
||||
1. Sélectionner une paire de chromosomes parents de la population, la probabilité de sélection étant une fonction croissante de la valeur sélective. La sélection se fait avec remplacement.
|
||||
1. Avec une probabilité $p_c$, croiser la paire à un point choisi uniformément et produire deux chromosomes descendants. Si aucun croisement n'a lieu, cloner les deux parents.
|
||||
1. Muter les deux descendants à chaque locus avec une probabilité $p_m$.
|
||||
1. Si $n$ est impair, éliminer la dernière valeur obtenue
|
||||
1. Remplacer la population actuelle par la nouvelle population
|
||||
1. Retourner à l'étape 2 pour produire une nouvelle génération
|
||||
|
||||
### Algorithmes de recherche traditionnelle
|
||||
|
||||
L'algorithme génétique est un algorithme de recherche de solutions et non de recherche de chemins vers une solution. C'est une grande différence avec un système expert où nous voulons souvent obtenir une explication de la solution.
|
||||
|
||||
Mécaniquement, on a un comportement similaire à un algorithme de simplexe pour l'optimisation de fonctions réelles. Par contre, dans ce cas, on a un vecteur de paramètres réels auquel on applique des opérateurs multiplicatifs ainsi que des mutations, dans le cas d'algorithmes d'optimisation stochastiques.
|
||||
|
||||
## 3e lecture: Amélioration d'images
|
||||
|
||||
Source: M Paulinas, A Ušinskas - Information Technology and control, 2007
|
||||
[A survey of genetic algorithms applications for image enhancement and segmentation](http://itc.ktu.lt/index.php/ITC/article/view/11886/6561)
|
||||
|
||||
![flowchart_genetic.png](images/semaine08/flowchart_genetic.png)
|
||||
|
||||
Amélioration des images acquises par la vision artificielle:
|
||||
|
||||
- Suppression du bruit
|
||||
- Amplification des contrastes de l'image
|
||||
- Amplification du niveau de détails
|
||||
- Détection de bord
|
||||
|
||||
Utilisations:
|
||||
|
||||
- Construction de nouveaux filtres
|
||||
- Optimisation des paramètres de filtres existants
|
||||
- Séquence optimale de filtres
|
||||
|
||||
Weighted vector directional filters:
|
||||
|
||||
- Ne peuvent converger vers un optimum global
|
||||
- On optimise alors avec un algorithme génétique
|
||||
|
||||
## 4e lecture: Flappy Bird
|
||||
|
||||
Source: [Machine Learning for Flappy Bird using Neural Network & Genetic Algorithm](http://www.askforgametask.com/tutorial/machine-learning-algorithm-flappy-bird/)
|
||||
|
||||
[Vidéo](https://www.youtube.com/watch?v=aeWmdojEJf0)
|
||||
|
||||
### Réseau de neurones artificiels
|
||||
|
||||
3 couches:
|
||||
|
||||
- Couche d'entrée avec deux neurones:
|
||||
- Distance horizontale vers l'espacement le plus près
|
||||
- Différence de hauteur avec l'espacement le plus près
|
||||
- Couche cachée de 6 neurones
|
||||
- Sortie avec un neurone
|
||||
- Si la sortie est supérieure à 0,5 alors **flap**
|
||||
|
||||
![flappy_06.png](images/semaine08/flappy_06.png)
|
||||
|
||||
### Algorithme génétique
|
||||
|
||||
Objectif: entraîner et améliorer le réseau de neurones
|
||||
|
||||
Étapes:
|
||||
|
||||
- Générer une population de 10 oiseaux avec des réseaux de neurones aléatoires associés
|
||||
- Faire jouer les 10 unités simultanément au jeu avec leur propre réseau de neurones
|
||||
- Calculer la fonction de valeur sélective pour chaque oiseau
|
||||
- (distance totale voyagée) - (distance du prochain écart)
|
||||
- Quand tous les oiseaux sont morts, appliquer la stratégie de remplacement
|
||||
- Trier les oiseaux par leur valeur sélective
|
||||
- Prendre les 4 meilleurs et les passer à la génération suivante sans possibilité de mutation (élitisme)
|
||||
- Créer 1 descendant avec les 2 meilleurs
|
||||
- Créer 3 descendants avec 2 gagnants sur les 4 meilleurs
|
||||
- Créer 2 copies de 2 gagnants sur les 4 meilleurs
|
||||
- Appliquer des mutations aléatoires sur tous les descendants
|
||||
- Recommencer à l'étape 2
|
||||
|
||||
La fonction de croisement représente un neurone comme un trait et coupe à un point aléatoire le vecteur de neurones. On choisis ensuite aléatoirement un des deux descendants avec une fonction de masse de probabilité de 0.5 chacun.
|
||||
|
||||
### Exemple de code
|
||||
|
||||
Le projet est sur GitHub: [ssusnic/Machine-Learning-Flappy-Bird](https://github.com/ssusnic/Machine-Learning-Flappy-Bird)
|
||||
|
||||
Utilise les bibliothèques de fonctions [`synaptic`](https://github.com/NeuroJS/synaptic) et [`phaser`](http://phaser.io)
|
||||
|
||||
```javascript
|
||||
//MIT License
|
||||
//Copyright (c) 2017 Srdjan Susnic
|
||||
|
||||
// performs a single point crossover between two parents
|
||||
crossOver : function(parentA, parentB) {
|
||||
// get a cross over cutting point
|
||||
var cutPoint = this.random(0, parentA.neurons.length-1);
|
||||
|
||||
// swap 'bias' information between both parents:
|
||||
// 1. left side to the crossover point is copied from one parent
|
||||
// 2. right side after the crossover point is copied from the second parent
|
||||
for (var i = cutPoint; i < parentA.neurons.length; i++){
|
||||
var biasFromParentA = parentA.neurons[i]['bias'];
|
||||
parentA.neurons[i]['bias'] = parentB.neurons[i]['bias'];
|
||||
parentB.neurons[i]['bias'] = biasFromParentA;
|
||||
}
|
||||
|
||||
return this.random(0, 1) == 1 ? parentA : parentB;
|
||||
}
|
||||
```
|
||||
|
||||
## 5e lecture: Génération de règles pour un système expert à partir d'un algorithme génétique (abstract seulement)
|
||||
|
||||
Source: [A Genetic Algorithm for Expert System Rule Generation](http://people.ibest.uidaho.edu/~foster/Papers/46107.pdf)
|
||||
|
||||
- Génération de règles floues à partir de données
|
||||
- Classification génétique de données
|
||||
1. Classification avec un algorithme génétique
|
||||
- Chromosomes de longueur aléatoire
|
||||
- Probabilité de mutation variables
|
||||
1. Statistiques sur les groupes
|
||||
- Données satellites LANDSAT
|
||||
- Conclusion: performance similaire à d'autres algorithmes de classification
|
||||
- Enjeu: mode de représentation des règles
|
Loading…
Add table
Reference in a new issue