Un peu de moi

Comme beaucoup d’entre vous, je traverse en ce moment des épreuves douloureuses dans ma vie professionnelle, comme dans ma vie personnelle. Des ascenseurs émotionnels importants…

Cela m’amène à regarder derrière moi, à faire le point sur le chemin parcouru. et je déteste ça ! J’ai une phobie un peu particulière : je n’aime pas regarder les albums photos. L’idée de me souvenir d’une période passée, même heureuse, surtout heureuse, partie à jamais, me déprime. Je suis résolument tourné vers le futur. J’aime imaginer les progrès de l’avenir, les nouveautés, les inventions, relever les défis, les problèmes à venir…

Mais parfois, il faut bien regarder en arrière.

Je m’entête à tenir ce blog, qui m’a apporté beaucoup d’ennuis et d’inimitiés, mais aussi quelques belles rencontres, et quelques fiertés. Lorsque j’ai ouvert ce blog, l’univers des blogs était déjà bien installé, mais encore plein de fougue. Depuis, beaucoup de blogs que je connaissais ont fermé, ou ont évolué vers des modèles différents. Je dois aussi reconnaître que beaucoup de blogs ont ouvert et que jamais autant de monde n’a publié, lu ou échangé grâce à internet que depuis ces dernières années.

Alors pourquoi suis-je toujours là, à bloguer sur moi-même ?

J’écris sur ma vie personnelle. Ce blog est un peu un journal intime en ligne (un journal « extime »). Ma vie personnelle, en paraphrasant un peu Desproges, est intéressante, enfin surtout pour ma famille et mes amis. Surtout pour moi. Quand je vis une situation émotionnellement forte, j’ai besoin de mettre des mots dessus pour canaliser mes émotions. Mais pour éviter de submerger mes proches (qui ont déjà bien du mérite à me supporter), j’ai choisi de mettre ces mots par écrit. Et la plupart du temps, ces mots finissent par être publiés dans un billet, pour qui voudra bien les lire.

Je n’écris pas pour convaincre. J’ai d’ailleurs peu donné mon avis ici pendant les dernières élections, alors que les sujets sociétaux abordés (ou pas) me passionnent. Bien malin celui ou celle qui sait pour qui j’ai voté. Beaucoup seraient surpris, certains déçus, d’aucuns s’en foutent…

