Veilles
Parce que c’est pratique de rester toujours informé dans un milieu qui évolue tous les jours.
Mes méthodes
Afin de rester toujours au courant du monde qui m’entoure, j’utilise différents outils pour recevoir les actualités les plus récentes. Ma veille informatique se produit principalement sur la plateforme sociale Medium, en faisant usage du système de réception d’actualités quotidien par e-mail.
De nos jours, divertissement et apprentissage sont plus souvent compatible qu’on ne le pense ! De ce fait, il m’arrive donc également de réaliser ma veille informatique sur YouTube, en exploitant les algorithmes de recommandations de la plateforme pour me voir être proposé du nouveau savoir sur toutes sortes de technologiques et autres thématiques de l’informatique.
Ces outils me sont également utiles lorsque je souhaite en savoir plus sur une technologie que je ne connais pas. Parfois, si je souhaite également apprendre comment l’utiliser, je consacrerai quelques heures à des formations sur le sujet, sur des plateformes telles que LinkedIn Learning ou YouTube.
Enfin, si je souhaite m’informer profondémment sur un sujet avec des notions théoriques (comme l’intelligence artificielle), il m’arrive parfois d’acheter et lire des ouvrages papier sur le sujet.
Mes veilles
La gestion des ressources et de la mémoire en Python
Le langage Python possède de nombreuses forces et faiblesses. Développé originellement en C, l’une de ses spécificités et ses différentes manières de gérer les ressources utilisées par un programme selon ce qui est souhaité par le développeur.
Plusieurs mots-clés liés existent en Python. Ils réalisent des tâches possibles autrement, tout en améliorer la lisibilité mais aussi les performances du code exécutée :
- Le générateur est un objet communément utilisé pour créer des itérateurs (concept naturel pour passer à travers tous les éléments d’un objet à itérer) sans passer par une collection traditionnelle (liste, dictionnaire…). La différence entre ces dernières et le générateur ? Les éléments du générateur ne sont qu’utilisables qu’une seule fois avant d’être supprimé de la mémoire ! Cela permet de parcourir beaucoup plus rapidement chaque élément, car Python n’a pas à utiliser des index ni se souvenir de chaque élément à chaque itération.
- L’utilisation des générateurs sont très différents de celle des collections. Par exemple, pour permettre à une fonction de pouvoir être exploré comme un générateur, il est nécessaire d’utiliser le mot-clé yield. Ce petit mot permet de retourner un seul élément de générateur. En d’autres termes, si la fonction doit retourner une suite d’éléments, il est alors nécessaire d’utiliser yield au sein d’une boucle !
- Les gestionnaires de contexte (ou context manager) permettent de gérer des ressources au sein d’un contexte local. Ainsi,
- functools et itertools sont deux librairies de fonctions naturellement présentes dans Python. Contrairement aux librairies habituelles, celles-ci sont directement codés en C ! Cela supprime donc différentes étapes dans le processus de traitement
Sources :
- https://stackoverflow.com/questions/2776829/difference-between-pythons-generators-and-iterators
- https://medium.com/itnext/unlocking-the-power-of-pythons-context-managers-aeeb3890cf01?source=list-40826f87c444——–3——-3715f269a2e4———————
IA - Les principaux algorithmes
Avant la création des réseaux de neurones (menant à la création du machine learning), les programmes d’intelligence artificielle se réalisait par le biais d’autres algorithmes :
- L’algorithme min-max : Détermine plusieurs issues d’une situation selon chaque choix possible, et l’utilise pour calculer la meilleur décision d’une situation. Il est utilisé de nos jours notamment pour les intelligences artificielles de joueur de jeu d’échecs.
- L’algorithme A* (Peter Hart, Nils Nilsson et Bertram Raphael, années 60) : Détermine un chemin « valide » d’un point à un autre dans un graphe. Il consiste à toujours se rapprocher du point recherché à chaque étape. Il est toujours utilisé de nos jours, notamment dans les GPS afin de déterminer les meilleurs itinéraires d’un point A à un point B.
- Les algorithmes de classification non-supervisés : Utilisés pour classifier différents éléments en plusieurs catégories, sans que l’on précise d’éléments permettant cette classification. De nos jours, on utilise toujours ces algorithmes dans de nombreux domaines, de la médecine (reconnaissances de cancers) à l’imagerie et la vidéo (séparation d’éléments d’une scène aux autres éléments).
- Un exemple d’algorithme de classification non supervisé est l’algorithme k, crée par Hugo Steinhaus dans les années 1957. Le seul paramètre que l’on donne dans cette algorithme est la valeur k, représentant le nombre de catégories que l’on souhaite obtenir.
- Les algorithmes de classification supervisés : Similaires aux algorithmes de classification non supervisés. Cependant, on guide l’exécuteur de l’algorithme à l’aide de différents paramètres permettant d’orienter la classification souhaitée. De nos jours, un exemple de classification supervisé est l’apprentissage des expressions faciales humaines, en indiquant à l’exécuteur de l’algorithmes les différentes répartitions de points faciaux principaux pour chaque émotion souhaitée.
Sources :
- Comprendre l’intelligence artificielle – Nicolas Sabouret