Existe-t-il un moyen simple de calculer les poids des perceptrons sur la base d'un graphique de classification?

8

J'étudie pour un examen d'IA et je cherche une meilleure façon de résoudre le problème suivant:

Le graphique montre un problème de classification dans le carré unitaire [0,1]2, où la classe A est indiquée par la zone grise sur la figure (sans compter les points sur les lignes pointillées), et la classe B se produit autrement.

Le graphique montre un problème de classification dans le carré unitaire [0,1] ^ 2

Pour résoudre ce problème, il est nécessaire de construire 2 perceptrons: les deux perceptrons sortent 1 si l'entrée se trouve dans la zone grise, et au moins l'un des perceptrons sort 0 sinon.

Il existe 3 façons de trouver les poids appropriés pour les intrants et les biais que je connais:

  1. Essai et erreur
  2. Algorithme d'apprentissage Perceptron (impliquant des poids aléatoires, le taux d'apprentissage, plusieurs époques)
  3. Manière géométrique de trouver les vecteurs de poids (impliquant la recherche d'une ligne orthogonale à la fonction limite)

Tous prennent beaucoup de temps lorsque vous le faites avec un simple stylo et du papier.

Existe-t-il un moyen simple de calculer / trouver les poids des perceptrons sur la base d'un graphique de classification?

BadgerBadger
la source

Réponses:

2

pensez que vous pouvez être quelque peu mal interpréter le point de la question. L'intention de la question d'examen semble être «quels bons poids de perceptron résulteraient de ce problème de classification». la raison en est que l'on ne peut pas passer par toutes les étapes d'un algorithme de longue durée lors d'un examen ou même des devoirs.

pour revenir à la théorie du perceptron [qui a plusieurs décennies], le fait est que c'est un classifieur basé sur des fonctions linéairement séparables , c'est-à-dire des inégalités linéaires . pour le cas 2d, cela donne une géométrie algébrique simple. en d'autres termes, le perceptron peut mettre en œuvre un certain nombre d'inégalités linéaires pour tenter de créer la classification. ici, il est donnén=2. la question probablement posée est donc "quelles sont les deux inégalités linéaires vers lesquelles un bon algorithme perceptron convergerait pour ce problème".

il semble donc se réduire pour trouver les coefficients de:

y<m1x+b2

y>m2x+b2

alors utilisez l'algèbre géométrique de base pour déterminer les coefficients m1,m2,b1,b2qui fonctionnent pour le diagramme ci-dessus. sur la base du schéma, il n'y a pas de solution parfaite, mais une "bonne" solution. (notez également que les équations doivent uniquement[0,1]2.)

intuitivement, cela implique aussi quelque peu de cette analyse pourquoi les perceptrons sont si limités. car il est facile, même en 2D, de dessiner des problèmes de classification pour lesquels il n'y a pas de solution séparable linéairement (formes concaves, formes avec des trous dedans, etc.) - un indice de cela est visible en notant que la forme ci-dessus est légèrement concave). cette observation, étoffée d'une manière plus sophistiquée / formelle / mathématique / rigoureuse dans [1], a suscité beaucoup de controverses à l'époque et a été un débat important dans l'histoire de l'IA, et a même apparemment découragé certains scientifiques d'enquêter sur des techniques plus sophistiquées. simulé des modèles de réseaux de neurones pendant un certain temps, bien que Minsky ait nié catégoriquement que c'était son intention et ait déclaré que son travail était mal interprété.

[1] Perceptrons, par Minsky & Papert

vzn
la source
ps cette technique semble correspondre au point (3) ci-dessus, trouver les poids via des techniques géométriques, mais ce n'est pas vraiment "chronophage" à moins que ce ne soit un objet complexe (par exemple un polygone à plusieurs côtés, etc.)
vzn
en d'autres termes, trouver des lignes de frontière orthogonales géométriques est en effet fondamentalement "simple" dans le cas 2d car il se réduit à la géométrie algébrique, mais pas dans des dimensions plus élevées.
vzn