Une phrase couramment entendue dans le Machine Learning non supervisé est
Les entrées de grande dimension vivent généralement sur ou à proximité d'un collecteur de faible dimension
Qu'est-ce qu'une dimension? Qu'est-ce qu'un collecteur? Quelle est la différence?
Pouvez-vous donner un exemple pour décrire les deux?
Collecteur de Wikipedia:
En mathématiques, une variété est un espace topologique qui ressemble à l'espace euclidien près de chaque point. Plus précisément, chaque point d'une variété à n dimensions a un voisinage homéomorphe à l'espace euclidien de dimension n.
Dimension de Wikipedia:
En physique et en mathématiques, la dimension d'un espace (ou objet) mathématique est définie de manière informelle comme le nombre minimum de coordonnées nécessaires pour spécifier n'importe quel point à l'intérieur.
Que signifie même Wikipédia en termes simples? Cela ressemble à une définition bizarre comme la plupart des définitions d'apprentissage automatique?
Ce sont tous les deux des espaces, alors quelle est la différence entre un espace euclidien (c'est-à-dire Manifold) et un espace de dimension (c'est-à-dire basé sur les fonctionnalités)?
Réponses:
Pour le dire simplement, si vous avez un ensemble de données tabulaires avec m lignes et n colonnes, la dimensionnalité de vos données est n:
L'exemple le plus simple est notre planète Terre. Pour nous, cela semble plat, mais c'est vraiment une sphère. C'est donc une sorte de collecteur 2D intégré dans l'espace 3D.
Pour répondre à cette question, considérons un autre exemple de manifold:
C'est ce qu'on appelle le "swiss roll". Les points de données sont en 3D, mais ils se trouvent tous sur un collecteur 2D, donc la dimensionnalité du collecteur est 2, tandis que la dimensionnalité de l'espace d'entrée est 3.
Il existe de nombreuses techniques pour "déballer" ces collecteurs. L'un d'eux s'appelle Localement Linear Embedding , et c'est ainsi qu'il procéderait:
Voici un extrait de scikit-learn pour ce faire:
la source
La dimensionnalité d'un ensemble de données est le nombre de variables utilisées pour le représenter. Par exemple, si nous voulions décrire les personnes en fonction de leur taille et de leur poids, notre ensemble de données «personnes» aurait 2 dimensions. Si, à la place, nous avions un ensemble de données d'images, et que chaque image est un million de pixels, alors la dimensionnalité de l'ensemble de données serait d'un million. En fait, dans de nombreuses applications modernes d'apprentissage automatique, la dimensionnalité d'un ensemble de données peut être massive.
Lorsque la dimensionnalité est très grande (supérieure au nombre d'échantillons dans l'ensemble de données), nous pourrions rencontrer de sérieux problèmes. Considérons un algorithme de classification simple qui cherche à trouver un ensemble de poids w tel que lorsqu'il est parsemé d'un échantillon x, donne un nombre négatif pour une classe et un nombre positif pour une autre. w aura une longueur égale à la dimensionnalité des données, il aura donc plus de paramètres qu'il n'y a d'échantillons dans l'ensemble de données. Cela signifie qu'un apprenant sera capable d'ajuster les données et, par conséquent, ne généralisera pas bien à d'autres échantillons invisibles pendant la formation.
Une variété est un objet de dimensionnalité d qui est intégré dans un espace de dimension supérieure. Imaginez un ensemble de points sur une feuille de papier. Si nous froissons le papier, les points sont maintenant en 3 dimensions. De nombreux algorithmes d'apprentissage cherchent à «défroisser» la feuille de papier pour remettre les données en 2 dimensions. Même si nous ne voulons pas sur-adapter notre modèle, un apprenant non linéaire peut produire un espace qui facilite les problèmes de classification et de régression.
la source
Une façon de réduire les dimensions consiste à hacher les fonctionnalités. Cela était connu dans les années 1960. Ainsi, par exemple, si vos données sont un ensemble clairsemé de points en 3 dimensions (x, y, z), vous créez une (bonne) fonction de hachage h (x, y, z). Vous pouvez bien sûr l'utiliser pour une table de hachage ou une recherche de filtre Bloom. Il s'agit d'une bonne forme de compression de données. Je ne sais pas pourquoi la communauté de l'IA ne l'utilise pas. C'est beaucoup plus pertinent qu'un réseau neuronal.
la source
@Alexey Grigorev a déjà donné une très bonne réponse, mais je pense qu'il pourrait être utile d'ajouter deux choses:
Exemple intuitif
Imaginez que nous travaillions sur une collection d'images HDready (noir et blanc) (1280 * 720 pixels). Ces images vivent dans un monde de 921 600 dimensions; Chaque image est définie par des valeurs individuelles de pixels.
Imaginez maintenant que nous construisions ces images en remplissant chaque pixel en séquence en lançant un dé à 256 faces.
L'image résultante ressemblerait probablement à quelque chose comme ceci:
Pas très intéressant, mais nous pourrions continuer à le faire jusqu'à ce que nous touchions quelque chose que nous aimerions garder. Très fatigant mais nous pourrions automatiser cela en quelques lignes de Python.
Si l'espace d'images significatives (et encore moins réalistes) était même à distance aussi grand que l'espace entier de fonctionnalités, nous verrions bientôt quelque chose d'intéressant. Peut-être que nous verrions une photo de bébé de vous ou un article de nouvelles d'une chronologie alternative. Hé, que diriez-vous d'ajouter un composant de temps, et nous pourrions même avoir de la chance et générer Back to th Future avec une fin alternative
En fait, nous avions auparavant des machines qui faisaient exactement cela: des vieux téléviseurs qui n'étaient pas bien réglés. Maintenant, je me souviens avoir vu ceux-ci et je n'ai jamais rien vu qui ait même eu une structure.
Pourquoi cela arrive-t-il? Eh bien: les images que nous trouvons intéressantes sont en fait des projections de phénomènes à haute résolution et elles sont régies par des choses de dimensions beaucoup moins élevées. Par exemple: la luminosité de la scène, qui est proche d'un phénomène unidimensionnel, domine dans ce cas près d'un million de dimensions.
Cela signifie qu'il existe un sous-espace (la variété), dans ce cas (mais pas par définition) contrôlé par des variables cachées, qui contient les instances qui nous intéressent
Comportement euclidien local
Le comportement euclidien signifie que le comportement a des propriétés géométriques. Dans le cas de la luminosité qui est très évidente: si vous l'augmentez le long de "son axe", les images résultantes deviennent continuellement plus lumineuses.
Mais c'est là que cela devient intéressant: ce comportement euclidien fonctionne également sur des dimensions plus abstraites dans notre espace collecteur. Considérez cet exemple de Deep Learning par Goodfellow, Bengio et Courville
Gauche: la carte 2D du collecteur de faces Frey. Une dimension découverte (horizontale) correspond le plus souvent à une rotation du visage, tandis que l'autre (verticale) correspond à l'expression émotionnelle. À droite: la carte 2D du collecteur MNIST
L'une des raisons pour lesquelles l'apprentissage en profondeur est si efficace dans les applications impliquant des images est qu'il incorpore une forme très efficace d'apprentissage multiple. C'est l'une des raisons pour lesquelles elle s'applique à la reconnaissance et à la compression d'images, ainsi qu'à la manipulation d'images.
la source