251 lines
No EOL
8.9 KiB
TeX
251 lines
No EOL
8.9 KiB
TeX
\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{Enchères en ligne}
|
|
\label{sec:enchlign}
|
|
|
|
\begin{frame}
|
|
\frametitle{Enchères en ligne}
|
|
\begin{itemize}
|
|
\item Publicité basée sur des mots clés
|
|
\item Budget initial limité
|
|
\item Prix maximum contraint
|
|
\item On doit pouvoir optimiser nos achats très rapidement (secondes)
|
|
\end{itemize}
|
|
\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} |