-
Notifications
You must be signed in to change notification settings - Fork 1
Ch18 traduction FR ini #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| - Nous commençons par simuler et visualiser quelques données 2d pour une classification binaire. | ||
| <!-- comment --> | ||
| - We then show how a classification function in 2d can be visualized by computing predictions on a grid, and then using `geom_tile()` or `geom_path()` with contour lines. | ||
| - Nous montrons ensuite comment une fonction de classification en 2d peut être visualisée en calculant les prédictions sur une grille, puis en utilisant la fonction de classification en 2d. `geom_tile()` ou `geom_path()` avec des lignes de contour. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Nous montrons ensuite comment une fonction de classification en 2d peut être visualisée en calculant les prédictions sur une grille, puis en utilisant la fonction de classification en 2d. `geom_tile()` ou `geom_path()` avec des lignes de contour. | |
| - Nous montrons ensuite comment une fonction de classification en 2d peut être visualisée en calculant les prédictions sur une grille, puis en utilisant `geom_tile()` ou `geom_path()` avec des lignes de contour. |
| <!-- paragraph --> | ||
|
|
||
| In the simulation, the data table above has the "hidden" features which are used to create the labels, but are not available for learning. | ||
| Dans la simulation, le tableau de données ci-dessus comporte les caractéristiques "cachées" qui sont utilisées pour créer les étiquettes, mais ne sont pas disponibles pour l'apprentissage. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Dans la simulation, le tableau de données ci-dessus comporte les caractéristiques "cachées" qui sont utilisées pour créer les étiquettes, mais ne sont pas disponibles pour l'apprentissage. | |
| Dans la simulation, le tableau de données ci-dessus comporte les caractéristiques "hidden" (cachées) qui sont utilisées pour créer les étiquettes, mais ne sont pas disponibles pour l'apprentissage. |
| <!-- paragraph --> | ||
|
|
||
| The best classifier is visualized below in the feature space, | ||
| Le meilleur classificateur est visualisé ci-dessous dans l'espace des caractéristiques, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Le meilleur classificateur est visualisé ci-dessous dans l'espace des caractéristiques, | |
| Le meilleur ("best") classificateur est visualisé ci-dessous dans l'espace des caractéristiques, |
| <!-- paragraph --> | ||
|
|
||
| To implement the gradient descent algorithm for learning neural network model parameters, we will use a simple auto-grad system. | ||
| Pour implémenter l'algorithme de descente de gradient pour l'apprentissage des paramètres du modèle de réseau de neurones, nous utiliserons un système simple d'auto-gradation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Pour implémenter l'algorithme de descente de gradient pour l'apprentissage des paramètres du modèle de réseau de neurones, nous utiliserons un système simple d'auto-gradation. | |
| Pour implémenter l'algorithme de descente de gradient pour l'apprentissage des paramètres du modèle de réseau de neurones, nous utiliserons un système simple d'auto-grad. |
| L'idée de l'auto-grad est que la structure du modèle de réseau neuronal doit être définie une seule fois et que cette structure doit être utilisée pour dériver les calculs de propagation vers l'avant (prédiction) et vers l'arrière (gradient). | ||
| <!-- comment --> | ||
| Below we use a simple auto-grad system where each node in the computation graph is represented by an R environment (a mutable data structure, necessary so that the gradients are back-propagated to all the model parameters). | ||
| Nous utilisons ci-dessous un système auto-grad simple où chaque nœud du graphe de calcul est représenté par un environnement R (une structure de données mutable, nécessaire pour que les gradients soient rétropropagés à tous les paramètres du modèle). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Nous utilisons ci-dessous un système auto-grad simple où chaque nœud du graphe de calcul est représenté par un environnement R (une structure de données mutable, nécessaire pour que les gradients soient rétropropagés à tous les paramètres du modèle). | |
| Nous utilisons ci-dessous un système auto-grad simple où chaque nœud du graphique de calcul est représenté par un environnement R (une structure de données mutable, nécessaire pour que les gradients soient rétropropagés à tous les paramètres du modèle). |
| Nous utilisons ci-dessous un système auto-grad simple où chaque nœud du graphe de calcul est représenté par un environnement R (une structure de données mutable, nécessaire pour que les gradients soient rétropropagés à tous les paramètres du modèle). | ||
| <!-- comment --> | ||
| The function below is a constructor for the most basic building block of the auto-grad system, a node in the computation graph: | ||
| La fonction ci-dessous est un constructeur pour l'élément le plus élémentaire du système auto-grad, un nœud dans le graphe de calcul : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| La fonction ci-dessous est un constructeur pour l'élément le plus élémentaire du système auto-grad, un nœud dans le graphe de calcul : | |
| La fonction ci-dessous est un constructeur pour l'élément le plus élémentaire du système auto-grad, un nœud dans le graphique de calcul : |
| <!-- paragraph --> | ||
|
|
||
| - `value` is a matrix computed by forward propagation at this node in the computation graph. | ||
| - `value` est une matrice calculée par propagation vers l'avant à ce nœud du graphe de calcul. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - `value` est une matrice calculée par propagation vers l'avant à ce nœud du graphe de calcul. | |
| - `value` est une matrice calculée par propagation vers l'avant à ce nœud du graphique de calcul. |
| - `parent.list` est une liste de nœuds parents, chacun d'entre eux étant utilisé pour calculer `value`. | ||
| <!-- comment --> | ||
| - `backward` is a function which should be called by the user on the final/loss node in the computation graph. | ||
| - `backward` est une fonction qui doit être appelée par l'utilisateur sur le nœud final/de perte dans le graphe de calcul. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - `backward` est une fonction qui doit être appelée par l'utilisateur sur le nœud final/de perte dans le graphe de calcul. | |
| - `backward` est une fonction qui doit être appelée par l'utilisateur sur le nœud final/de perte dans le graphique de calcul. |
| - `backward` est une fonction qui doit être appelée par l'utilisateur sur le nœud final/de perte dans le graphe de calcul. | ||
| <!-- comment --> | ||
| It calls `gradient`, which should compute the gradient of the loss with respect to the parent nodes, which are stored in the `grad` attribute in each corresponding parent node, before recursively calling `backward` on each parent node. | ||
| Elle appelle `gradient` qui doit calculer le gradient de la perte par rapport aux nœuds parents, qui sont stockés dans le fichier `grad` dans chaque nœud parent correspondant, avant d'appeler récursivement `backward` sur chaque nœud parent. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Elle appelle `gradient` qui doit calculer le gradient de la perte par rapport aux nœuds parents, qui sont stockés dans le fichier `grad` dans chaque nœud parent correspondant, avant d'appeler récursivement `backward` sur chaque nœud parent. | |
| Elle appelle `gradient` qui doit calculer le gradient de la perte par rapport aux nœuds parents, qui sont stockés dans l'attribut `grad` dans chaque nœud parent correspondant, avant d'appeler récursivement `backward` sur chaque nœud parent. |
| <!-- paragraph --> | ||
|
|
||
| The code above says that an initial node simply stores the input matrix `mat` as the value, and has a `gradient` method that does nothing (because initial nodes in the computation graph have no parents for which gradients could be computed). | ||
| Le code ci-dessus indique qu'un nœud initial stocke simplement la matrice d'entrée `mat` comme valeur, et a une valeur `gradient` qui ne fait rien (parce que les nœuds initiaux dans le graphe de calcul n'ont pas de parents pour lesquels des gradients pourraient être calculés). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Le code ci-dessus indique qu'un nœud initial stocke simplement la matrice d'entrée `mat` comme valeur, et a une valeur `gradient` qui ne fait rien (parce que les nœuds initiaux dans le graphe de calcul n'ont pas de parents pour lesquels des gradients pourraient être calculés). | |
| Le code ci-dessus indique qu'un nœud initial stocke simplement la matrice d'entrée `mat` comme valeur, et a une méthode `gradient` qui ne fait rien (parce que les nœuds initiaux dans le graphique de calcul n'ont pas de parents pour lesquels des gradients pourraient être calculés). |
| Le code ci-dessus indique qu'un nœud initial stocke simplement la matrice d'entrée `mat` comme valeur, et a une valeur `gradient` qui ne fait rien (parce que les nœuds initiaux dans le graphe de calcul n'ont pas de parents pour lesquels des gradients pourraient être calculés). | ||
| <!-- comment --> | ||
| The code below defines `mm`, a node in the computation graph which represents a matrix multiplication, | ||
| Le code ci-dessous définit `mm` un noeud dans le graphe de calcul qui représente une multiplication de matrice, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Le code ci-dessous définit `mm` un noeud dans le graphe de calcul qui représente une multiplication de matrice, | |
| Le code ci-dessous définit `mm`, un noeud dans le graphique de calcul qui représente une multiplication de matrice, |
| <!-- paragraph --> | ||
|
|
||
| The `mm` definition above assumes that there is a weight node with the same number of rows as the number of columns (plus one for intercept) in the feature node. | ||
| Le `mm` ci-dessus suppose qu'il existe un nœud de pondération ayant le même nombre de lignes que le nombre de colonnes (plus une pour l'interception) dans le nœud de caractéristique. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Le `mm` ci-dessus suppose qu'il existe un nœud de pondération ayant le même nombre de lignes que le nombre de colonnes (plus une pour l'interception) dans le nœud de caractéristique. | |
| La définition de `mm` ci-dessus suppose qu'il existe un nœud de pondération ayant le même nombre de lignes que le nombre de colonnes (plus une pour l'ordonnée à l'origine) dans le nœud de caractéristiques. |
| Les calculs d'avance/valeur et de gradient utilisent la multiplication matricielle. | ||
| <!-- comment --> | ||
| For instance, we can use`mm` as follows to define a simple linear model, | ||
| Par exemple, nous pouvons utiliser`mm` pour définir un modèle linéaire simple, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Par exemple, nous pouvons utiliser`mm` pour définir un modèle linéaire simple, | |
| Par exemple, nous pouvons utiliser `mm` de la manière suivante pour définir un modèle linéaire simple, |
| <!-- paragraph --> | ||
|
|
||
| It can be seen in the code above that the `mm` function returns a node representing predicted values, one for each row in the feature matrix. | ||
| On peut voir dans le code ci-dessus que l'élément `mm` renvoie un nœud représentant les valeurs prédites, un pour chaque ligne de la matrice des fonctions). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| On peut voir dans le code ci-dessus que l'élément `mm` renvoie un nœud représentant les valeurs prédites, un pour chaque ligne de la matrice des fonctions). | |
| On peut voir dans le code ci-dessus que la fonction `mm` renvoie un nœud représentant les valeurs prédites, un pour chaque ligne de la matrice des caractéristiques). |
| Maintenant que nous avons calculé la perte, nous pouvons calculer le gradient de la perte par rapport aux pondérations, qui est utilisé pour effectuer les mises à jour pendant l'apprentissage. | ||
| <!-- comment --> | ||
| Remember that we should now call`backward` (on the subtrain loss), which should eventually store the gradient as `weight.node$grad`. | ||
| Rappelez-vous que nous devons maintenant appeler`backward` (sur la perte de soustraction), qui devrait finalement stocker le gradient en tant que `weight.node$grad`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Rappelez-vous que nous devons maintenant appeler`backward` (sur la perte de soustraction), qui devrait finalement stocker le gradient en tant que `weight.node$grad`. | |
| Rappelez-vous que nous devons maintenant appeler `backward` (sur la perte de sous-entrainement), qui devrait finalement stocker le gradient en tant que `weight.node$grad`. |
| <!-- paragraph --> | ||
|
|
||
| Note that since `loss.node` contains recursive back-references to its parent nodes (including predictions and weights), the `backward` call above is able to conveniently compute and store `weight.node$grad`, the gradient of the loss with respect to the weight parameters. | ||
| Notez que, puisque `loss.node` contient des références récursives à ses nœuds parents (y compris les prédictions et les pondérations), l'élément `backward` ci-dessus est capable de calculer et de stocker de manière pratique les données de l'appel `weight.node$grad` le gradient de la perte par rapport aux paramètres de pondération. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Notez que, puisque `loss.node` contient des références récursives à ses nœuds parents (y compris les prédictions et les pondérations), l'élément `backward` ci-dessus est capable de calculer et de stocker de manière pratique les données de l'appel `weight.node$grad` le gradient de la perte par rapport aux paramètres de pondération. | |
| Notez que, puisque `loss.node` contient des références récursives à ses nœuds parents (y compris les prédictions et les pondérations), l'appel `backward` ci-dessus est capable de calculer et de stocker de manière pratique `weight.node$grad`, le gradient de la perte par rapport aux paramètres de pondération. |
| <!-- comment --> | ||
| For example, a common and efficient non-linear activation function is the ReLU (Rectified Linear Units), which is implemented below, | ||
| Afin d'apprendre une fonction de prédiction qui est une fonction non linéaire des caractéristiques, chaque couche, à l'exception de la dernière, doit avoir une fonction d'activation non linéaire, appliquée élément par élément aux unités après la multiplication de la matrice. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| For example, a common and efficient non-linear activation function is the ReLU (Rectified Linear Units), which is implemented below, | ||
| Afin d'apprendre une fonction de prédiction qui est une fonction non linéaire des caractéristiques, chaque couche, à l'exception de la dernière, doit avoir une fonction d'activation non linéaire, appliquée élément par élément aux unités après la multiplication de la matrice. | ||
|
|
||
| <!-- -- commentaire --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <!-- -- commentaire --> | |
| <!-- comment --> |
| <!-- paragraph --> | ||
|
|
||
| Finally, the last node that we need to implement our neural network is a node for predictions, computed via the for loop over weight nodes in the function below, | ||
| Enfin, le dernier nœud dont nous avons besoin pour implémenter notre réseau neuronal est un nœud pour les prédictions, calculé via la boucle for sur les nœuds de pondération dans la fonction ci-dessous, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Enfin, le dernier nœud dont nous avons besoin pour implémenter notre réseau neuronal est un nœud pour les prédictions, calculé via la boucle for sur les nœuds de pondération dans la fonction ci-dessous, | |
| Enfin, le dernier nœud dont nous avons besoin pour implémenter notre réseau neuronal est un nœud pour les prédictions, calculé avec la boucle `for` sur les nœuds de pondération dans la fonction ci-dessous, |
| <!-- paragraph --> | ||
|
|
||
| The `pred_node` function is also useful for computing predictions on the grid of features, which will be useful later for visualizing the learned function, | ||
| Le `pred_node` est également utile pour calculer les prédictions sur la grille de caractéristiques, ce qui sera utile plus tard pour visualiser la fonction apprise, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Le `pred_node` est également utile pour calculer les prédictions sur la grille de caractéristiques, ce qui sera utile plus tard pour visualiser la fonction apprise, | |
| La fonction `pred_node` est également utile pour calculer les prédictions sur la grille de caractéristiques, ce qui sera utile plus tard pour visualiser la fonction apprise, |
| <!-- paragraph --> | ||
|
|
||
| - Add animation over the number of iterations. | ||
| - Ajouter l'animation sur le nombre d'itérations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Ajouter l'animation sur le nombre d'itérations. | |
| - Ajoutez l'animation sur le nombre d'itérations. |
| - Ajouter l'animation sur le nombre d'itérations. | ||
| <!-- comment --> | ||
| - Add smooth transitions when changing the selected number of iterations. | ||
| - Ajouter des transitions graduelles lors du changement du nombre d'itérations sélectionné. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Ajouter des transitions graduelles lors du changement du nombre d'itérations sélectionné. | |
| - Ajoutez des transitions graduelles lors du changement du nombre d'itérations sélectionné. |
| - Ajouter des transitions graduelles lors du changement du nombre d'itérations sélectionné. | ||
| <!-- comment --> | ||
| - Add a for loop over random seeds (or cross-validation folds) in the data splitting step, and create a visualization that shows how that affects the results. | ||
| - Ajoutez une boucle for sur des graines aléatoires (ou des plis de validation croisée) dans l'étape de division des données, et créez une visualisation qui montre comment cela affecte les résultats. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Ajoutez une boucle for sur des graines aléatoires (ou des plis de validation croisée) dans l'étape de division des données, et créez une visualisation qui montre comment cela affecte les résultats. | |
| - Ajoutez une boucle `for` sur des graines aléatoires (ou des plis de validation croisée) dans l'étape de division des données, et créez une visualisation qui montre comment cela affecte les résultats. |
| - Ajoutez une boucle for sur des graines aléatoires (ou des plis de validation croisée) dans l'étape de division des données, et créez une visualisation qui montre comment cela affecte les résultats. | ||
| <!-- comment --> | ||
| - Add a for loop over random seeds at the weight matrix initialization step, and create a visualization that shows how that affects the results. | ||
| - Ajoutez une boucle for sur des graines aléatoires à l'étape d'initialisation de la matrice de pondération, et créez une visualisation qui montre comment cela affecte les résultats. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Ajoutez une boucle for sur des graines aléatoires à l'étape d'initialisation de la matrice de pondération, et créez une visualisation qui montre comment cela affecte les résultats. | |
| - Ajoutez une boucle `for` sur des graines aléatoires à l'étape d'initialisation de la matrice de pondération, et créez une visualisation qui montre comment cela affecte les résultats. |
| - Ajoutez une boucle for sur des graines aléatoires à l'étape d'initialisation de la matrice de pondération, et créez une visualisation qui montre comment cela affecte les résultats. | ||
| <!-- comment --> | ||
| - Compute results for another neural network architecture (and/or linear model, by adding a for loop over different values of `units.per.layer`). | ||
| - Calculez les résultats pour une autre architecture de réseau neuronal (et/ou un modèle linéaire, en ajoutant une boucle for sur différentes valeurs de `units.per.layer`). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Calculez les résultats pour une autre architecture de réseau neuronal (et/ou un modèle linéaire, en ajoutant une boucle for sur différentes valeurs de `units.per.layer`). | |
| - Calculez les résultats pour une autre architecture de réseau neuronal (et/ou un modèle linéaire, en ajoutant une boucle `for` sur différentes valeurs de `units.per.layer`). |
| - Calculez les résultats pour une autre architecture de réseau neuronal (et/ou un modèle linéaire, en ajoutant une boucle for sur différentes valeurs de `units.per.layer`). | ||
| <!-- comment --> | ||
| Add another plot or facet which allows selecting the neural network architecture, and allows easy comparison of the min validation loss between models (for example, add facet columns to loss plot, and add horizontal lines to emphasize min loss). | ||
| Ajouter un autre graphique ou une facette permettant de sélectionner l'architecture du réseau neuronal et de comparer facilement la perte de validation minimale entre les modèles (par exemple, ajouter des colonnes de facettes au graphique de perte et ajouter des lignes horizontales pour mettre en évidence la perte minimale). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Ajouter un autre graphique ou une facette permettant de sélectionner l'architecture du réseau neuronal et de comparer facilement la perte de validation minimale entre les modèles (par exemple, ajouter des colonnes de facettes au graphique de perte et ajouter des lignes horizontales pour mettre en évidence la perte minimale). | |
| Ajoutez un autre graphique ou une facette permettant de sélectionner l'architecture du réseau neuronal et de comparer facilement la perte de validation minimale entre les modèles (par exemple, ajoutez des colonnes de facettes au graphique de perte et ajoutez des lignes horizontales pour mettre en évidence la perte minimale). |
| <!-- paragraph --> | ||
|
|
||
| Next, [Chapter 19](/ch19) explains how to visualize P-values, including how to work around overplotting, using a heat map linked to a zoomed scatter plot. | ||
| Suivant, [Chapitre 19](/ch19) explique comment visualiser les valeurs de P, y compris comment contourner le surdimensionnement, à l'aide d'une carte thermique liée à un graphique de dispersion zoomé. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Suivant, [Chapitre 19](/ch19) explique comment visualiser les valeurs de P, y compris comment contourner le surdimensionnement, à l'aide d'une carte thermique liée à un graphique de dispersion zoomé. | |
| Ensuite, dans le [chapitre 19](/ch19), nous vous expliquerons comment visualiser les valeurs-P ("P-values"), notamment comment contourner le sur-représentement (overplotting), en utilisant une carte thermique reliée à un nuage de points agrandi. |
|
J'ai terminé @annartiges |
https://119-merge--animint-manual-fr.netlify.app/ch18/ch18-viz