Neuron No. 3 by Amy Reed on 500px.com

Il y a le lexique de Google sur le Machine Learning : ici

Régression linéaire

Dans le cas particulier oĂč l’on a pu mettre en Ă©vidence l’existence d’une relation linĂ©aire significative entre deux caractĂšres quantitatifs continus X et Y, on peut chercher Ă  formaliser la relation moyenne qui unit ces deux variables Ă  l’aide d’une des trois Ă©quations suivantes : (1) a.X + b.Y + c = 0   : Ă©quation de la droite moyenne liant les caractĂšres X et Y (2) Y = a.X + b : droite de rĂ©gression de Y en fonction de X (3) X = a.Y + b : droite de rĂ©gression de X en fonction de Y https://youtu.be/mfLHA7C88vc

When the labels (variables dĂ©pendantes) are numeric, the problem is called a regression problem. When the labels are categorical, the problem is called a classification problem. If the categorical target (variables dĂ©pendantes) takes only two values, the problem is called a binary classification problem. If it takes more than two values, the problem is called a multiclass classification problem. Machine Learning in Python  – Michael Bowles

Linear models are preferable when the data set has more columns than rows or when the underlying problem is simple. Nonlinear models are preferable for complex problems with many more rows than columns of data. Machine Learning in Python  – Michael Bowles

Stochastique

Qui dĂ©pend, qui rĂ©sulte du hasard (s’oppose par dĂ©finition au dĂ©terminisme) Qui relĂšve du domaine de l’alĂ©atoire, du calcul des probabilitĂ©s

Statistique bayésienne

on interprĂšte les probabilitĂ©s comme un degrĂ© de croyance plutĂŽt que comme la frĂ©quence limite d’un phĂ©nomĂšne ; on modĂ©lise les paramĂštres du modĂšle par des lois de probabilitĂ© ; on infĂšre des paramĂštres devenant d’autant plus plausibles Ă  mesure qu’on affine cette distribution de probabilitĂ© au fur et Ă  mesure que sont connus de nouveaux rĂ©sultats d’observation.

Il y a en effet deux conceptions des probabilités, toutes deux présentes dÚs les débuts de la mathématisation du probable. On parle ainsi :

  • d’une part des probabilitĂ©s frĂ©quentistes, il s’agit de probabilitĂ©s dites objectives et a posteriori , visant Ă  dĂ©gager les lois stochastiques de processus alĂ©atoires tendanciels dans des statistiques de frĂ©quence Ă  long terme.
  • et d’autre part des probabilitĂ©s bayesiennes, oĂč il s’agit de probabilitĂ© subjective, de degrĂ© de certitude a priori. On doit notamment Ă  Condorcet d’avoir prĂ©sentĂ© les probabilitĂ©s subjectives comme Ă©tant des « raisons de croire », c’est Ă  dire de prĂ©senter le calcul des probabilitĂ©s comme relevant d’une thĂ©orie de la connaissance plus que d’une thĂ©orie de la nature.

Deux visages du calcul des probabilitĂ©s : bayĂ©sien et frĂ©quentante – Christian FaurĂ©

Fonction sigmoĂŻde

En mathématiques, la fonction sigmoïde (dite aussi courbe en S) est définie par :

 

pour tout réel x

 

 

ThéorÚme de Bayes

Etant donnĂ©  A et B, le thĂ©orĂšme de Bayes permet de dĂ©terminer la probabilitĂ© de A sachant B, si l’on connaĂźt les probabilitĂ©s :

  • de A ;
  • de B ;
  • de B sachant A.

Tenseur

Un scalaire, un vecteur, une forme linéaire, une forme bilinéaire, une application linéaire sont des tenseurs particuliers.

