Je suis un passionné de programmation et d'apprentissage automatique. Il y a seulement quelques mois, j'ai commencé à apprendre la programmation d'apprentissage automatique. Comme beaucoup de ceux qui n'ont pas de formation scientifique quantitative, j'ai également commencé à apprendre le ML en bricolant avec les algorithmes et les jeux de données du package ML largement utilisé (caret R).
Il y a quelque temps, j'ai lu un blog dans lequel l'auteur parle de l'utilisation de la régression linéaire en ML. Si je me souviens bien, il a parlé de la façon dont tout l'apprentissage automatique utilise finalement une sorte de "régression linéaire" (je ne sais pas s'il a utilisé ce terme exact) même pour des problèmes linéaires ou non linéaires. Cette fois, je n'ai pas compris ce qu'il voulait dire par là.
Ma compréhension de l'utilisation de l'apprentissage automatique pour les données non linéaires consiste à utiliser un algorithme non linéaire pour séparer les données.
C'était ma pensée
Disons que pour classer les données linéaires, nous avons utilisé l'équation linéaire et pour les données non linéaires, nous utilisons l'équation non linéaire, disons
Cette image est tirée du site Web sikit learn de la machine à vecteur de support. Dans SVM, nous avons utilisé différents noyaux à des fins de ML. Donc, ma pensée initiale était que le noyau linéaire sépare les données en utilisant une fonction linéaire et que le noyau RBF utilise une fonction non linéaire pour séparer les données.
Mais j'ai vu ce blog où l'auteur parle de réseaux neuronaux.
Pour classer le problème non linéaire dans la sous-intrigue de gauche, le réseau neuronal transforme les données de telle manière qu'au final, nous pouvons utiliser une séparation linéaire simple des données transformées dans la sous-intrigue de droite
Ma question est de savoir si tous les algorithmes d'apprentissage automatique utilisent finalement une séparation linéaire pour la classification (ensemble de données linéaire / non linéaire)?
Réponses:
La réponse est non. User20160 a une réponse parfaite, j'ajouterai 3 exemples avec visualisation pour illustrer l'idée. Remarque, ces graphiques peuvent ne pas vous être utiles pour voir si la "décision finale" est sous forme linéaire, mais vous donnent une idée de l'arborescence, du boosting et du KNN.
Nous allons commencer avec des arbres de décision. Avec de nombreuses divisions, il s'agit d'une frontière de décision non linéaire. Et nous ne pouvons pas penser que toutes les divisions précédentes sont des "transformations de caractéristiques" et il y a une ligne de décision finale à la fin.
Un autre exemple est le modèle de stimulation, qui regroupe de nombreux "classificateurs faibles" et la frontière de décision finale n'est pas linéaire. Vous pouvez penser que c'est un code / algorithme compliqué pour faire la prédiction finale.
Enfin, pensez à K Nearest Neighbours (KNN). Ce n'est pas non plus une fonction de décision linéaire au niveau de la couche finale. en outre, il n'y a pas de "transformations de fonctionnalités" dans KNN.
Voici trois visualisations dans l'espace 2D (Tree, Boosting et KNN de haut en bas). La vérité fondamentale est que 2 spirales représentent deux classes, et la sous-intrigue gauche est les prédictions du modèle et la sous-intrigue droite est les limites de décision du modèle.
EDIT: La réponse de @ ssdecontrol dans ce post donne une autre perspective.
Cela dépend de la façon dont nous définissons la «transformation» .
la source
spirals
beaucoup dans mes expérimentations). Une suggestion: tracez les limites de décision commeimage
, et ajoutez peut-être des niveaux de probabilité (si vous utilisez des sorties probabilistes) aveccontour
.Certains algorithmes utilisent un hyperplan (c'est-à-dire une fonction linéaire) pour séparer les données. Un exemple frappant est la régression logistique. D'autres utilisent un hyperplan pour séparer les données après une transformation non linéaire (par exemple, les réseaux de neurones et prennent en charge les machines vectorielles avec des noyaux non linéaires). Dans ce cas, la frontière de décision est non linéaire dans l'espace de données d'origine, mais linéaire dans l'espace d'entités dans lequel les données sont mappées. Dans le cas des SVM, la formulation du noyau définit implicitement ce mappage. D'autres algorithmes utilisent plusieurs hyperplans de fractionnement dans les régions locales de l'espace de données (par exemple, les arbres de décision). Dans ce cas, la frontière de décision est linéaire par morceaux (mais globalement non linéaire).
Cependant, d'autres algorithmes ont des limites de décision non linéaires et ne sont pas formulés en termes d'hyperplans. Un exemple frappant est la classification k des voisins les plus proches. Les classificateurs d'ensemble (par exemple produits en augmentant ou en ensachant d'autres classificateurs) sont généralement non linéaires.
la source