jeudi 6 février 2020

Machine learning

Introduction

Le machine learning est une technologie de intelligence artificielle (IA) qui permet au ordinateurs d'apprendre sans avoir été programmé explicitement pour cela. Cette technologie se fonde sur des principes mathématiques et statistiques pour donner à l'ordinateur la capacité d'apprendre à partir de données. Grace à cet apprentissage, les ordinateurs peuvent devenir très intelligents face à une situation très restreinte, au point d'être meilleur que l'Homme.
Le machine learning peut s'appliquer dans pratiquement tout les secteurs d'activités. Nous utilisons cette technologie tous les jours sans même s'en rendre compte. Les exemples d'applications du machine learning sont :

  • La recommandation de produits sur les sites de e-commerce
  • La prédiction météorologique
  • La prédiction du prix d'un article sur le marché
  • L'indexation de contenu
  • La segmentation de marché
  • l'analyse de données astronomiques
  • ...
Le machine learning peut être divisé en trois principales parties : L'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage par renforcement.


1. L'apprentissage supervisé

L'apprentissage supervisé consiste à apprendre à l'ordinateur à partir d'exemples de données étiquetées. Ainsi, on apprend à l'ordinateur à connaitre une sortie y à partie d'une entrée X sur un ensemble de plusieurs données. Apres avoir ainsi étudier plusieurs données étiquetées, l'ordinateur trouve tout seul la logique et réussi à donner la sortie y pour de nouveaux exemples X qu'il n'a jamais étudier.
L'apprentissage supervisé permet de résoudre deux types de problèmes :
  • Les problèmes de régression : Ici, à chaque donnée d'entrée X correspond une sortie y qui est généralement un nombre. Un exemple de problème de ce type est de connaitre le prix d'une maison à partir des informations concernant cette maison (superficie, nombre de chambre, age de la maison ...). Les problèmes de régression utilisent une régression linéaire avec descente de gradient ou une régression polynomiale.
  • Les problèmes de classification : Ici, chaque donnée d'entrée X peut prendre une valeur de sortir y parmi plusieurs valeurs possibles. Ainsi, ce genre de problème permet de regrouper des données selon un critère connu à l'avance. Un exemple de problème de ce type est de classer les emails selon qu'ils soient des spam ou non. Les problèmes de classification utilisent une régression logistique avec descente de gradient ou la machine à vecteur de support (SVM) avec un noyau linéaire ou un noyau gaussien. Les réseaux de neurones représentent le moyen le plus utilisé pour résoudre ce genre de problème. 

2. L'apprentissage non supervisé

L'apprentissage non supervisé consiste à apprendre à l'ordinateur à partir d'exemples non étiquetées. Le principe ici est de donner un ensemble de données à l'ordinateur et lui laisser le soin de trouver un sens à ces données et de les regrouper en catégories. Ainsi, l'ordinateur connais l'ensemble d'entrée X des données, et c'est à lui de trouver la sortie y. L'apprentissage non supervisé permet de résoudre trois types de problèmes :
  • La détection d’anomalie : Ici, on apprend à l'ordinateur à identifier un anomalie à partir d'un ensemble de données labialisées ou non. Un exemple de problème peut être la détection des mauvais moteurs dans une entreprise de fabrication de moteur. Ce type de problème utilise la distribution gaussien par lot, par demie-lot ou multivariée.
  • Le clustering : Le but ici est de regrouper des données non étiquetées en catégories à  partir de cluster. Le nombre de cluster est défini par le programmeur, mais il existe une technique qui permet de le quantifier. L'algorithme utilisé pour faire ce travail est l'algorithme de K-means
  • La compression de données : Le but ici est de réduire les dimensions des données. Ceci peut se faire pour le stockage, pour réduire le nombre de fonctionnalités pour faire du machine learning ou pour visualiser des données en 2D ou 3D. L'algorithme utilisé ici les l'algorithme PCA (Principal Component Analysis).

3. L'apprentissage par renforcement

Dans l'apprentissage par renforcement, aucune données n'est utilisée pour l'apprentissage de l'ordinateur. dans ce cas, l'ordinateur apprend à faire quelque chose et devient expert à partir de ses erreurs. Ce type d'apprentissage est utilisé généralement dans la robotique.

mercredi 1 janvier 2020

Licences libres

     Les logiciels open source sont des logiciels dont la licence respecte des critères précisément établis par l'Open Source Initiative, c'est-à-dire les possibilités de libre redistribution, d'accès au code source et de création de travaux dérivés. Les logiciels open source sont régis par le Copyleft (gauche d'auteur) qui est l'autorisation donnée par l'auteur du logiciel d'utiliser, d'étudier, de modifier et de diffuser son logiciel.

Il existe trois types de licences copyleft : le copyleft fort, le copyleft standard et le sans copyleft.


Les licences avec copyleft fort

     On parle de copyleft fort lorsque la redistribution du logiciel, modifiés ou non, ainsi que de tous les composants ajoutés, ne peuvent se faire que sous la licence initiale. les exemples de licences copyleft sont :


Les licences avec copyleft standard

     On parle de copyleft standard ou copyleft faible lorsque la redistribution du logiciel, modifiés ou non, se fait sous la licence initiale mais que de nouveaux composants peuvent être ajoutés sous d'autres licences voire sous des licences propriétaires. Les exemples de licences copyleft standard sont :


les licences sans copyleft

     On parle de licence sans copyleft lorsque la redistribution du logiciel, modifiés ou non, ainsi que de tous les composants ajoutés, peuvent être soumis sous d'autres licences voire sous des licences propriétaires. Les exemples de licences sans copyleft sont :