Les tenseurs ne sont pas seulement la gĂ©nĂ©ralisation du concept de vecteur, matrices et tableaux de nombres Ă  plusieurs dimensions. Ils sont aussi et surtout une gĂ©nĂ©ralisation de la notion de forme linĂ©aire. Ils combinent donc les avantages des deux parties : les composantes contravariantes conservent les combinaisons linĂ©aires (comme les vecteurs), et les composantes covariantes conservent leurs proportions relatives Ă  la base (comme les formes linĂ©aires). Un tenseur est un objet dual (mĂȘme lorsqu’il est d’ordre un), de la mĂȘme maniĂšre qu’une personne et son image dans le miroir.

décrit par TensorFlow :

3 # a rank 0 tensor; a scalar with shape [] [1., 2., 3.] # a rank 1 tensor; a vector with shape [3] [[1., 2., 3.], [4., 5., 6.]] # a rank 2 tensor; a matrix with shape [2, 3] [[[1., 2., 3.]], [[7., 8., 9.]]] # a rank 3 tensor with shape [2, 1, 3]

Softmax

Softmax s’utilise pour la classification Ă  Ă©tiquette unique et Ă  classes multiples.

En mathĂ©matiques, la fonction softmax, ou fonction exponentielle normalisĂ©e, est une gĂ©nĂ©ralisation de la fonction logistique qui prend en entrĂ©e un vecteur z=(z1,
,zK) de nombres rĂ©els et qui en sort un vecteur σ(z) de nombres rĂ©els strictement positifs et de somme 1. La fonction est dĂ©finie par :

pour tout j∈{1,
,K}.

C’est-Ă -dire que la composante j du vecteur est Ă©gale Ă  l’exponentielle de la composante du vecteur divisĂ©e par la somme des exponentielles de toutes les composantes de . Par exemple : ConsidĂ©rons un vecteur

Le calcul des exponentielles donne ceci :
2,718281828 20,08553692 12,18249396 148,4131591 54,59815003 7,389056099

La somme est égale à 245,3866779 La fonction softmax donne en sortie  :

    Par exemple : 0,082 est le résultat de 20,08553692/245,3866779.

Apprentissage supervisé / non supervisé

Exemple d’algorithme d’apprentissage supervisĂ© : rĂ©gression linĂ©aire, rĂ©gression logistique (ou modĂšle logit) , arbre de dĂ©cision, rĂ©seau de neurones.

Dans le cas d’un apprentissage supervisĂ©, les donnĂ©es qui servent Ă  entraĂźner le modĂšle, sont Ă©tiquetĂ©es – alors qu’elles ne le sont pas dans le cas d’un apprentissage non supervisĂ©.

L’apprentissage non supervisĂ© est celui qu’on utilise pour le clustering.

Evidemment, il existe un apprentissage semi-supervisé (lorsque seulement une partie des données est étiquetée)

Voir la présentation de Ng. mais aussi celle-ci : https://youtu.be/IcnFJs4DENs

Perceptron multi-couche

Deep feedforward networks, also often called feedforward neural networks, or multilayer perceptrons (MLPs), are the quintessential deep learning models.

Lorsque les réseaux neuronaux de type feedforward permettent les connections feedback, ils sont appelés recurrent neuronal networks.

Cost function – Loss function – Objective function

Une fonction de coĂ»t mesure la distance entre la prĂ©diction du modĂšle et les Ă©chantillons d’entraĂźnement

The quantity that will be minimized during training. It represents a measure of success for the task at hand.

F. Chollet

Algorithmes en data science

Les plus connus sont :

  • Decision Tree
  • Random Forest
  • Association Rule Mining
  • Linear Regression
  • K-Mean Clustering

La présentation ci-dessous est un peu laborieuse, mais elle traite le sujet. https://youtu.be/wL-x375dbyM

Decision Tree

Voir Artificial Intelligence A modern approach §18.3

Random Forest

Bagging

