Qu'est-ce que le poids et les préjugés dans l'apprentissage en profondeur?

16

Je commence à apprendre l'apprentissage automatique sur le site Web de Tensorflow. J'ai développé une compréhension très très rudimentaire du déroulement d'un programme d'apprentissage en profondeur (cette méthode me permet d'apprendre rapidement au lieu de lire des livres et de gros articles).

Il y a quelques choses déroutantes que j'ai rencontrées, 2 d'entre elles sont:

  1. Biais
  2. Poids

Dans le tutoriel du MNIST sur le site Web tensorflow, ils ont mentionné que nous avons besoin de biais et de poids pour trouver la preuve de l'existence d'un motif particulier dans une image. Ce que je ne comprends pas, c'est où et comment les valeurs de biais et de poids sont déterminées?

Doit-on fournir ces valeurs ou la bibliothèque TensorFlow calcule-t-elle automatiquement ces valeurs en fonction de l'ensemble de données d'entraînement?

De plus, si vous pouviez fournir des suggestions sur la façon d'accélérer mon rythme d'apprentissage en profondeur, ce serait formidable!

Tutoriel Tensorflow pour débutants

Umer Farooq
la source
3
En tant que paramètres d'un modèle statistique , ils sont appris ou estimés en minimisant une fonction de perte qui dépend de vos données. Et c'est à cela que sert l'apprentissage automatique. Vous allez vous poser beaucoup de questions si vous suivez cette méthode pédagogique. Je suggère de prendre un MOOC comme celui de Coursera pour que vous puissiez apprendre les choses dans un ordre raisonnable.
Emre
C'est très basique, vous devriez donc suivre un cours comme @Emre l'a suggéré.
SmallChess

Réponses:

11

Mathématiquement parlant. Imaginez que vous êtes un modèle (non pas ce genre, figure 8)

Oui=WX+njegerjeunen

Alors qu'est-ce que tu comprends? Le préjugé est cette présomption dans un modèle comme vous.

Quant au poids, logiquement parlant, le poids est votre gradient (une en algèbre linéaire),

Qu'est-ce que le gradient? , c'est la raideur de la fonction linéaire.

Qu'est-ce qui rend le gradient linéaire très raide (valeur positive élevée)?

C'est parce que de petits changements dans X (entrée) provoquent de grandes différences dans l'axe Y (sortie). Donc, vous (plus en tant que modèle, mais un brillant mathématicien (votre alter ego)) ou votre ordinateur essaie de trouver ce gradient, que vous pouvez appeler le poids. La différence est que vous utilisez un crayon et un livre graphique pour le trouver, mais la boîte noire fait sa magie électronique avec des registres.

Dans le processus d'apprentissage machine, l'ordinateur ou Vous essayez de tracer de nombreuses lignes droites ou fonctions linéaires sur les points de données,

Pourquoi essayez-vous de tracer de nombreuses lignes droites?

Parce que dans votre livre graphique / mémoire d'ordinateur, vous essayez de voir la ligne qui correspond à la taille appropriée.

Comment puis-je, ou l'ordinateur, connaître la ligne qui convient correctement?

Dans mon école secondaire, on m'a appris à tracer une ligne à travers les points de données, en vérifiant visuellement la ligne qui traverse parfaitement au milieu de tous les points de données. (Oubliez le battage médiatique de l'IA, notre cerveau peut calculer en regardant simplement les choses) . Mais comme pour l'ordinateur, il essaie l'écart type et la variance de chaque ligne vers les points de données. La ligne avec le moins d'écart (parfois appelée fonction d'erreur) est choisie.

Cool! donc et ce qui se passe

Le gradient de cette ligne est calculé, disons que le poids du problème d'apprentissage est calculé

c'est le Machine Learning à sa base et un graphique de tracé des élèves du secondaire dans son Graphbook

Declan
la source
10

Je suis d'accord avec les commentaires sur votre question que vous devriez étudier un cours, peut-être le Machine Learning d'Andrew Ng sur Coursera , qui est un cours d'introduction gratuit très apprécié. Il s'agit d'une question fondamentale sur les principes fondamentaux de l'apprentissage automatique. En tant que tel, je ne couvre pas les mathématiques dans cette réponse, vous pouvez l'obtenir à de nombreux endroits, y compris ce cours.

où et comment les valeurs de biais et de poids sont-elles déterminées?

Les poids et les biais sont les paramètres apprenables de votre modèle. En plus des réseaux de neurones, ils apparaissent avec les mêmes noms dans des modèles connexes tels que la régression linéaire. La plupart des algorithmes d'apprentissage automatique incluent certains paramètres pouvant être appris comme celui-ci.

Les valeurs de ces paramètres avant le début de l'apprentissage sont initialisées de manière aléatoire (cela les empêche toutes de converger vers une seule valeur). Ensuite, lorsqu'ils sont présentés avec des données pendant l'entraînement, ils sont ajustés vers des valeurs qui ont une sortie correcte.

Doit-on fournir ces valeurs ou la bibliothèque TensorFlow calcule-t-elle automatiquement ces valeurs en fonction de l'ensemble de données d'entraînement?

Vous n'avez pas besoin de fournir de valeurs avant l'entraînement, bien que vous souhaitiez peut-être décider de choses comme le nombre de paramètres (dans les réseaux de neurones contrôlés par la taille de chaque couche). TensorFlow calcule automatiquement les valeurs pendant l'entraînement. Lorsque vous avez un modèle déjà formé et que vous souhaitez le réutiliser, vous souhaiterez définir les valeurs directement, par exemple en les chargeant à partir du fichier.

Le code spécifique qui gère les modifications des poids et des biais du didacticiel est le suivant:

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

et ça:

sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

La première ligne définit comment les poids et les valeurs seront modifiés. Vous pouvez lire cela presque littéralement comme «définir une fonction d'apprentissage qui utilise l'optimiseur de descente de gradient pour réduire l'entropie croisée des données fournies».

yX

Neil Slater
la source
8

Poids - Le poids est la force de la connexion. Si j'augmente l'entrée, quelle influence cela a-t-il sur la sortie.

Un poids proche de zéro signifie que la modification de cette entrée ne modifiera pas la sortie. De nombreux algorithmes mettront automatiquement ces poids à zéro afin de simplifier le réseau.

Biais - car signifie à quelle distance nos prévisions sont éloignées des valeurs réelles. Généralement, les algorithmes paramétriques ont un biais élevé, ce qui les rend rapides à apprendre et plus faciles à comprendre mais généralement moins flexibles. À leur tour, ils ont des performances prédictives inférieures sur des problèmes complexes qui ne répondent pas aux hypothèses simplificatrices du biais des algorithmes.

Faible biais : suggère plus d'hypothèses sur la forme de la fonction cible.

High-Bia s: suggère moins d'hypothèses sur la forme de la fonction cible.

Abhishek Sharma
la source
2
L'OP posait des questions sur le paramètre de biais dans un réseau neuronal. Vos définitions du biais sont correctes, mais ne répondez pas à la question.
Neil Slater