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

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/