Bagging is an abbreviation for « bootstrap aggregating ». It’a meta-algorithm, which takes M subsamples (with replacement) from the initial dataset and trains the predictive model on those subsamples. The final model is obtained by averaging the « bootstrapped » models and usually yields better results. https://youtu.be/2Mg8QD0F1dQ

One way to get differing models is to take random samples of the training data and train on these random subsets. That technique is called Bagging (short for bootstrap aggregating). It gives a way to generate a large number of slightly different binary decision trees

Machine Learning in Python  – Michael Bowles

Pasting

Quand l’Ă©chantillonnage est fait sans remplacement, on parle de pasting.

Courbe ROC

DĂ©finition de Wikipedia : (on ne peut mieux dire) La fonction d’efficacitĂ© du rĂ©cepteur, plus frĂ©quemment dĂ©signĂ©e sous le terme « courbe ROC » (de l’anglais receiver operating characteristic, pour « caractĂ©ristique de fonctionnement du rĂ©cepteur ») dite aussi caractĂ©ristique de performance (d’un test) ou courbe sensibilitĂ©/spĂ©cificitĂ©, est une mesure de la performance d’un classificateur binaire, c’est-Ă -dire d’un systĂšme qui a pour objectif de catĂ©goriser des Ă©lĂ©ments en deux groupes distincts sur la base d’une ou plusieurs des caractĂ©ristiques de chacun de ces Ă©lĂ©ments. Graphiquement, on reprĂ©sente souvent la mesure ROC sous la forme d’une courbe qui donne le taux de vrais positifs (fraction des positifs qui sont effectivement dĂ©tectĂ©s) en fonction du taux de faux positifs (fraction des nĂ©gatifs qui sont incorrectement dĂ©tectĂ©s). Une courbe ROC (receiver operating characteristic) est un graphique reprĂ©sentant les performances d’un modĂšle de classification pour tous les seuils de classification. Cette courbe trace le taux de vrais positifs en fonction du taux de faux positifs. L’AUC fournit une mesure agrĂ©gĂ©e des performances pour tous les seuils de classification possibles. On peut interprĂ©ter l’AUC comme une mesure de la probabilitĂ© pour que le modĂšle classe un exemple positif alĂ©atoire au-dessus d’un exemple nĂ©gatif alĂ©atoire. AUC signifie « aire sous la courbe ROC ». Cette valeur mesure l’intĂ©gralitĂ© de l’aire Ă  deux dimensions situĂ©e sous l’ensemble de la courbe ROC (par calculs d’intĂ©grales) de (0,0) Ă  (1,1).

Logit

Logistic regression ou Logit regression est un algorithme utilisĂ© pour dĂ©terminer la probabilitĂ© qu’une instance appartienne Ă  une classe. Si la probabilitĂ© estimĂ©e est supĂ©rieure Ă  0.5 alors le modĂšle considĂšre que l’instance appartient Ă  la classe. C’est un classificateur binaire. On utilise pour cela la fonction sigmoĂŻde.

RĂ©seau de neurones Ă  convolution (Convolutional Neural Networks)

Références :

  • Wikipedia
  • Medium : Comment les RĂ©seaux de neurones Ă  convolution fonctionnent (traduction de l’article suivant)
  • How do Convolutional Neural Networks work?
  • WILDML : Understanding Convolutional Neural Networks for NLP
  • Understanding convolutions

CNNs are basically just several layers of convolutions with nonlinear activation functions like ReLU or tanh applied to the results. In a traditional feedforward neural network we connect each input neuron to each output neuron in the next layer. That’s also called a fully connected layer, or affine layer. In CNNs we don’t do that. Instead, we use convolutions over the input layer to compute the output.

Natural Language Processing – Traitement du Langage Naturel

Support Vector Machine

ReLU

Rectified Linear Unit La fonction a pour valeurs Max(0,x)

