Par Arthur Milchior le mardi 29 novembre 2016, 00:05 - anki - Lien permanent

En traînant sur less wrong , j'ai découvert un truc que, visiblement, beaucoup de gens autour de moi connaissait - mais pas moi. Anki , un logiciel pour aider à la mémorisation, partant du principe que pour se souvenir des choses, il faut les revoir juste avant de les oublier, et que plus on les a revu, plus on met longtemps avant de les oublier. Il semblerait qu'en général, il soit principalement employé pour l'apprentissage de vocabulaire étranger. Je m'en vais vous expliquer comment je l'utilise pour les mathématiques. Sachez déjà que vous pouvez trouver un(des) example(s) de mes decks ici

Personnellement, mon plus grand problème avec les mathématiques, c'est la quantité de choses à apprendre. Je commence par donner un exemple, qui ne sera pas forcément clair pour les gens ne connaissant pas déjà un peu le domaine dont je parle, mais ça ne devrait pas trop gêner à saisir l'idée générale. J'ai voulu découvrir ce qu'était la théorie des catégories. Un autre jour j'ai voulu lire un manuel d'introduction à la théorie des nombres. Deux sujets qui, ont l'air franchement passionnants. Dans lequel les premières pages me semblent clairs. Mais après quelques dizaines de pages, j'avais oublié les définitions exactes donnés dans les pages d'avants. Pas des définitions très complexes. Juste trop nombreuses.

