Skip to content

Commit 065a777

Browse files
committed
version 2.0
1 parent 9d15dbb commit 065a777

199 files changed

Lines changed: 8827 additions & 2749 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
Deepmath : Mathématiques des réseaux de neurones
33
================================================
44

5-
Ce livre comporte deux parties avec chacune un côté mathématiques et un côté réseaux de neurones :
5+
Ce livre comporte trois parties avec chacune un côté mathématiques et un côté réseaux de neurones :
66

77
* analyse et réseaux de neurones
88
* algèbre et convolution
9+
* ChatGPT
910

1011

1112
Nouveau !
1213
=========
1314

14-
Deux chapitres supplémentaires sur les grands modèles de langages :
15-
* ChatGPT - Partie 1 [Chapitre](chatgpt1/chatgpt1.pdf)
16-
* ChatGPT - Partie 2 [Chapitre](chatgpt2/chatgpt2.pdf)
15+
* Version 2.0.
16+
* Inclusions de deux chapitres sur ChatGPT et les grands modèles de langages.
17+
* Explciations et scripts sont adaptés à Tensorflow 2.18 et Keras 3.10
1718

18-
Ces chapitres seront bientôt intégrés au livre.
1919

2020
Livre
2121
=====
@@ -62,14 +62,21 @@ Partie II - Algèbre - Convolution
6262
* Convolution avec Python [Chapitre](pythonconv/pythonconv.pdf)
6363
* Convolution avec Tensorflow/Keras [Chapitre](tfconv/tfconv.pdf)
6464
* Tenseurs [Chapitre](tenseur/tenseur.pdf)
65+
* Probabilités [Chapitre](proba/proba.pdf)
66+
67+
[Vidéos proba](https://www.youtube.com/playlist?list=PL4Z-Jb1iAUObWRvZuQgPFUkUMP_Aycwdv)
68+
69+
70+
Partie III - ChatGPT
71+
--------------------
72+
73+
* ChatGPT - Partie 1 [Chapitre](chatgpt1/chatgpt1.pdf)
74+
* ChatGPT - Partie 2 [Chapitre](chatgpt2/chatgpt2.pdf)
6575

6676

6777
Compléments
6878
------------------------------------
6979

70-
[Vidéos](https://www.youtube.com/playlist?list=PL4Z-Jb1iAUObWRvZuQgPFUkUMP_Aycwdv)
71-
72-
* Probabilités [Chapitre](proba/proba.pdf)
7380
* Annexe [Chapitre](annexe/annexe.pdf)
7481

7582

@@ -94,10 +101,18 @@ Auteurs
94101
Arnaud Bodin et François Recher
95102

96103
Merci à Michel Bodin pour sa relecture.
97-
98104
Merci à Kroum Tzanev pour ses figures de convolutions.
99-
100-
Merci à Laurent Briend et Frédéric Sanchez pour leurs remarques pertinentes.
105+
Nous remercions les lecteurs suivants pour leurs remarques pertinentes :
106+
Laurent Briend,
107+
Francis Cougard,
108+
Gloria Faccanoni,
109+
Kévin François,
110+
Thibault Godin,
111+
Alexandre Guénéguan,
112+
Aziz Jedidi,
113+
Éline Pot,
114+
Mathieu Sanchez,
115+
Frédéric Sanchez.
101116

102117
Ce livre est diffusé sous la licence *Creative Commons -- BY-NC-SA -- 4.0 FR*.
103118

annexe/annexe.pdf

37.8 KB
Binary file not shown.

annexe/annexe.tex

Lines changed: 62 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ \section{Une brève histoire des réseaux de neurones}
3030

3131
\item \textbf{\emph{Deep learning}.} À partir des années 2000 et surtout après 2010 les réseaux de neurones font des progrès fulgurants grâce à l'apprentissage profond. Yann Le Cun démontre l'efficacité des couches de convolution pour la reconnaissance des chiffres. On réalise et entraîne alors des réseaux ayant de plus en plus de couches grâce à des progrès matériels (par exemple le calcul sur les processeurs graphiques GPU) mais surtout grâce aux couches de convolution qui extraient des caractéristiques abstraites des images.
3232

33+
\item \textbf{ChatGPT}. En 2022, le public découvre ChatGPT avec la génération automatique de textes extrêmement pertinents. Ces modèles de langage sont basés sur des couches d'attention et deviennent vite des outils indispensables au quotidien : explication de concepts, analyse de documents, production de code informatique, etc.
34+
3335
\item \textbf{Présent et avenir.} Les réseaux de neurones s'appliquent à de nombreux domaines : la reconnaissance d'images (par exemple la détection de cancer sur une radiographie), les transports (par exemple la conduite autonome des voitures), les jeux (les ordinateurs battent les champions du monde d'échecs, de go et des jeux vidéos les plus complexes), l'écriture (classement, résumé, traduction)\ldots{}
3436
Il persiste cependant une certaine méfiance vis à vis des décisions prises par une machine (sentence de justice, diagnostic médical, publicité ciblée). Une meilleure compréhension du fonctionnement des réseaux de neurones par tous est donc indispensable !
3537
\end{itemize}
@@ -48,13 +50,15 @@ \section{Références}
4850

4951
\item Le livre \emph{Deep learning/L'apprentissage profond} par Goodfellow, Bengio, Courville contient des concepts plus avancés. Il est disponible en anglais et en français. Une version gratuite est consultable ici :
5052
\mycenterline{\href{https://www.deeplearningbook.org/}{deeplearningbook.org}}
51-
52-
\item Vous pouvez récupérer l'intégralité des codes \Python{} ainsi que tous les fichiers sources sur la page \emph{GitHub} d'Exo7 :
53-
\href{https://github.com/exo7math/deepmath-exo7}{\og{}GitHub : Deepmath\fg{}}.
54-
55-
En particulier vous trouvez sur ce site le module \ci{keras_facile} qui vous aide à définir facilement des poids pour un réseau simple.
5653

54+
\item Concernant ChatGPT, l'article fondateur est
55+
\href{https://arxiv.org/pdf/1706.03762.pdf}{\emph{Attention is all you need}}, des explications mathématiques se trouvent dans
56+
\href{https://transformer-circuits.pub/2021/framework/index.html}{\emph{A mathematical framework for transformer circuits}}.
5757

58+
\item Vous trouverez des sites qui proposent de tester différents modèles en affichant de façon interactive les tokens et leur probabilité. Par exemple :
59+
\mycenterline{\href{https://fr.vittascience.com/ia/}{fr.vittascience.com/ia/}}
60+
61+
5862

5963
\item Un peu de pub pour les livres Exo7 :
6064
\begin{itemize}
@@ -74,28 +78,61 @@ \section{Références}
7478
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7579
\section{Ce qu'il faut pour utiliser tensorflow/keras}
7680

77-
Les activités de ce livre sont écrite pour \Python{}, version 3.
78-
Cependant il faut installer un certain nombre de modules complémentaires qui ne sont pas nécessairement présents par défaut.
81+
82+
Vous pouvez récupérer l'intégralité des codes \Python{} ainsi que tous les fichiers sources sur la page \emph{GitHub} d'Exo7 :
83+
\mycenterline{
84+
\href{https://github.com/exo7math/deepmath-exo7}{\og{}GitHub : Deepmath\fg{}}
85+
}
86+
87+
En particulier vous trouvez sur ce site le module \ci{keras_facile} qui vous aide à définir facilement des poids pour un réseau simple.
88+
89+
90+
\medskip
91+
92+
Pour ceux qui souhaitent ne rien installer, il est possible d'utiliser \tensorflow{} en ligne :
93+
\mycenterline{\href{https://colab.research.google.com/notebooks/welcome.ipynb}{Google Colab}}
94+
95+
\medskip
96+
97+
98+
Les activités de ce livre sont écrites pour \Python{} (version 3.12).
99+
Cependant il faut installer un certain nombre de modules complémentaires qui ne sont pas nécessairement présents par défaut.
100+
79101
\begin{itemize}
80-
\item \ci{tensorflow} qui contient le sous-module \ci{keras},
102+
\item \ci{tensorflow} (version 2.18) qui contient le sous-module \ci{keras} (version 3.10),
81103
\item \ci{numpy} pour les tableaux,
82104
\item \ci{matplotlib} pour l'affichage de graphiques,
83105
\item \ci{scipy} pour la convolution,
84106
\item \ci{ioimage} pour gérer la lecture et l'écriture d'images.
85-
86107
\end{itemize}
87108

109+
Pour les chapitres concernant ChatGPT :
110+
\begin{itemize}
111+
\item \ci{pytorch} (version 2.6) est un équivalent de tensorflow,
112+
\item \ci{transformers} (version 4.52) gère les LLM,
113+
\item \ci{ntlk} pour la linguistique,
114+
\item \ci{bertviz} pour la visualisation des têtes d'attention.
115+
\end{itemize}
116+
117+
\medskip
118+
88119
Un module s'installe simplement par :
89120
\mycenterline{\ci{pip install mon_module}}
90121

122+
Cependant, il est fortement préférable d'utiliser un gestionnaire d'environnements du type \ci{conda} afin de gérer plusieurs versions de \Python{} et de ses modules.
123+
Voici comment créer et activer un environnement \ci{deepmath} afin d’exécuter les scripts de ce livre :
124+
\mycenterline{\ci{conda create --name deepmath python=3.12 tensorflow keras numpy matplotlib}}
91125

92-
Il existe des distributions \Python{} (du type \ci{conda}) qui contiennent les principaux modules scientifiques et permettent aussi de créer des \og{}environnements\fg{} afin de gérer plusieurs versions
93-
de \Python{} et de ses modules.
126+
\smallskip
94127

95-
Pour ceux qui souhaitent ne rien installer, il est possible d'utiliser \tensorflow{} en ligne :
96-
\mycenterline{\href{https://colab.research.google.com/notebooks/welcome.ipynb}{Google Colab}}
128+
\mycenterline{\ci{conda activate deepmath}}
97129

98130

131+
\medskip
132+
133+
Pour des calculs plus rapides, on profite des processeurs graphiques GPU. Pour cela il faut installer les logiciels \ci{CUDA} et \ci{cuDNN} sur sa machine. Si on souhaite faire les calculs uniquement avec le CPU, on peut ajouter l'instruction suivante en tête du programme :
134+
\mycenterline{\ci{os.environ["CUDA_VISIBLE_DEVICES"] = "-1"}}
135+
99136

100137
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
101138
\section{Lexique français/anglais}
@@ -122,6 +159,18 @@ \section{Lexique français/anglais}
122159

123160
\medskip
124161

162+
\textbf{ChatGPT.}
163+
164+
\begin{itemize}
165+
\item grand modèle de langage/\emph{LLM Large Language Model}
166+
\item jeton/\emph{token}
167+
\item plongement/\emph{embedding}
168+
\item retranscription/\emph{unembedding}
169+
\item flux résiduel/\emph{residual stream}
170+
\item sous-bloc d'attention/\emph{attention head}
171+
\end{itemize}
172+
173+
\medskip
125174
\textbf{Mathématiques.}
126175

127176
\begin{itemize}

0 commit comments

Comments
 (0)