La fonction d’activation d’unitĂ© de rectification linĂ©aire (ou ReLU) est souvent un peu plus efficace qu’une fonction lisse de type sigmoĂŻde, tout en Ă©tant bien plus simple Ă  calculer.

 La supériorité de la fonction ReLU repose sur des conclusions empiriques, sans doute du fait que la fonction ReLU présente une plage de réponse plus utile. La réponse de la fonction sigmoïde est rapidement défaillante de chaque cÎté.

Attributs

Attributes are the things that you’ve chosen to use for making predictions.

Labels are observed outcomes that the machine learning algorithm will use to build a predictive model. Attributes and labels go by a variety of names, and new machine learners can get tripped up by the name switching from one author to another or even one paragraph to another from a single author.

Attributes (the variables being used to make predictions) are also known as the following:

  • Predictors
  • Features
  • Independent variables
  • Inputs

Labels are also known as the following:

  • Outcomes
  • Targets
  • Dependent variables
  • Responses

Machine Learning in Python  – Michael Bowles

The variable being predicted is referred to by a number of different names, such as target, label, and outcome. The variables being used to make the predictions are variously called predictors, regressors, features, and attributes. These terms are used interchangeably in this text, as they are in general practice. Determining what attributes to use for making predictions is called feature engineering. Data cleaning and feature engineering take 80 percent to 90 percent of a data scientist’s time.

Machine Learning in Python  – Michael Bowles

Imputation

You’ll have to figure out some ways to fill in the missing values or use an algorithm that can deal with them. Filling them in is called imputation. The easiest way to impute the missing data is to fill in the missing entries using average values of the entries in each row. A more sophisticated method is to use one of the predictive methods. Machine Learning in Python  – Michael Bowles

Coefficient de corrélation Pearson

Le coefficient de corrélation entre deux variables aléatoires réelles X et Y ayant chacune une variance (finie), noté r, est défini par

r=Cov⁥(X,Y)σXσY

oĂč dĂ©signe la covariance des variables X et Y, et leurs Ă©carts types.

L1 and L2 Regularization Methods

De : https://towardsdatascience.com/l1-and-l2-regularization-methods-ce25e7fc831c

A regression model that uses L1 regularization technique is called Lasso Regression and model which uses L2 is called Ridge Regression.

The key difference between these two is the penalty term.

Ridge regression adds “squared magnitude” of coefficient as penalty term to the loss function. Here the highlighted part represents L2 regularization element.

 

Cost function

Here, if lambda is zero then you can imagine we get back OLS. However, if lambda is very large then it will add too much weight and it will lead to under-fitting. Having said that it’s important how lambda is chosen. This technique works very well to avoid over-fitting issue.

Lasso Regression (Least Absolute Shrinkage and Selection Operator) adds “absolute value of magnitude” of coefficient as penalty term to the loss function.

 

Cost function

Again, if lambda is zero then we will get back OLS whereas very large value will make coefficients zero hence it will under-fit.

The key difference between these techniques is that Lasso shrinks the less important feature’s coefficient to zero thus, removing some feature altogether. So, this works well for feature selection in case we have a huge number of features.

Autoencoder

Un autoencoder est composĂ© de deux parties : un encodeur qui convertit les signaux en une reprĂ©sentation interne et un dĂ©codeur (rĂ©seau gĂ©nĂ©ratif) qui convertit la reprĂ©sentation interne en sorties. Son architecture est celle d’un perceptron multicouche avec un nombre de neurones dans la couche de sorties Ă©gal au nombre d’entrĂ©es.

Inverse Reinforcement Learning

https://thinkingwires.com/posts/2018-02-13-irl-tutorial-1.html?utm_content=bufferf8291&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

L’erreur quadratique moyenne (MSE)

Pour calculer l’erreur MSE, il faut additionner toutes les pertes quadratiques de chaque exemple, puis diviser cette somme par le nombre d’exemples :  \operatorname{MSE}(\hat{\theta}|\theta)\equiv\mathbb{E}\left((\hat{\theta}-\theta)^2\right). (cf : L’erreur quadratique moyenne (MSE)) La fonction de perte pour la rĂ©gression linĂ©aire est appelĂ©e perte quadratique. La fonction de perte pour la rĂ©gression logistique est la perte logistique.