J'insiste énormément sur le fait que je parle d'apprendre des définitions que j'ai comprises. Il ne sert à rien, en mathématique, et de manière général, d'apprendre sans comprendre (à part une liste de courses ou les décimales de Pi, auquel cas il ne sert à rien de l'apprendre.)

Dans le cas des catégories, les définitions étaient expliquée en montrant comment des propriétés bien connus d'algèbre ou de topologie étaient des cas particuliers des propriétés catégoriques qu'on nous introduisait. C'est génial pour comprendre, vu que ça ramène à des notions connus. Par exemple, je me souviens que Épi et Mono sont les généralisations de surjectif et d'injectif. Ou d'injectif et surjectif. J'avais toujours un doute. Dans tous deux cas, ça me permettait donc de savoir que même un Épi peut être Mono. Mais d'une part, ça garde la question «Un Épi, c'est surjectif ou injectif ?» Et d'autre part, savoir que c'est une généralisation ne m'aide pas à savoir comment ça généralise. Quelles propriétés des surjections sont gardées et lesquels ne le sont pas. Par exemple, suivre de trop près la métaphore indiquerait que Épi et Mono implique Iso.

Et pour ce genre de problème, un logiciel de mémorisation est génial. Le souci, c'est que les decks créé par la communauté d'utilisateur de anki sont assez médiocres. D'abord parce qu'on dirait qu'aucun procédé systématique n'a été suivi en créant les cartes (certains ont juste scanné des pages de cours manuscrites). Et puis parce que c'est rarement des maths qui m'intéressent. Je ne cherche pas à apprendre mes tables de multiplication, ni les bases de calculus. En fait, les seuls deck de la communauté que j'utilise sont: pour apprendre les notes naturelles sur les cordes de guitare, les techniques pour utiliser efficacement un logiciel de mémorisation, et le deck créé à partir de Rationality, from A.I. to Zombie. Je me retrouve donc à créer mes propres decks à partir de livre de cours ou d'articles de recherche dont j'aimerai maîtriser le contenu.

Les règles que j'utilise.

Les decks.

J'utilise un deck par livre. Parce que comme ça je pourrai donner ses decks à la communauté en indiquant précisément ce que contient le deck. Ça veut dire que j'ai choisi de prendre le temps de remettre dans le deck des trucs que je crois déjà connaître; et en particulier des choses sont en double d'un deck à l'autre (Par exemple, la définition d'un ensemble ouvert se trouve bien sûr dans un deck de topologie. Mais il se trouve aussi dans un deck d'analyse complexe, où la définition est restreinte aux cas des espaces métriques.). J'ai l'impression que ça ne me fait pas perdre beaucoup de temps, que ça me permet d'être sur que je n'omet pas de chose que je pense maîtriser à-peu-près - mais en fait non. Et ça permettra à la communauté puisse commencer par n'importe quel deck.

Je précise tout de suite que ces decks ont vocation à servir à aider la lecture du livre. Mais PAS à la remplacer. Parce que avoir vu au moins une fois la démonstration est souvent important. Et que mes deck ne reprennent pas en général les démonstrations[ ].

Je ne créé pas la totalité d'un decks d'un coups. Par exemple, je lis un bouquin de théorie des ensemble. Pour l'instant je n'ai créé que le chapitre un. Parce qu'il y a déjà tellement de définitions différentes que je ne maîtrise pas encore par cœur et qui me demande de réfléchir (le type, la cofinalité) que je ne serai pas encore capable de comprendre la suite du livre. (À ce sujet, il faudrait que je conseille aux utilisateurs de mes decks de «suspendre» l'étude du chapitre n tant qu'ils ne maîtrisent pas le chapitre n-1.)

À contrario, je construis plusieurs decks d'un coup. Ce qui est d'ailleurs assez cohérent avec la manière dont les maths sont étudiées en cours. C'est à dire que si je suis bloqué pour l'instant par ma maîtrise de l'analyse complexe, ça ne m'empêche aucunement d'avancer dans un livre de théorie des graphes. Et le temps d'avancer petit à petit dans l'apprentissage sur Anki des résultats d'analyse, je peux y mettre des résultats de théorie des graphes.

Type de carte

Une carte standard de Anki montre un recto et demande un verso. Et parfois les cartes sont à double sens: on montre le verso et on demande le recto. C'est génial pour du vocabulaire, et je l'utilise quand je cherche à me souvenir de la traduction anglaise d'un mot que je connais en français, ou vice-versa.

À part pour le vocabulaire, j'utilise presque uniquement les textes a trous. C'est à dire, comme son nom l'indique, il y a un texte de base, et on cache une partie du texte que l'utilisateur doit retrouver. L'intérêt du texte à trou, c'est que ça permet de simuler les cartes normales. Donc une fois qu'on a sélectionner texte à trou, on n'a jamais besoin de rechanger le type de texte.

Je rajoute dans un champ à part le numéro de chapitre, section, sous-section. Et si c'est un théorème, lemme, corollaire, définition[ ], je rajoute son numéro. Je ne rajoute pas (encore) le numéro de la page, parce que c'est souvent redondant avec les informations précédentes. Mais je suppose que je devrai le faire quand il n'y a pas de numéro d'environnement, car dans certains livre où rien n'est numéroté et dont les sections font 10 pages, retrouver une définition précise peut prendre plusieurs minutes. Cet intérêt est d'autant plus grand que, pour se souvenir d'un résultat, une méthode efficace est de se souvenir de sa preuve. Et que réciproquement, il est pratique d'avoir la position du résultat pour relire la preuve si on s'aperçoit qu'on l'a oublié.

Un dernier point important: je coche systématiquement la case disant à Anki de ne pas vider les champs quand j'ai rempli une carte. Concernant les numéros de chapitre et de section, c'est évident que ça change rarement d'une fois sur l'autre et qu'on gagne du temps en n'ayant pas à les retaper. Concernant les maths elles-mêmes, j'ai remarqué que les objets arrivant les uns après les autres sont souvent similaires. Ainsi, dans un livre d'algèbre linéaire, beaucoup de résultats vont commencer par «Soit U,V deux espace vectoriels et T un morphism de U dans V». C'est quand même pratique d'éviter de retaper ça a chaque fois.

Définition

Pour une définition, il y a en général trois trous. Le premier, c'est le nom de l'objet défini. Le second c'est la notation utilisée pour représenter l'objet. et le troisième c'est la définition. Si un objet admet plusieurs définitions équivalentes, je rajoute un trou par définition. Parce que si on te demande ce qu'est un carré, et que tu réponds : un losange avec un angle droit, tu n'as pas envie d'avoir faux car ça a été défini comme un rectangle avec deux côtés adjacents de mêmes longueurs.

Attention cependant, il vaut parfois mieux que la notation et la définition apparaissent dans le même trou. Ainsi pour X un ensemble, il est simple d'intuiter que «Aff(X)» est «le plus petit espace affine contenant X». Or ce genre de question est totalement inintéressante. Ce qu'il faut c'est retrouvé cette définition à partir de «l'ensemble des éléments de la forme Somme des x_ir_i, ou x_i appartient à X, r_i appartient au corps, et la somme des r_i vaut 1.»

Théorème

Un théorème comprend en général deux trous: les hypothèse, et la conclusion. Un troisième trou si le théorème est important et admet un nom classique. Cependant, il faut faire attention, quand une hypothèse introduit un objet, il vaut mieux introduire l'objet en dehors du trou. C'est à dire «Si ..., alors le centre de P est non trivial» est peu clair. Alors que «Soit P un groupe. Si ..., alors le centre de P est non trivial» est plus clair.

Hypothèses

Une première chose très importante est de toujours remettre toutes les hypothèses. Parfois, certaines hypothèses sont marquées en début de section/chapitre et sont supposées vrai pour tout le chapitre. Sauf que lors de la révision, on ne voit plus ces hypothèses (il serait même absurde de demander à connaître les hypothèses par cœur, chapitre par chapitre).

Il est aussi important de mettre des trous vides. En théorie des automates, certains théorèmes concernent des monoides, et d'autres uniquement des monoides finis. Si je dis «Soit M un monoide fini» ou «soit M un monoide», la simple présence du trou m'indique que l'hypothèse est que M est fini. Donc dans le deuxième cas, il est indispensable de mettre «Soit M un monoide ». C'est d'autant plus simple à faire que, si on dit à Anki que quand on créé une nouvelle carte, ses champs soient les champs de l'ancienne carte,

Implication multiples

Ce qui m'amène à un autre problème. Une hypothèse peut avoir plusieurs implications. Une propriété peut être impliqué par plusieurs hypothèse différentes. Donc il vaut mieux mettre «Si P1 ou P2 .. ou Pi alors Q», ou bien «Si P alors Q1 et Q2 ... et Qi». En effet, on ne voudrait pas avoir tort juste parce que, de toutes les conséquences, on a choisi celle qui est sur une autre carte. Ici, chaque terme entre crochet indique un trou différent.

On tomberait bien sur sur un problème si P implique Q et R et que Q est impliqué par O et P. Mais jusqu'à présent, je ne suis pas tombé dessus, et j'ai l'impression que dans les maths, en pratique, ça arrive rarement.

Ordre des mots

Quand un théorème est de la forme «Le centraliseur de A dans G divise le normalisateur de A dans G». Il faut absolument avoir «Le normalisateur de A dans G est divisé par le centraliseur de A dans G». Sinon on peut compléter le résultat par simple reconnaissance de motif. En se doutant que le trou du milieu est soit une égalité, soit une affirmation sur la divisibilité. Pour l'instant je n'ai pas encore trouvé comment faire ça efficacement, mais il faudrait que je repasse sur mes anciennes carte et fasse cet ajout.

Exemples

La dernière chose que je veux rajouter dans Anki, ce sont les exemples. En général, ils sont de la forme «A, B.., Z sont des exemples de P».

J'ai longtemps cru que les exemples ne faisaient pas parti des mathématiques. Parce que, d'un point de vue purement Bourbakiste, logique, un exemple n'apparaît pas dans les preuves, et ce qui compte c'est: définition, axiomes, théorème, preuves. Et je pense que c'est une idée assez répandue, puisque je me souviens qu'un prof de l'ENS avait insisté sur le fait qu'il ne fallait pas qu'on ignore les exemples.

Depuis, j'ai compris que les exemples avaient aux moins trois utilités. Officiellement, ça donne de l'intuition, en montrant dans quel cas les hypothèses peuvent s'appliquer. Formellement, un exemple permet de montrer qu'un ensemble d'hypothèse est non contradictoire, et donc qu'il est pertinent de considérer ces hypothèses. Et en pratique, un exemple pourra être réutilisé quand on veut étudier des affirmations qui ne sont pas dans le cours.

Révision

Une fois les cartes faites, je demande à Anki de créer toutes les images à partir de LaTeX (étape non automatique, ce qui est bête) et j'utilise la synchronisation (possible uniquement via leur serveur), pour envoyer le tout vers mon téléphone portable. (Application gratuite et sans pubs, ils sont fantastiques !) et les réviser dans le métro/quand j'ai un moment seul sans mon ordinateur.

Bien sûr, en créant les cartes, je fais des fautes. Soit parce que je n'écris pas du LaTeX sans faute et que Anki affiche les message d'erreurs dans les cartes au lieu de le montrer à leur créations. Soit parce que j'ai oublié un mot, remplacé un mot par un autre (typiquement, je confond systématiquement les mot set et state - ce qui est ennuyeux quand on fait de la logique et des automates). C'est pour ça aussi que, quand je créé une carte, d'indiquer précisément d'où vient l'information. Si c'est le cas, s'il y a une faute, je «suspend» la carte. Et une fois synchronisé, je regarde les cartes suspendues sur mon ordinateur pour les corriger.

Parfois, c'est une carte à trou, et le trou fait que la phrase n'a aucun sens. Dans ce cas je suspend aussi avec un message explicatif. Ça arrive surtout si je n'ai pas respecté les règles énoncées plus haut, par exemples pour les premières cartes que j'ai créé. Même règles si je vois une faute tellement grosse que je ne comprend plus la question.