J’écris le soir, quand les enfants (ou plutôt celui qui est encore entre nos murs 😉 sont couchés et font semblant de dormir. J’écris des « rapports d’étonnement » sur des histoires que j’aimerais que mes petits enfants lisent en se disant « woua, pépère Zythom a vécu des drôles de trucs ! »… (quand j’ai dit à ma femme que ça me ferait bien rire si mes futurs petits enfants m’appelaient pépère, j’ai du la mettre en PLS…)

Quand je regarde les dernières années écoulées, voire les derniers mois, je vois un grand adolescent de 54 ans qui peine à devenir adulte. J’ai toujours les yeux qui brillent quand je commande un nouvel écran et une alim (de gamer) pour mon fils. J’aime préparer mes cours et faire le show en amphi devant les étudiants. J’ai le cœur qui s’emballe quand je reçois un scellé ou un dossier judiciaire à étudier.

Mais j’ai la nostalgie du « tout est possible » de ma jeunesse.

Quand je regarde derrière moi, je ne vois pas l’homme de 53 ans, ni celui de 52 ans ou de 51 ans. Non, je vois l’homme de 30 ans qui démarrait une nouvelle vie dans une nouvelle ville, au bras d’une jeune épousée. TOUT était possible.

Alors maintenant que j’ai bien avancé sur le chemin-dont-on-connait-la-fin, plutôt que de regarder les possibles qui ne se sont pas (encore) réalisés, ou le manque d’énergie qui m’anime pour ranger mon bureau, je préfère continuer à regarder l’avenir et imaginer des lendemains qui chantent :

– Le wifi est mort ? Vive le wifi ! Je suis en train de repenser complètement mon défunt réseau Wifi domestique (billet à venir).

– J’ai des défis professionnels à relever : faire beaucoup plus avec plus (je recrute !)

– Le deep learning revient en force ! Pourquoi ne pas essayer de comprendre et se lancer à mon niveau dans un petit coin du sujet ?

– Ce blog tourne en rond, rendons le carré ! Et si je sortais le tome 7 ?

Je m’encrasse.

J’ai besoin de faire les poussières.

De me sortir les mains des poches.

De prendre des risques.

TOUT est encore possible..

Pourvu que ça dure 😉

Bon, je vous laisse, j’ai un bureau à ranger.

Terminologie

J’ai été élevé dans l’amour de la langue française, et dans sa théurgie opératoire qu’est la dictée. Les années ont passé, et avec elles, ma maîtrise de l’orthographe et de la grammaire.

C’est pourquoi, lorsque j’ai publié ce blog sous forme de livres gratuits (sans DRM), j’ai demandé de l’aide auprès de ma mère institutrice.

Un jour, en installant un dictionnaire sous LibreOffice, j’ai vu apparaître une version « réforme de 1990 ». Je me suis renseigné (essentiellement sur cette page), et depuis le tome 2 (paru en 2012), j’essaye de tenir compte de l’évolution de la langue française.

Mais les pièges sont nombreux et il m’est souvent difficile d’éviter une cacographie, surtout en travaillant dans le domaine de l’informatique : doit-on dire « la wifi » ou « le wifi », faut-il reprendre quelqu’un qui parle de « cryptage » quand il ne parle pas de mise en crypte

Je vais prendre l’exemple qui me parle le plus : l’utilisation du mot « digital ». Dans mon souvenir, la première fois où j’ai vu ce mot mal utilisé, c’était sur une affiche publicitaire « Orange – La Révolution Digitale ». J’étais stupéfait de voir une énormité pareille s’étaler en 4×3.

J’écris ceci pour ma mémoire et celle de mes (petits)enfants. J’ai connu une époque où le mot « digital » était simplement un adjectif associé au substantif doigt (exemple : empreinte digitale). C’est également un mot anglais qui signifie : « Digital usually refers to something using digits, particularly binary digits. »

Et comme tout le monde le sait, « digits » ce sont les chiffres. Ça vient d’ailleurs du latin « digitus« , qui veut dire « doigt ».

Mais alors, « révolution digitale », ça veut dire « révolution des doigts » ?

Oui.

Mais on compte bien sur les doigts ?

Oui.

D’ailleurs les anglais utilisent le même mot « digit » pour doigt et chiffre.

Oui.

Finalement, « révolution digitale », c’est la révolution des chiffres ?

Moui.

Et aujourd’hui, les chiffres, on les manipule surtout avec des ordinateurs ?

Mmmmoui

Alors, « révolution digitale » et « révolution numérique », c’est pareil, non ?

Rrrrrhaaaaaaaa

Et donc l’univers marketing s’est emparé de l’univers numérique pour en faire un univers digital, parce que, Coco, l’angliche, ça sonne mieux. Au début, ça fait un peu mal, mais après ça glisse (tiiiitre!).

Les années ont passé, et maintenant, c’est moi qui passe pour un vieux con au boulot parce que j’ai osé faire une remarque sur le sujet à quelqu’un. Ça m’a quand même fait réfléchir : est-ce un combat qui vaille la peine d’être mené ?

J’ai pesé le pour et le contre. J’ai eu un flash sur les grammar nazis, ceux qui interviennent dans une conversation pour corriger une typo… Je me suis vu en train de rager à chaque fois que quelqu’un utilise le mot digital en lieu et place de numérique. Je me suis dit que c’était de l’énervement mal placé, qu’il fallait que je sois au dessus de ça pour me concentrer sur le contenu, plus que sur la forme.

Donc, je suis en train d’apprendre à accepter l’utilisation du mot « digital » imposée par le marketing. Il me reste à accepter « au jour d’aujourd’hui », « cryptage », « darkweb », « malgré que », « autant pour moi » et tant d’autres. Il en va de ma plasticité synaptique autant que de ma tranquillité d’esprit.

Vous pouvez réviser votre goétie et me faire part de votre désapprobation en commentaire 😉

Tu ne seras pas un hacker mon fils !

Je suis l’heureux papa de trois enfants, qui sont maintenant grands. Il est loin le temps où j’écrivais ce billet sur l’ouverture du Skyblog de ma fille

L’aînée est maintenant en cinquième année de médecine, la puînée en deuxième année d’école de commerce. Et le troisième entre cette année au lycée. J’ai donc encore un ado à la maison 🙂

J’ai essayé d’élever mes enfants de mon mieux. Je les ai accompagné à l’école, d’abord jusque devant la grille, puis lâchés une centaine de mètres avant. Je les ai encouragé lors de leurs activités sportives et culturelles. J’ai essayé de leur transmettre des valeurs.

Enfin, pour dire la vérité, j’ai surtout été l’assistant de mon épouse qui a encaissé l’essentiel de la charge mentale de l’organisation familiale… Mais bon, au moins j’ai été présent. Je le suis toujours.

Mon rôle principal est d’être le « scientifique » de la cellule familiale, en charge plus particulièrement des outils numériques : ordinateurs, sauvegardes, réseau, accès internet, messageries, imprimante partagée, scanner, stockage partagé, protection de la vie privée, sécurité, dépannage, récupération de données, wifi, DHCP, DNS non menteurs, consoles de jeux, etc.

Concernant le suivi des leçons, je suis le mauvais flic du couple (au sens de la stratégie bon/mauvais flic), celui dont on craint le levé de sourcil en cas de mauvaise note. Curieusement, aucun de mes enfants n’aime me demander de l’aide pour expliquer un point obscur du cours de maths, ou de physique, ou d’anglais, ou de science de la vie : « En fait, tu expliques trop longtemps. Nous, on veut juste la réponse au problème, toi tu nous expliques toute la théorie en vérifiant qu’on a tout compris… C’est lourd. »

Être passionné n’a pas que des avantages 😉

C’est pourquoi je me suis fait une raison depuis longtemps sur le fait qu’aucun de mes enfants ne sera passionné par ce que j’aime : l’informatique.

Pourtant, hier soir, mon fils m’a dit à table la chose suivante :

« Papa, tu peux m’expliquer la carte mère ? »

Moi: « … »

Lui: « Parce que mon copain, il m’a dit que pour être encore meilleur en jeux vidéo, il faudrait que je passe sur ordinateur plutôt que sur console, et que je démonte mon ordinateur pour le bidouiller. Tu es d’accord pour m’aider ? »

Dans ma tête, il s’est passé une sorte d’explosion nucléaire. Mon cœur s’est arrêté de battre, puis s’est emballé à 200 bpm. Mes mains sont devenues moites. J’ai vu un de mes enfants accéder au Graal, devenir le maître du monde, et régner sur les sans-dent-bleue. Enfin, la chair de ma chair allait aider HAL et le Maître Contrôle Principal à surmonter leur inhumanité pour rejoindre Andrew, l’homme de 200 ans.

J’ai croisé le regard de mon épouse qui rayonnait de bonheur pour moi.

C’est pourquoi ma réponse a jeté un froid glacial : « Non ».

Mon visage est resté fermé. Avais-je entrevu l’immensité de la tâche qui reste à accomplir pour accéder au sommet de ma discipline ? Ou le visage écrasant de l’informatique omniprésente dans nos vies plus-vraiment-privées ? Allais-je laisser mon innocent de fils participer aux débauches numériques qui s’annoncent dans tous les objets qui vont nous encercler ?

NON.

J’ai laissé quelques secondes s’écouler. Mon épouse m’a regardé avec un regard navré. Mon fils était en plein désarroi.

Je venais de réussir ma plus belle « blague de père » de la semaine.

En effet, dans ma famille, les pères ont un humour extraordinaire, mais qui ne fait rire qu’eux-même. Le coup de klaxon dévastateur devant la grille du collège. Le jeu de mots subtil devant les ami(e)s des enfants. Bref, ce qu’on appelle dans notre petit cercle, une « blague de père ».

KrkrkrkrkrKRKRKRKR

hahahahaHAHAHAHA (risus sardonicus)

ÉVIDEMMENT, c’est avec une immense fierté que je vais apprendre à mon fils à démonter son ordinateur, à l’améliorer, à le bidouiller, à le hacker.

Tu seras un hacker, mon fils !

Allez, à tantôt !

Les temps sont durs pour moi, avec comme conséquence un silence en ces lieux. L’avantage de cette situation est qu’elle m’incite à écrire beaucoup de billets, puisque c’est ma manière d’évacuer mon mal être. Je ne peux pas encore publier ces billets, tant que les cendres sont encore chaudes, mais j’espère que dans quelques mois, je sourirai de nouveau.

En attendant, je m’accroche au sourire de mon épouse, et à ceux de mes enfants. Le bonheur tient à la capacité que l’on a de savourer ces choses là.

Ma tribu et moi, nous partons trois semaines faire des randonnées autour du Saint Laurent au Canada, pour se vider la tête et s’enrichir des aventures que l’on va vivre ensemble. Je vais en profiter pour renouveler ma collection de casquettes, et essayer de retrouver ma confiance en moi.

Ce sera silence radio sur ce blog pendant tout ce temps.

Ensuite, je viendrai de nouveau raconter mes histoires.

Allô ça va bien ? Allez, à tantôt 😉

TeamVieux

Je me rends souvent compte sur les réseaux sociaux que je suis un peu à part (mais pas tout seul 😉 quand on considère le critère de l’âge. Beaucoup des personnes que je suis, sont plus jeunes que moi, et par ailleurs, beaucoup de mes amis IRL qui sont du même âge que moi ne sont pas sur les réseaux sociaux…

Je suis né en 1963.

Je fais parti de la #TeamVieux… voire #TeamTresTresVieux

Comme je n’y peux pas grand chose, je m’interroge sur ma résilience face au choc de la vieillesse sagesse. Et le constat n’est pas fameux.

J’ai beaucoup perdu en plasticité synaptique. J’ai du mal à retenir tous les éléments nouveaux lorsque j’assiste à une formation. Je suis pétri d’habitudes et de réflexes, même si je lutte contre ces ornières (voir ce billet de 2007).

La pratique de mon métier s’éloigne inexorablement de la technique (que j’aime) pour devenir plutôt un gestionnaire de ressources : la part de management augmente avec l’effectif que j’encadre, je mets en place des indicateurs qualités pour maîtriser les budgets et la croissance de l’entreprise, la part juridique de mon activité de responsable informatique augmente…

J’ai été marqué par la lecture de ce billet qui m’a fait comprendre le phénomène de perte progressive de nos capacités cognitives décrit sous le terme savant « d’agnosie de l’empan cognitif« … Et bien entendu, je me suis reconnu.

J’ai subi une petite dépression (voir le billet intitulé « la honte ») cette année et un burn-out qui m’a laissé sur les rotules, avant de réaliser qu’il fallait que je me fasse aider (d’où les indicateurs qualité pour justifier d’une embauche).

Sur Mastodon, j’ai écris « Tu sais que tu commences à être vieux quand tu n’as plus le temps de
saisir les 6 chiffres du jeton d’authentification avant qu’ils ne soient
remplacés par 6 autres… », ce qui montre à quel point je suis atteint par la décrépitude 😉

Concernant les expertises judiciaires, j’atteins presque l’âge que je critiquais quand j’ai prêté serment, à l’âge de 35 ans, il y a plus de 18 ans… J’étais jeune et plein d’entrain, je voulais proposer mes compétences à la justice, et j’étais consterné de constater que l’expert judiciaire juste au dessus de moi en âge dans mon ressort avait 30 ans de plus que moi (il a exercé jusqu’à 75 ans !). Je considérais qu’il était difficile pour une personne de 65 ans d’être encore dans le coup au niveau technique. Sans en être encore là, j’ai bien conscience du côté artisanal de mes compétences, et leurs limites (lire le billet « Artisanat de l’expertise »). J’envisage maintenant sérieusement de demander mon retrait de la liste des experts judiciaires. 18 ans, c’est déjà beaucoup.

A titre d’amusement, j’ai repris mes travaux de recherche, à peu près là où je les avais laissés en 1994 quand j’ai quitté mon poste de Maître de conférences pour me consacrer pleinement à l’enseignement, puis à la fonction support. Cela fait beaucoup de choses à rattraper, et cela occupe mes soirées à l’infini, quand je n’ai pas de réunions municipales, ni d’expertises judiciaires à faire. C’est effrayant tout ce que l’on peut oublier, en particulier dans le domaine des mathématiques…

Ce que je regrette le plus, ce n’est pas la perte de mes tablettes abdominales, ni de ma souplesse, ni de mon énergie, non. Ce que je regrette, c’est la perte de mon employabilité. J’ai une expérience, un savoir-faire, une envie d’apprendre, une envie de découvrir de nouveaux domaines, mais personne ne souhaite embaucher une personne qui a passé 50 ans. Même si j’accepte de redémarrer à zéro dans un domaine connexe (comme dans la sécurité informatique par exemple, voir ce billet sur l’ANSSI).

Pourtant, malgré la rouille de mes méninges, de mes articulations et de mes connaissances techniques, je me sens capable de mettre en place tous les aspects de l’informatique d’une start-up, d’une TPE ou d’une PME ! A moi tout seul, je peux concevoir une infrastructure correctement dimensionnée, gérer le projet de mise en place (du budget à la réception), assurer l’exploitation et le suivi, mettre en place une sécurité « raisonnable ». Idem pour les serveurs, les outils logiciels métiers, les accès à internet, la téléphonie…

Mais simplement en regardant l’âge inscrit sur mon CV ou mon profil LinkedIn, je sens que je suis écarté. C’est ce qui me blesse le plus.

Vieillir, c’est se souvenir d’une époque où l’on pouvait faire des choix. C’est se retrouver coincé sur une route sans carrefour, dont on sait que c’est une impasse et dont on connaît déjà la fin.

Parfois c’est dur…

Omnes vulnerant, ultima necat 
« Toutes blessent, la dernière tue. » Formule affichée sur les
cadrans d’horloge et les cadrans solaires en référence aux heures qui
passent.
Omnia dicta fortiora si dicta Latina 
« Un propos prend plus de force lorsqu’il est dit en latin. »

La carte graphique, CUDA et l’expert

Je me suis lancé passionnément dans le calcul parallèle (cf billet précédent). Pour cela, je me suis offert une carte graphique à un prix abordable et que je destine au calcul intensif.

Imaginez mon impatience en attendant la livraison… Le jour J arrive et me voilà en train de démonter ma machine pour y ajouter ce magnifique objet technologique.

A ce stade du récit, il me faut faire un petit rappel : je suis adepte de GNU/Linux depuis de nombreuses années. J’aime tester de nouvelles distributions, j’aime l’univers GNU/Linux, ou FreeBSD. J’ai fait ma thèse sous Domain/OS et HP-UX. J’ai bien connu la distribution Yggdrasil qui était la première sur cédérom, c’est dire si je suis vieux. A titre professionnel, j’ai d’abord choisi Yggdrasil, puis Slackware, puis Red Hat, et enfin depuis de nombreuses années, Debian. A titre privé, j’ai beaucoup aimé Gentoo, puis Ubuntu, pour maintenant utiliser Mint.

La plupart des analyses techniques que je réalise pour mes expertises judiciaires sont faites sous GNU/Linux en utilisant des logiciels en ligne de commande.

Pour autant, j’apprécie la facilité d’installation des distributions GNU/Linux actuelles : il suffit de graver un DVD ou d’utiliser une clef USB et hop, les différents éléments de votre machine sont fonctionnels (en général ;-).

J’aime beaucoup la facilité…

Les plus barbu(e)s d’entre vous se souviennent des heures passées à configurer leur serveur X pour arriver à brancher deux malheureux écrans sur la même carte graphique. C’est un peu là où je vais en (re)venir.

La semaine dernière, lorsque j’ai reçu ma nouvelle carte graphique, j’étais tout excité à l’idée de transformer mon bête ordinateur en bête de calculs parallèles. Après m’être assuré (quand même) que toutes mes données étaient correctement sauvegardées, j’ai démonté ma tour pour y insérer cette nouvelle carte graphique surpuissante.

Premier constat : la carte graphique nécessite une alimentation dédiée, avec un connecteur 8 broches… Affolé, je regarde l’intérieur de ma machine éventrée, et je constate avec joie qu’un connecteur sort de mon boitier d’alimentation avec 6 broches d’un côté et deux de l’autre qui ressemblent fort au truc nécessaire pour faire fonctionner ma carte graphique. Je branche, rien ne fume o/.

Deuxième constat : je dispose de deux emplacements PCI Express me permettant de conserver mon ancienne carte graphique utilisée par mes deux écrans.

Je branche tout ce petit monde et redémarre mon ordinateur. Magie (et travail) de la communauté open source, tout est reconnu par le système d’exploitation, les pilotes par défaut chargés et tout fonctionne parfaitement. Sauf que…

Je ne perds pas de vue mon objectif : faire massivement des calculs. J’ai donc ma carte graphique d’origine sur laquelle sont branchés mes deux écrans, et ma nouvelle carte graphique sur laquelle rien n’est branché et qui va me servir de calculateur GPU. Sauf que…

J’ai soigneusement choisi mon modèle de carte graphique pour qu’elle intègre un GPU Nvidia qui, au moment où j’écris ce billet, est admirablement programmable avec un environnement qui s’appelle CUDA. Avant de casser ma tirelire, j’avais fait quelques essais avec le vieux portable de ma fille (seul appareil de la maison muni d’une carte Nvidia). Sous GNU/Linux Mint, l’installation de l’environnement de développement CUDA se fait très simplement avec la commande « sudo apt-get install cuda ». Après quelques réglages post-installation, me voici donc en train de jouer avec les 1920 cœurs des 15 processeurs graphiques. Je suis aux anges 🙂 Sauf que…

Sous Windows, quand vous installez un nouveau composant ou un nouveau programme, il faut la plupart du temps redémarrer l’ordinateur. Ce n’est pas vrai sous GNU/Linux. J’ai donc pu m’amuser immédiatement pendant plusieurs heures avec mon nouveau jouet avant d’éteindre mon ordinateur.

Mais le lendemain, catastrophe. En démarrant ma machine, plus rien ne fonctionnait. Enfin, « plus rien » non : je n’avais plus d’interface graphique fonctionnelle. Me voici parti pour plusieurs jours de galères « à l’ancienne » pour essayer d’abord de réparer ma configuration graphique, puis pour essayer de comprendre. Comme avant, j’ai écumé les forums, j’ai cherché les tutos, les howto, les manuels correspondant à mon problème…

Pour faire court : je n’ai pas réussi à trouver d’aide.

Oui, je sais. Je suis EXPERT. Je suis EXPERIMENTE (= vieux). Mais non. Je n’ai pas réussi à faire fonctionner deux cartes graphiques (une vieille Radeon et une jeune Nvidia) dont une devait être consacrée à la gestion de mes deux écrans et l’autre à mes calculs massivement parallèles… Le serveur X Windows et les deux pilotes graphiques associés (libres ou propriétaires) ne semblent pas vouloir fonctionner ensembles après redémarrage. Pourtant j’arrive à faire fonctionner l’ensemble AVANT redémarrage…

Je me suis tapé la configuration d’un xorg.conf (fichier qui est sensé avoir disparu).

J’ai abandonné Mint pour installer Ubuntu (comme conseillé par la doc CUDA).

J’ai réussi la configuration avec une seule carte RADEON.

J’ai réussi la configuration avec la seule carte Nvidia.

MAIS je n’ai pas réussi à créer la configuration avec les deux cartes.

Après plusieurs jours de transpiration, j’en suis arrivé à la conclusion suivante : je suis NUL en configuration graphique GNU/Linux.

J’ai donc ravalé ma fierté, retiré ma nouvelle carte graphique, remis ma configuration d’origine GNU/Mint, et j’ai sorti un vieux PC de son placard. J’y ai installé un Ubuntu server tout frais. J’y ai placé ma carte graphique surpuissante. J’ai constaté l’absence d’alimentation dédiée… J’ai acheté cet adaptateur d’alimentation SATA vers carte vidéo PCI Express 8 broches. J’ai attendu trois jours pour la livraison.

Et j’ai maintenant un calculateur dédié aux calculs parallèles.

Je m’y connecte à distance en ssh. Je lui ai consacré un processus de sauvegarde dédié. Il a une place particulière dans mon bureau et dans mon cœur.

Il faut savoir reculer pour mieux avancer.

Avant je programmais un réseau de neurones qui travaillait sur 60 000 exemples d’apprentissage sur plusieurs semaines. Maintenant j’ai 60 000 réseaux de neurones identiques qui travaillent chacun en parallèle sur leur exemple d’apprentissage, en une nuit à une vitesse de folie sur 8 Go de mémoire graphique ultra rapide.

Le rêve d’un vieux chercheur 🙂

Mais cela, c’est une autre histoire.

Deep learning, BFGS, GSL, OpenMP et CUDA

Il m’arrive par moment de renouer avec les travaux de recherche de ma jeunesse : les réseaux de neurones. J’ai d’ailleurs écrit ici même quelques billets sur le sujet, dans une série non terminée.

Je tombe régulièrement sur des articles consacrés au deep learning, nouvelle terminologie à la mode remettant en scène les outils de ma jeunesse. Alors je creuse un peu plus, rebondis de publication en publication, jusqu’à retrousser les manches et ressortir mes vieux rêves.

Bien sur, le temps est passé, et de nombreuses avancées ont eu lieu. Mais si j’ai appris une chose de mes années de jeune chercheur, c’est que tout est possible pour qui s’en donne la peine. Je n’ai donc aucune honte à remettre mes habits d’étudiant et à lire toute une bibliographie sur ces sujets.

J’ai recommencé il y a quelques semaines. Une heure par ci, deux heures par là, prises sur mes soirées et mes week-ends, entre deux occupations plus sérieuses. J’ai commencé à apprendre le langage Python, surtout pour sa simplicité. Je suis loin d’en avoir fait le tour et nous nous apprivoisons doucement.

Il faut dire que j’ai enseigné pendant dix ans le langage C… Et que j’aime beaucoup son côté « proche de la machine ». Je passe donc souvent de Python au langage C, et depuis quinze jours, j’écris et je réécris un ensemble de programmes de simulation de réseaux de neurones et d’optimisation.

Il est vrai que j’ai découvert sur internet beaucoup d’outils extraordinaires, comme par exemple la bibliothèque mathématique GSL avec laquelle je joue beaucoup, en particulier avec la fonction d’optimisation multidimensionnelle gsl_multimin_fdfminimizer_vector_bfgs2 qui implémente l’un des algorithmes d’optimisation avec lequel j’ai le plus travaillé dans ma jeunesse : BFGS.

Mais rien ne vaut l’écriture soi-même d’un tel algorithme d’optimisation. Cela permet d’en comprendre les subtilités, surtout que sa mathématique reste encore à ma portée, et de l’adapter à son problème précis, le tout piloté par une classique recherche linéaire basée sur les conditions de Wolfe et Powell (attention allergiques aux maths s’abstenir ;-). Comme je n’ai pas de problème précis à régler, je joue avec un problème classique de classification de chiffres manuscrits issus de la base de donnée MNIST.

Je suis encore très loin des performances des meilleurs algorithmes, mais au moins, cela me permet de tester quelques idées.

J’ai donc délaissé provisoirement le langage Python pour écrire un programme en langage C et m’amuser avec des tableaux de pointeurs, des allocations de mémoire et du calcul de matrices de grandes tailles.

En effet, l’apprentissage supervisé d’un réseau de neurones consiste à trouver le meilleur jeu de coefficients permettant de minimiser une fonction d’erreurs. Dans le problème qui m’occupe (la reconnaissance de caractères manuscrits), les entrées sont des images 28×28 en 255 niveaux de gris. Cela fait quand même 784 entrées, plus l’entrée constante qui permet de passer d’un espace vectoriel à un espace affine, soit 785 neurones d’entrée.

Ces 785 entrée injectent les pixels dans un réseau de neurones complètement connectés (je n’aime pas les réseaux à couche cachés, j’ai toujours préféré sa généralisation complètement connectée). Le réseau possède une sortie unique, si l’on code la réponse de 0 à 9, ou dix sorties si l’on préfère un codage hypercube (par exemple chaque chiffre sera codé par 9 zéros et un 1 sur sa sortie correspondante : 7=0000000100) qui semble être la représentation privilégiée.

Un réseau typique dans mon cas sera constitué de 785 entrées, N neurones cachés et 10 neurones de sortie. Si N vaut par exemple 25, cela donne 28 025 coefficients à calculer… C’est-à-dire un vecteur gradient à 28 025 composantes et une matrice « approximation de l’inverse du Hessien » de 28 025 x 28 025 termes, soit plus de 785 millions de nombres réels double précision… Il s’agit de ne pas se tromper dans les « malloc » pour éviter les « segmentation faults » !

Je suis en train de tester une version modifiée par mes soins de l’algorithme BFGS où cette grande matrice est remplacée par N matrices plus petites.

Mes programmes sont désespéramment longs dans leurs calculs sur mon pauvre PC perso, un « vieux » i7 à 8 cœurs. Constatant qu’un seul cœur était mis à contribution, je me suis tourné avec un peu d’appréhension vers le calcul parallèle. Et j’ai découvert (ne riez pas) l’interface de programmation OpenMP : quelques lignes de directives bien placées, et hop, le programme utilise les 8 cœurs de ma machine. C’est magique !

Je commence enfin à avoir des résultats corrects avec l’apprentissage de mon réseau de 25 neurones sur ce fichu problème de reconnaissance de chiffres manuscrits.

Les semaines passent, le temps me glisse entre les doigts. J’aimerais bosser un peu la question de l’utilisation de mon GPU à travers la bibliothèque CUDA, surtout que je peux accéder au boulot à une carte NVidia Tesla (pendant quelques minutes, histoire de voir si j’arrive à programmer une multiplication matricielle). Si j’arrive à maîtriser CUDA, alors il me faudra négocier avec Mme Zythom l’achat d’une carte NVidia supportant cette technologie et accessible financièrement (parce que la NVidia Tesla K80 à 7000 euros, ça va pas être possible…)

Encore de longues soirées en perspective, à regarder évoluer les coefficients de mes petits réseaux de neurones…

Ensuite, dès que j’en aurai le courage, je réattaque TensorFlow que j’ai lâchement abandonné en attendant des tutos plus détaillés.

Si mes neurones réels ne flanchent pas d’ici là 😉

La parole aux femmes

How it Works

xkcd.com/385

J’ai trouvé l’idée de Kozlika très intéressante : profiter de ce 8 mars pour relayer ici des articles de blogs écrits par des femmes.

Du coup, j’ai fait le tour de mes sites favoris, et quelques recherches sur internet, sous l’angle « est-ce écrit par une femme ? ».

Il y a dans ma blogroll beaucoup de sites tenus par des femmes (vous trouverez sur le côté droit du blog, version web, tous les sites de ma blogroll). Je voudrais mettre en avant mes préférés :

De bric et de blog tenu par Veuve Tarquine

Judge Marie, tenu par… Judge Marie, juge des enfants et présidente d’audience correctionnelle

Kozeries en dilettante, par Kozlika

Oh Joy Sex Toy (NSFW), tenu par un couple, mais surtout par Erika Moen, qui m’a appris beaucoup de choses, vraiment beaucoup, sur les femmes

Et comme ce 8 mars est l’occasion d’ouvrir mon horizon, j’ai cherché et trouvé les sites suivants, que j’ai ajoutés à mon lecteur de flux RSS :

Le blog de Fatiha, « fan de Linux, open source et développement personnel » que je vous laisse découvrir.

Romy.tetue.net, « conceptrice web UX, parisienne et têtue ».

Comme une Geek, de Julie, « femme qui aime l’informatique, le hacking, les jeux vidéos, les séries TV, le high tech et l’humour ».

– Le blog de Valérie Aurora (en anglais)

Je n’ai pas trouvé de site tenu par une femme dans le domaine de la sécurité informatique, ni dans celui de l’expertise judiciaire informatique 🙁 mais j’ai certainement raté pleins de sites intéressants, donc si vous avez des sites tenus par des femmes à recommander (qui ne sont pas dans ma blogroll), n’hésitez pas à les indiquer en commentaires.

[Edit 08/03/17 10h48]

blog.linuxgrrl.com de Mairin Duffy (via @Jehane_fr)

decentsecurity.com de @SwiftOnSecurity (via @Kozlika)

Mi-temps

Ce billet est publié dans la catégorie « privée » et n’a aucun intérêt autre que pour mes proches (et encore ;-). Vraiment aucun intérêt, vous êtes prévenus.

Quand j’avais 7 ans, j’avais un petit rituel quotidien dont j’étais persuadé que si je le réussissais, j’allais vivre encore 100 ans : quand j’urinais, je faisais le tour de l’eau du fond de la cuvette sans toucher le bord extérieur, ni l’eau du fond, le tout sans éclabousser. Mesdames, vous avez là l’un des secrets qui peut occuper la vie des petits garçons…

Pendant toute l’année de mes 7 ans, j’ai réussi cet exploit sans faillir, à la grande joie de ma mère qui a certainement pensé que j’étais particulièrement propre, ou adroit (ou que j’urinais assis…).

Pendant toute l’année de mes 7 ans, j’ai réussi cette épreuve difficile, ce qui m’a permis de savoir, tout jeune, que j’allais vivre jusqu’à 107 ans !

Pourquoi en parler maintenant ? Et bien, pile aujourd’hui, j’ai 53,5 ans, et donc encore 53,5 années à vivre.

Je suis à la mi-temps de ma vie, avec encore plein de choses à faire 🙂

Si la tête et le corps tiennent…

Twitter en images

Pour ce billet du vendredi, je voulais faire un bilan, en images, sur les années que j’ai pu passer sur ce formidable réseau social qu’est Twitter :

Quand j’explique Twitter à mon épouse
Quand j’explique Twitter à mes parents
Quand je lis les CGU de Twitter
Quand tu essayes de twitter discrètement
Pour certains, Twitter est un village
Pour certains, Twitter est un village (bis)
Certains Twittos cherchent à rester à la pointe
Quand tu demandes de l’aide sur un sujet sensible
Quand tu veux jouer dans la cour des grands
Quand un Twittos emm… tout le monde
Quand tu commences à twitter avec ton compte tout neuf
Quand tu comprends que la vie sera dure sur Twitter
Quand tu demandes à tes étudiants d’explorer Twitter
… en toute sécurité
Quand tu veux attirer l’attention de @Maitre_Eolas
… ou celle de @MaitreMo
Quand tu résistes aux pressions
Quand ton bon goût n’est pas reconnu
Twitter permet de rencontrer des gens différents 1/2
… vraiment différents 2/2
… vraiment vraiment différents 3/2
Twitter nous donne une vision originale du monde
… même si c’est souvent un peu ça…
Quand un twittos ou une twittas drague discrètement sur Twitter
Quand un mec vaguement connu arrive dans ta TL…
… et que tu te rends compte qu’il te follow
Quand tu en fais des caisses pour attirer l’attention
Twitter est une source d’informations fiable
Au moins autant que la PQR
Sur Twitter, on discute de choses sérieuses…
… mais toujours avec une pointe de dérision
… et un peu d’humour
… même si certains sont très « premier degré »
Sur Twitter, attention à l’orthographe !
… même si certaines fautes peuvent être intentionnelles
… l’essentiel étant toujours d’être compris
… mais bon, les fautes c’est quand même pénible
Twitter peut être sexiste…
… ou pas
Bien sûr, il y a toujours des connards XXL
… des inconscients
… et des mythos
… beaucoup de mythos
… mais on y trouve aussi de belles chaînes de solidarité
Quand tu nettoies un peu ta TL
Quand tu es un peu trop prêt d’un tweetclash
Quand tu fais un DM fail sur Twitter
… et que tu t’en rends compte
Quand tu demandes si GNU/Linux a des outils de sauvegarde aussi simples que Apple
Quand tu choisis le camp des rouges…
… ou celui des bleus
Finalement, Twitter, c’est un peu ça…