On utilise généralement la formule 1/2 MSE. Je me suis longtemps demandé pourquoi. la raison est la suivante :

The \frac{1}{2} is included so that exponent is cancelled when we differentiate later on. The result is eventually multiplied by a learning rate anyway so it doesn’t matter that we introduce a constant here

A Step by Step Backpropagation Example

Descente de gradient

Un trÚs bon article ici : https://machinelearning-blog.com/2018/02/28/gradient-descent/

En DL, la descente de gradient permet de trouver les valeurs des paramÚtres qui minimise la fonction de coût.

Descente de gradient stochastique

Lors d’une descente de gradient, un lot reprĂ©sente le nombre total d’exemples utilisĂ©s pour calculer le gradient Ă  chaque itĂ©ration. La descente de gradient stochastique (SGD) constitue une application radicale de ce principe, car elle n’utilise qu’un exemple (un lot dont la taille est 1) par itĂ©ration. Si le nombre d’itĂ©rations est assez important, la SGD fonctionne, tout en gĂ©nĂ©rant beaucoup de bruit. Le terme « stochastique » signifie que l’exemple constituant chaque lot est sĂ©lectionnĂ© de façon alĂ©atoire. La descente de gradient stochastique (SGD) par mini-lots (SGD par mini-lots) offre un compromis entre l’itĂ©ration des lots entiers et la SGD. Un mini-lot comprend gĂ©nĂ©ralement entre 10 et 1 000 exemples sĂ©lectionnĂ©s alĂ©atoirement. La SGD par mini-lots limite la quantitĂ© de bruit propre aux SGD tout en restant plus efficace que le traitement de lots entiers.

HyperparamĂštres

Les hyperparamÚtres suivants se retrouvent dans un grand nombre de cas de programmation :

  • steps (pas) : il s’agit du nombre total d’itĂ©rations d’apprentissage. Un pas calcule la perte par rapport Ă  un lot et utilise cette valeur pour modifier les poids du modĂšle une seule fois.
  • batch size (taille du lot) : nombre d’exemples (choisis au hasard) pour un seul pas. La taille du lot de SGD est, par exemple, de 1.

Vrais positifs/négatifs et faux positifs/négatifs

Nous avons criĂ© au loup Ă  juste titre (vrai positif : VP) Nous avons faussement criĂ© au loup (faux positif : FP) Nous avons ratĂ© le loup (faux nĂ©gatif : FN) Pas de loup, pas d’alerte (vrai nĂ©gatif : VN) Les critĂšres d’Ă©valuation du modĂšle utiliseront la prĂ©cision et le rappel. Formellement, la justesse est dĂ©finie ainsi : nombre de prĂ©cisions correctes/nombre total de prĂ©dictions PrĂ©cision : vrais positifs / tous les positifs prĂ©dits VP/tous les positifs prĂ©dits : VP/(VP+FP) (PrĂ©cision : quelle proportion d’identifications positives Ă©tait effectivement correcte ?) Rappel : VP / Tous les positifs rĂ©els   : VP/(VP+FN) (Rappel : quelle proportion de rĂ©sultats positifs rĂ©els a Ă©tĂ© identifiĂ©e correctement ?)

Seuil de décision

Afin d’identifier la catĂ©gorie binaire correspondant Ă  une valeur obtenue par rĂ©gression logistique vous devez dĂ©finir un seuil de classification (Ă©galement appelĂ© seuil de dĂ©cision). Toute valeur supĂ©rieure Ă  ce seuil correspondra Ă  la catĂ©gorie « spam », toute valeur infĂ©rieure Ă  la catĂ©gorie « non spam ». Il peut paraĂźtre logique d’en dĂ©duire que la valeur du seuil de classification devrait toujours ĂȘtre Ă©gale à 0,5, mais les seuils doivent toujours ĂȘtre adaptĂ©s au problĂšme considĂ©ré : ce sont donc des valeurs Ă  ajuster.

 

