193 lines
4.7 KiB
Plaintext
193 lines
4.7 KiB
Plaintext
\hypertarget{presentation-du-probluxe8me}{%
|
|
\section{Presentation du problème}\label{presentation-du-probluxe8me}}
|
|
|
|
\hypertarget{pruxe9sentation-dune-beatmap}{%
|
|
\subsection{Présentation d'une
|
|
beatmap}\label{pruxe9sentation-dune-beatmap}}
|
|
|
|
\begin{frame}{Le Jeu osu!}
|
|
\protect\hypertarget{le-jeu-osu}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Jeu de rythme pour PC
|
|
\item
|
|
Sorti le 16 septembre 2007
|
|
\item
|
|
Environ 500 000 joueurs actifs
|
|
\item
|
|
Se joue avec une souris/tablette et clavier {[}osuLogo.png{]}
|
|
{[}tablet.png{]}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{les beatmaps}
|
|
\protect\hypertarget{les-beatmaps}{}
|
|
\begin{block}{3 types d'objets:}
|
|
\protect\hypertarget{types-dobjets}{}
|
|
\begin{itemize}
|
|
\item
|
|
cercles
|
|
\item
|
|
sliders
|
|
\item
|
|
spinners (ignorés)
|
|
\item
|
|
Lien musique \textless-\textgreater{} niveau
|
|
\item
|
|
Difficulté quantifiée par des ``étoiles''
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Formulation du problème}
|
|
\protect\hypertarget{formulation-du-probluxe8me}{}
|
|
Nous nous proposons de créer deux programmes permettant au mieux, à
|
|
partir d'un fichier audio donné, de construire un niveau pour osu!.
|
|
\end{frame}
|
|
|
|
\hypertarget{duxe9composition-du-probluxe8me}{%
|
|
\subsection{Décomposition du
|
|
problème}\label{duxe9composition-du-probluxe8me}}
|
|
|
|
\begin{frame}{Analyse de musique (Alexandre)}
|
|
\protect\hypertarget{analyse-de-musique-alexandre}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
respecter les caractéristiques de la musique : décalage, tempo
|
|
\item
|
|
distinguer sons importants et accessoires
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Placement des objets}
|
|
\protect\hypertarget{placement-des-objets}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
angles -\textgreater{} \emph{flow}
|
|
\item
|
|
doit complémenter la musique (espacement, difficulté)
|
|
\item
|
|
visuel: plaisant et lisible (-\textgreater{} motifs/patterns)
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\hypertarget{ruxe9duction-placement-pruxe9diction-de-suxe9quence}{%
|
|
\subsection{Réduction: placement \textless{} prédiction de
|
|
séquence}\label{ruxe9duction-placement-pruxe9diction-de-suxe9quence}}
|
|
|
|
\begin{frame}{Observation}
|
|
\protect\hypertarget{observation}{}
|
|
Le placement du prochain objet dépend:
|
|
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
de la musique
|
|
\item
|
|
des objets précédents
|
|
\end{itemize}
|
|
|
|
\textasciitilde{} prédiction de séquence (en économie par ex.)
|
|
|
|
\textbf{BUT} = encoder musique et objets pour prédire les prochains
|
|
objets
|
|
\end{frame}
|
|
|
|
\begin{frame}{1ère approche: glouton}
|
|
\protect\hypertarget{uxe8re-approche-glouton}{}
|
|
\begin{block}{Un principe simple\ldots{}}
|
|
\protect\hypertarget{un-principe-simple}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
à partir des choix précédents -\textgreater{} faire le meilleur choix
|
|
\end{itemize}
|
|
\end{block}
|
|
|
|
\begin{block}{\ldots mais peu efficace en pratique.}
|
|
\protect\hypertarget{mais-peu-efficace-en-pratique.}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
beaucoup d'heuristiques à coder -\textgreater{} compliqué sur un jeu
|
|
comme osu!
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Réseaux de neurones nécurrents}
|
|
\protect\hypertarget{ruxe9seaux-de-neurones-nuxe9currents}{}
|
|
{[}{]}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Amélioration: LSTM}
|
|
\protect\hypertarget{amuxe9lioration-lstm}{}
|
|
{[}{]}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Encodage précis des objets}
|
|
\protect\hypertarget{encodage-pruxe9cis-des-objets}{}
|
|
\begin{block}{Importance de l'encodage}
|
|
\protect\hypertarget{importance-de-lencodage}{}
|
|
Permet au modèle ``d'apprendre'' le plus efficacement possible
|
|
\end{block}
|
|
|
|
\begin{block}{Encodage retenu}
|
|
\protect\hypertarget{encodage-retenu}{}
|
|
10-uplet contenant: start, delta\_time (en ms), delta\_beat (float),
|
|
blue\_tick (bool), red\_tick (bool), white\_tick (bool), xcoord (float),
|
|
ycoord (float), is\_curve\_point, is\_slider\_start
|
|
|
|
Normalisation des données
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Protocole d'entraînement}
|
|
\protect\hypertarget{protocole-dentrauxeenement}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
Echantillon de 188 niveaux, style
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\hypertarget{ruxe9sultats}{%
|
|
\subsection{Résultats}\label{ruxe9sultats}}
|
|
|
|
\begin{frame}{1ère observations}
|
|
\protect\hypertarget{uxe8re-observations}{}
|
|
\begin{block}{Choix de musiques d'essai :}
|
|
\protect\hypertarget{choix-de-musiques-dessai}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
1 niveau contrôle = humain (Science)
|
|
\item
|
|
1 niveau de type ``stream'' (Entanglement)
|
|
\item
|
|
1 niveau de type ``jump'' (Rooftop)
|
|
\item
|
|
1 niveau hybride (Blade Dance)
|
|
\end{itemize}
|
|
|
|
Rythmes : humains
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Améliorations possibles?}
|
|
\protect\hypertarget{amuxe9liorations-possibles}{}
|
|
\begin{itemize}
|
|
\tightlist
|
|
\item
|
|
autres types de modèles
|
|
\item
|
|
plus d'entraînement (mais surapprentissage\ldots)
|
|
\item
|
|
meilleur lien musique \textless-\textgreater{} placement (ici mis de
|
|
côté\ldots)
|
|
\end{itemize}
|
|
\end{frame}
|