opencv advanced 04-comprendre quel est l'algorithme K-adjacent

Un algorithme d'apprentissage automatique est un modèle généré à partir de données, c'est-à-dire un algorithme d'apprentissage (ci-après également appelé algorithme). Nous fournissons de l'expérience à l'algorithme, et il peut générer des modèles basés sur des données empiriques. Face à une nouvelle situation, le modèle nous fournira des résultats de jugement (prédiction). Par exemple, nous jugeons qu'un enfant est un bon candidat pour un athlète sur la base de "grandes jambes, longues et légères". Quantifiez ces données et donnez-les à l'ordinateur, et il générera un modèle basé sur celles-ci. Face à une nouvelle situation (juger si un autre enfant peut devenir un athlète), le modèle donnera un jugement correspondant.

caractéristiques des données

Par exemple, pour tester un groupe d'enfants, il faut d'abord obtenir les données de base de ce groupe d'enfants. Cet ensemble de données comprend des données telles que la taille, la longueur des jambes et le poids Ces éléments qui reflètent les performances ou la nature d'un objet (ou d'un événement) sous un certain aspect sont appelés attributs ou caractéristiques . La valeur spécifique, telle que "188 cm" reflétant la hauteur, est la valeur de la caractéristique ou la valeur de l'attribut . La collecte de cet ensemble de données "(taille=188 cm, longueur de jambe=56 cm, poids=46 kg), ..., (taille=189 cm, longueur de jambe=55 cm, poids=48 kg)" est appelée un ensemble de données , où les données de chaque enfant sont appelées un échantillon.

Le processus d'apprentissage d'un modèle à partir de données est appelé apprentissage ou formation. Les données utilisées dans le processus d'apprentissage sont appelées données d'apprentissage, chaque échantillon qu'elles contiennent est appelé échantillon d'apprentissage et l'ensemble d'échantillons d'apprentissage est appelé ensemble d'apprentissage.

Bien sûr, si vous souhaitez obtenir un modèle, en plus d'avoir des données, vous devez également attacher les étiquettes correspondantes aux échantillons. Par exemple, "(((grand, long, léger), gentil)"). Les "bonnes graines" ici sont des étiquettes, et nous nous référons généralement aux échantillons avec des étiquettes comme des "exemples".

Après avoir appris le modèle, afin de tester l'effet du modèle, il doit être testé, et les échantillons testés sont appelés échantillons de test. Lors de la saisie d'un échantillon de test, l'étiquette de l'échantillon de test (catégorie cible) n'est pas fournie, mais le modèle détermine l'étiquette de l'échantillon (à quelle catégorie il appartient). En comparant la différence entre l'étiquette prédite de l'échantillon d'essai et l'étiquette réelle de l'échantillon, la précision du modèle peut être calculée.

La plupart des algorithmes d'apprentissage automatique sont issus de la pratique quotidienne. L'algorithme K plus proche voisin est l'un des algorithmes d'apprentissage automatique les plus simples, qui est principalement utilisé pour diviser des objets en classes connues et est largement utilisé dans la vie. Par exemple, le coach souhaite sélectionner un groupe de coureurs de fond, comment les sélectionner ? Il peut utiliser l'algorithme du plus proche voisin K et sélectionnera des candidats qui sont grands, aux jambes longues, légers, avec une petite circonférence du genou et de la cheville, des tendons d'Achille évidents
et de grandes arches. Il sentira que ces enfants ont le potentiel d'athlètes, ou que les caractéristiques de ces enfants sont très proches de celles des athlètes.

L'idée de base de l'algorithme K plus proche voisin

L'essence de l'algorithme du K voisin le plus proche est d'affecter l'objet spécifié en fonction du connu特征值分类 . Par exemple, en voyant un père et son fils, dans des circonstances normales, en jugeant leurs âges, on peut immédiatement dire qui est le père et qui est le fils. C'est via l'attribut age 特征值来划分.

L'exemple ci-dessus est la classification la plus simple basée sur une dimension de caractéristique unique. Dans des scénarios réels, la situation peut être plus compliquée, avec plusieurs dimensions de caractéristique. Par exemple, pour classer une vidéo de sport, déterminez si la vidéo est un match de tennis de table ou un match de football.

Afin de déterminer la classification, les caractéristiques doivent être définies. Deux caractéristiques sont définies ici, l'une est l'action de "ondulation" de l'athlète et l'autre est l'action de "coup de pied" de l'athlète. Bien sûr, on ne peut pas qualifier une vidéo de "jeu de ping-pong" juste en voyant l'action "agiter", car on sait que certains footballeurs ont l'habitude de faire signe pour communiquer avec leurs coéquipiers sur le terrain de sport. De même, on ne peut pas qualifier une vidéo de "match de football" simplement en y voyant un "coup de pied" car certains joueurs de tennis de table utilisent des "coups de pied" pour exprimer leurs émotions.

Nous avons compté le nombre d'actions "agiter" et "couper" dans la vidéo pendant une certaine période de temps, et avons trouvé les règles suivantes :

  • Dans la vidéo d'un match de tennis de table, il y a bien plus de "vagues" que de "coups de pied".
  • Les vidéos de matchs de football montrent beaucoup plus de "coups de pied" que de "vagues".

Selon l'analyse d'un groupe de vidéos, les données présentées dans le tableau 20-1 sont obtenues.

insérez la description de l'image ici

Pour faciliter l'observation, les données ci-dessus sont dessinées sous forme de diagramme de dispersion, comme illustré à la Figure 20-1.

insérez la description de l'image ici

insérez la description de l'image ici

Comme le montre la Figure 20-1, les points de données présentent des caractéristiques de regroupement :

  • Les points de données dans la vidéo du jeu de tennis de table sont rassemblés dans la zone où les coordonnées de l'axe x sont [3000, 5000] et les coordonnées de l'axe y sont [1 500].
  • Les points de données dans la vidéo du match de football sont regroupés dans la zone où les coordonnées de l'axe y sont [3000, 5000] et les coordonnées de l'axe x sont [1 500].

À l'heure actuelle, il y a un test vidéo, et les statistiques montrent qu'il y a 2000 actions "agitant" et 100 actions "coup de pied". Si son emplacement est marqué sur la Figure 20-1, on peut constater que le voisin le plus proche de l'emplacement du test vidéo est une vidéo de jeu de tennis de table, on peut donc juger que la vidéo est une vidéo de jeu de tennis de table.

L'exemple ci-dessus est un exemple extrême, noir sur blanc, mais les données de classification réelles ont souvent beaucoup de paramètres, et ce n'est pas si simple à juger.
Par conséquent, afin d'améliorer la fiabilité de l'algorithme, k points voisins seront sélectionnés lors de la mise en œuvre , et à quelle catégorie parmi ces k points appartient est le plus, puis le point courant à identifier est divisé dans quelle catégorie. Pour la commodité du jugement,
la valeur de k est généralement un nombre impair, ce qui est la même que la raison pour laquelle les membres du conseil sont généralement disposés en nombre impair afin d'obtenir un résultat de vote clair.

Par exemple, on sait qu'un artiste jumeau bien connu A et B se ressemblent beaucoup. Si vous voulez juger si la personne sur une image T est l'artiste A ou l'artiste B, les étapes spécifiques pour l'implémenter en utilisant le K le plus proche algorithme de voisinage sont les suivants :

(1) Collectez 100 photos de l'artiste A et de l'artiste B chacune.
(2) Déterminez plusieurs caractéristiques importantes pour identifier les personnes et utilisez ces caractéristiques pour étiqueter les photos des artistes A et B.

Par exemple, selon certaines caractéristiques 4, chaque photo peut être exprimée comme [156, 34, 890, 457] (c'est-à-dire un point d'échantillonnage). Selon le procédé ci-dessus,
un ensemble de données FA de 100 photos de l'artiste A et un ensemble de données FB de 100 photos de l'artiste B sont obtenus. A ce moment, les éléments dans les ensembles de données FA et FB
sont sous la forme des valeurs propres mentionnées ci-dessus, et chaque ensemble a 100 de ces valeurs propres. En bref, il utilise des valeurs numériques pour représenter les photos et obtient
l'ensemble de caractéristiques numériques (ensemble de données) FA de l'artiste A et l'ensemble de caractéristiques numériques FB de l'artiste B.

(3) Calculez la caractéristique de l'image T à reconnaître et utilisez la valeur de la caractéristique pour représenter l'image T. Par exemple, la valeur de caractéristique TF de l'image T peut
être [257, 896, 236, 639].
(4) Calculer la distance entre la valeur propre TF de l'image T et chaque valeur propre dans FA et FB.

(5) Trouver les points d'échantillonnage qui produisent les k distances les plus courtes (trouver les k voisins les plus proches de T), compter le nombre de points d'échantillonnage appartenant à FA et FB parmi les k points d'échantillonnage, et quel ensemble de données a plus de points d'échantillonnage, déterminer quelle image d'artiste T est.

Par exemple, trouver 11 points les plus proches, parmi ces 11 points, il y a 7 points échantillons appartenant à FA, et 4 points échantillons appartenant à FB, alors on détermine que l'artiste sur cette image T est A ; sinon, si Parmi ces 11 points, 6 points d'échantillonnage appartiennent à FB et 5 points d'échantillonnage appartiennent à FA, alors l'artiste sur cette image T est déterminé comme étant B.
Ce qui précède est l'idée de base de l'algorithme K plus proche voisin.

pensée computationnelle

Le « sentiment » d'un ordinateur est obtenu par des calculs logiques et des calculs numériques. Par conséquent, dans la plupart des cas, nous devons traiter numériquement les objets à traiter par l'ordinateur et les quantifier en valeurs spécifiques pour un traitement ultérieur.

Après avoir obtenu les valeurs propres de chaque échantillon, l'algorithme des K plus proches voisins calcule la distance entre les valeurs propres des échantillons à identifier et les valeurs propres de chaque échantillon de classement connu, puis trouve les k échantillons les plus proches voisins, selon les k échantillons les plus proches Le classement de l'échantillon avec la proportion la plus élevée appartient à déterminer le classement de l'échantillon à identifier.

01. Normalisation

Pour les cas simples, il suffit de calculer directement la distance (écart) à la valeur propre.

Par exemple, dans un film ou un drame télévisé, on sait par des moyens techniques que la taille du suspect est de 186 cm et que la taille de la victime est de 172 cm. Face à la police, A et B se sont déclarés victimes.

À ce stade, nous pouvons déterminer qui est la vraie victime en mesurant la hauteur des deux :

  • La taille de A est de 185 cm, la distance de la taille du suspect = 186-185 = 1 cm, et la distance de la taille de la victime = 185-172 = 7 cm. La taille de A est plus proche du suspect, donc A est confirmé comme suspect.
  • La taille de B est de 173 cm, la distance de la taille du suspect = 186-173 = 13 cm et la distance de la taille de la victime = 173-172 = 1 cm. La taille de B est plus proche de celle de la victime, donc B est identifié comme la victime.

L'exemple ci-dessus est un cas particulier très simple. Dans des scénarios réels, davantage de paramètres peuvent être nécessaires pour le jugement.

Par exemple, dans un drame télévisé et cinématographique étranger, la police a appris par des moyens techniques que le suspect mesurait 180 cm et qu'il lui manquait un doigt ; la victime mesurait 173 cm et avait les dix doigts intacts. A ce moment, A et B, qui sont venus se rendre, se sont tous les deux déclarés victimes.
Lorsqu'il y a plusieurs paramètres, ces paramètres sont généralement formés dans une liste (tableau) pour un jugement complet. Dans cet exemple, (hauteur, nombre de doigts) est utilisé comme caractéristique.

Par conséquent, le suspect a des valeurs propres de (180, 9) et la victime a des valeurs propres de (173, 10).

À ce stade, les jugements suivants peuvent être faits pour les deux :

  • A mesure 175 cm et n'a pas de doigt. La valeur propre de A est (175, 9).
  • La distance entre A et la valeur caractéristique du suspect = (180-175) + (9-9) = 5
  • La distance entre A et la valeur caractéristique de la victime = (175-173) + (10-9) = 3

A ce moment, la valeur propre de A est plus proche de la victime, et il est déterminé que A est la victime

  • La taille de B est de 178 cm et ses dix doigts sont sains. La valeur propre de B est (178, 10).
  • La distance entre B et la valeur caractéristique du suspect = (180-178) + (10-9) = 3
  • La distance entre B et la valeur caractéristique de la victime = (178-173) + (10-10) = 5

A ce moment, les valeurs propres de B et du suspect sont plus proches, et on en conclut que B est le suspect.

Bien sûr, nous savons que les résultats ci-dessus sont faux . Étant donné que la hauteur et le nombre de doigts ont des dimensions (poids) différentes, les poids entre les différents paramètres doivent être pleinement pris en compte lors du calcul de la distance par rapport à la valeur de la caractéristique. Habituellement, pour des raisons telles que les dimensions incohérentes de chaque paramètre , il est nécessaire de traiter les paramètres de sorte que tous les paramètres aient des poids égaux.

En général, il suffit de normaliser les paramètres. Lors de la normalisation, la valeur propre est généralement divisée par la valeur maximale (ou la différence entre la valeur maximale et la valeur minimale) de toutes les valeurs propres .

Par exemple, dans l'exemple ci-dessus, la hauteur est divisée par la hauteur maximale de 180 (cm) et le nombre de doigts de chaque personne est divisé par le nombre maximal de doigts 10 (10 doigts) pour obtenir une nouvelle valeur de caractéristique. La méthode de calcul est :

Caractéristiques normalisées = (taille de chaque personne/taille maximale 180, nombre de doigts/index de la main longue 10)

Donc, après normalisation :

  • La valeur caractéristique du suspect est (180/180, 9/10) = (1, 0,9)
  • La valeur caractéristique de la victime est (173/180, 10/10) = (0,96, 1)

À ce stade, les deux peuvent être jugés sur la base des valeurs propres normalisées :

  • La valeur caractéristique de A est (175/180, 9/10)=(0,97, 0,9)
  • La distance entre A et la valeur caractéristique du suspect = (1-0,97) + (0,9-0,9) = 0,03
  • La distance entre A et la valeur caractéristique de la victime = (0,97-0,96) + (1-0,9) = 0,11

A ce moment, les valeurs propres de A et du suspect sont plus proches, et on en conclut que A est le suspect.

  • La valeur caractéristique de B est (178/180, 10/10)=(0,99, 1)

  • La distance de valeur propre entre B et le suspect = (1-0,99) + (1-0,9) = 0,11

  • Distance de valeur propre entre B et la victime = (0,99-0,96) + (1-1) = 0,03

A ce moment, les valeurs propres de B et de la victime sont plus proches, et on en conclut que B est la victime.

02. Calcul des distances

Dans la discussion précédente, nous avons calculé la distance plusieurs fois. La méthode utilisée consiste à soustraire d'abord les éléments correspondants dans les valeurs propres, puis à les additionner.

Par exemple, il existe des valeurs propres A(185, 75) et B(175, 86) sous la forme de (taille, poids), et la distance entre C(170, 80) et la valeur propre A et la valeur propre B est jugée ci-dessous :

  • Distance entre C et A = (185-170) + (75-80) = 15+(-5) =10
  • Distance de C à B = (175-170) + (86-80) = 5+6 = 11

Par calcul, la distance entre C et A est plus proche, donc C est classé comme la catégorie à laquelle appartient A.

Bien sûr, nous savons que le jugement ci-dessus est faux , car il y a un nombre négatif lors du calcul de la distance entre C et A, ce qui compense une partie du nombre positif. Ainsi, afin d'éviter ce genre de décalage positif et négatif, on calcule généralement la somme des valeurs absolues :

  • La distance entre C et A = |185-170|+|75-80| = 15+5 = 20
  • Distance entre C et B = |175-170|+|86-80| = 5+6 = 11

Après avoir pris la valeur absolue puis additionné, on calcule que la distance entre C et B est plus proche, et C est classé comme la catégorie à laquelle B appartient. Cette distance exprimée par la somme des valeurs absolues est appelée 曼哈顿距离.

Calculer une distance comme celle-ci est fondamentalement suffisant, mais il existe de meilleures façons. Par exemple, une façon de calculer des sommes de carrés peut être introduite. La méthode de calcul à ce moment est :

insérez la description de l'image ici
La forme la plus générale consiste à calculer la racine carrée de la somme des carrés. Cette distance est la distance euclidienne largement utilisée. Sa méthode de calcul est la suivante :

insérez la description de l'image ici

Après l'avoir lu, essayez d'utiliser votre propre compréhension de l'algorithme vernaculaire du K-voisinage, rendez-vous dans la zone des commentaires ! ! !

Je suppose que tu aimes

Origine blog.csdn.net/hai411741962/article/details/132298394
conseillé
Classement