Activation function

RĂ©tropropagation

La rĂ©tropropagation est l’algorithme d’apprentissage le plus utilisĂ© pour les rĂ©seaux de neurones. Elle permet la descente de gradient avec les rĂ©seaux de neurones multicouches. TensorFlow gĂšre automatiquement la rĂ©tropropagation.

L’algorithme de rĂ©tropropagation est prĂ©sentĂ© ici

RĂ©gularisation par abandon

Cette mĂ©thode « abandonne » de maniĂšre alĂ©atoire des activations d’unitĂ©s dans un rĂ©seau pour un pas de gradient unique. Plus il y a d’abandons, plus la rĂ©gularisation est poussĂ©e :

  • 0.0 = pas de rĂ©gularisation par abandon.
  • 1.0 = abandon total (le modĂšle n’apprend rien).
  • Les valeurs comprises entre 0.0 et 1.0 sont plus efficaces.

epoch

An epoch is a single pass through the entire training set, followed by testing of the verification set. The batch size that you specify in the code above defines the number of samples that going to be propagated through the network. Also, by doing this, you optimize the efficiency because you make sure that you don’t load too many input patterns into memory at the same time.

Le nombre d’epochs c’est le nombre de parcours de l’ensemble du jeu de donnĂ©es.

 Shape

Les tenseurs sont définis par 3 attributs :

  1. Le nombre d’axes (le rang). Une matrice a 2 axes,
  2. shape : le nombre de dimensions sur chaque axe. Par exemple, la matrice ci-dessous a la shape (3,5)

x = np.array([[5, 78, 2, 34, 0],[6, 79, 3, 35, 1],[7, 80, 4, 36, 2]])

shape—This is a tuple of integers that describes how many dimensions the ten- sor has along each axis. For instance, the previous matrix example has shape(3, 5), and the 3D tensor example has shape (3, 3, 5). A vector has a shape with a single element, such as (5,), whereas a scalar has an empty shape, ().

F. Chollet

3. Enfin le type de donnĂ©es (float, int, …)

Dropout

Forme de rĂ©gularisation utile dans l’apprentissage des rĂ©seaux de neurones. La rĂ©gularisation par abandon consiste Ă  supprimer de maniĂšre alĂ©atoire un nombre fixe d’unitĂ©s dans une couche du rĂ©seau pour un pas de gradient unique. Plus le nombre d’unitĂ©s abandonnĂ©es est Ă©levĂ©, plus la rĂ©gularisation est solide. Cette mĂ©thode est analogue Ă  l’entraĂźnement du modĂšle pour Ă©muler un groupe exponentiellement large de rĂ©seaux plus petits.

Glossaire du Machine Learning – Google

Dropout is one of the most effective and most commonly used regularization tech- niques for neural networks, developed by Geoff Hinton and his students at the Uni- versity of Toronto. Dropout, applied to a layer, consists of randomly dropping out(setting to zero) a number of output features of the layer during training.

François Chollet – Deep Learning with Python

Long Short-Term Memory (LSTM)

Le LSTM est un cas particulier de RNN (Recurrent Neural Network).

Bias

Data mining

Applying ML techniques to dig into large amounts of data can help discover patterns that were not immediately apparent. This is called data mining

Aurélien Géron. « Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. »

Momentum

A very popular technique that is used along with SGD is called Momentum. Instead of using only the gradient of the current step to guide the search, momentum also accumulates the gradient of the past steps to determine the direction to go.

https://blog.paperspace.com/intro-to-optimization-momentum-rmsprop-adam/
https://youtu.be/SuzqPsyRtjM