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:
- Biais
- 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!
la source
Réponses:
Mathématiquement parlant. Imaginez que vous êtes un modèle (non pas ce genre, figure 8)
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
la source
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.
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.
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:
et ça:
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».
la source
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.
la source