Pourquoi la fonctionnalité de mise à l'échelle?
J'ai trouvé que la mise à l'échelle dans SVM (Support Vector Machine), des problèmes de vraiment améliorer ses performances...
J'ai lu cette explication:
"Le principal avantage de la mise à l'échelle pour éviter les attributs en plus de plages numériques dominant dans les petites plages numériques."
Malheureusement cela ne m'aide pas ... quelqu'un Peut-il me fournir une meilleure explication?
Je vous remercie à l'avance!
- Vous parlez du journal-normalisation des données?
- Peut-être que vous devriez poser cette question à stats.stackexchange.com - ce forum est pour les questions de programmation, vos questions sonne comme une théorique
Vous devez vous connecter pour publier un commentaire.
La vraie raison derrière échelle fonctionnalités dans SVM est le fait, que ce classificateur n'est pas transformation affine invariant. En d'autres termes, si vous multipliez une fonction par un 1000 que d'une solution donnée par la SVM sera complètement différente. Il a presque rien à voir avec le sous-tendent les techniques d'optimisation (même si elles sont concernées par ces échelles de problèmes, ils devraient toujours converger vers optimum global).
Prenons un exemple: vous avez homme et une femme, codée par leur sexe et de leur hauteur (deux éléments). Supposons un cas très simple avec ces données:
0-homme, 1 femme
1 150
1 160
1 170
0 180
0 190
0 200
Et laissez-nous faire quelque chose de stupide. Le Train pour prédire le sexe de la personne, de sorte que nous sommes en train d'apprendre f(x,y)=x (en ignorant deuxième paramètre).
Il est facile de voir, que pour ce type de données plus grande marge de classificateur sera "coupé" de l'avion à l'horizontale, quelque part autour de la hauteur "175", donc une fois que nous recevons des nouvelles de l'échantillon "0 178" (une femme de 178 cm de hauteur) nous obtenons le classement qu'elle est un homme.
Cependant, si nous avons l'échelle vers le bas tout à [0,1] on obtient qqch comme
0 0.0
0 0.2
0 0.4
1 0.6
1 0.8
1 1.0
et maintenant plus grande marge de classifier les "coupes" de l'avion presque à la verticale (comme prévu) et ainsi donné un nouvel exemple de "0 178", qui est également mis à l'échelle pour autour de "0 0.56", nous obtenons que c'est une femme (le bon!)
Donc, en général, - mise à l'échelle s'assure que tout simplement parce que certaines fonctionnalités sont grand elle ne mène pas à les utiliser comme un principal facteur prédictif.
Fonction de mise à l'échelle est un général truc appliquée à des problèmes d'optimisation (et pas seulement SVM). Le soulignement algorithme pour résoudre le problème d'optimisation de la SVM est dégradé descendre. Andrew Ng a une bonne explication dans son coursera vidéos ici.
Je vais illustrer la base des idées ici (j'emprunte Andrew diapositives). Supposons que vous avez seulement deux paramètres et l'un des paramètres peut prendre relativement large gamme de valeurs. Ensuite le contour de la fonction de coût
peut regarder comme très grand et maigre ovales (voir l'ovale bleu ci-dessous). Vos dégradés (le chemin de gradient est dessiné en rouge) pourrait prendre un certain temps et aller d'avant en arrière pour trouver la solution optimale.
Au lieu de cela, si votre échelle de votre fonction, le contour de la fonction de coût peut ressembler à des cercles; puis le dégradé peut prendre un peu plus droit chemin et atteindre le point optimal de beaucoup plus rapide.
Juste de la réflexion personnelle à partir d'un autre point de vue.
1. pourquoi la fonctionnalité de mise à l'échelle d'influence?
Il y a un mot dans l'application de l'algorithme d'apprentissage automatique, garbage in, garbage out". Le plus réel reflet de vos fonctions, plus la précision de votre algorithme permet d'obtenir. Qui s'applique aussi pour la façon dont les algorithmes d'apprentissage automatique traiter de la relation entre les fonctions. Différent du cerveau humain, lorsque les algorithmes d'apprentissage automatique ne les classer par exemple, toutes les fonctionnalités sont exprimés et calculé par le même système de coordonnées, ce qui dans un certain sens, établir hypothèse a priori entre les fonctionnalités(pas vraiment le reflet de données elle-même). Et aussi de la nature de la plupart des algorithmes est de trouver le plus approprié en pourcentage du poids entre les fonctions à plus fort les données. Ainsi, lorsque ces algorithmes' entrée est non mis à l'échelle de fonctionnalités, de données à grande échelle a plus d'influence sur le poids. En fait ce n'est pas le reflet de données iteself.
2. pourquoi généralement fonction de mise à l'échelle d'améliorer la précision?
La pratique commune dans non supervisée des algorithmes d'apprentissage automatique sur les hyper-paramètres(ou hyper-hyper-paramètres) sélection(par exemple, hiérarchique processus de Dirichlet, hLDA), c'est que vous ne devez pas ajouter d'personnelles et subjectives hypothèse sur les données. La meilleure façon est juste de supposer qu'ils ont l'égalité de probabilité d'apparaître. Je pense qu'elle s'applique ici aussi. La fonction de mise à l'échelle essaie juste de faire l'hypothèse que toutes les fonctionnalités a l'égalité possibilité d'influer sur le poids, qui reflète vraiment l'information/connaissance vous savez sur les données. Souvent aussi engendrer une meilleure précision.
BTW, sur la transformation affine invariant et de converger plus vite, il n'y a pas d'intérêt lien ici sur stats.stackexchange.com.
Nous pouvons accélérer la descente de gradient en ayant chacun de nos valeurs d'entrée dans environ la même gamme. C'est parce que θ va descendre rapidement sur les petites plages et lentement sur de grandes plages, et donc va osciller de façon inefficace vers le bas à l'optimum lorsque les variables sont très inégaux.
C'est à partir de Andrews NG coursera cours.
Donc, c'est fait pour faire quelque chose comme la normalisation des données.
Parfois, les chercheurs veulent savoir si une observation est commun ou d'exception. exprimer un score en termes de nombre d'écarts-types, il est supprimé de la moyenne. Ce numéro est ce qu'on appelle un z-score. Si l'on recode partitions originales en z-scores, nous disons que nous normaliser une variable.
De ce que j'ai appris de la Andrew Ng cours sur coursera, c'est que la fonctionnalité de mise à l'échelle permet de réaliser le dégradé décent plus rapidement,si les données sont plus dispersées,ce qui signifie que si il a un niveau standard de déviation,il sera relativement peu plus de temps pour calculer le gradient décent par rapport à la situation quand nous avons échelle de nos données via la fonctionnalité de mise à l'échelle
L'Idée de mise à l'échelle est de supprimer exess calcule sur une variable particulière, par une uniformisation de toutes les variables sur une même échelle avec ce que nous avons tendance à calculer la pente beaucoup plus facile ( y = mx + c) où nous sommes en normalisant le paramètre M de converger le plus rapidement possible.
Oui si la normalisation n'est pas là, le contour sera maigre donc avec la normalisation: