opencv advanced 04 – Verstehen Sie, was der K-Adjacent-Algorithmus ist

Ein Algorithmus für maschinelles Lernen ist ein aus Daten generiertes Modell, also ein Algorithmus zum Lernen (im Folgenden auch als Algorithmus bezeichnet). Wir stellen dem Algorithmus Erfahrung zur Verfügung und er kann Modelle basierend auf empirischen Daten generieren. Wenn wir mit einer neuen Situation konfrontiert werden, liefert uns das Modell Beurteilungsergebnisse (Vorhersageergebnisse). Beispielsweise beurteilen wir ein Kind anhand seiner „großen, langen Beine und seines geringen Gewichts“ als einen guten Kandidaten für einen Sportler. Quantifizieren Sie diese Daten und geben Sie sie an den Computer weiter. Daraufhin wird ein Modell generiert. Wenn Sie mit einer neuen Situation konfrontiert werden (beurteilen, ob ein anderes Kind Sportler werden kann), gibt das Modell ein entsprechendes Urteil ab.

Dateneigenschaften

Um beispielsweise eine Gruppe von Kindern zu testen, müssen zunächst die Grunddaten dieser Kindergruppe ermittelt werden. Dieser Datensatz umfasst Daten wie Größe, Beinlänge und Gewicht . Diese Elemente, die die Leistung oder Natur eines Objekts (oder eines Ereignisses) in einem bestimmten Aspekt widerspiegeln, werden als Attribute oder Merkmale bezeichnet . Der spezifische Wert, z. B. „188 cm“, der die Körpergröße widerspiegelt, ist der Merkmalswert oder Attributwert . Die Sammlung dieses Datensatzes heißt „(Höhe=188 cm, Beinlänge=56 cm, Gewicht=46 kg), ..., (Höhe=189 cm, Beinlänge=55 cm, Gewicht=48 kg)“. ein Datensatz , wobei die Daten für jedes Kind als Stichprobe bezeichnet werden.

Der Prozess des Lernens eines Modells aus Daten wird Lernen oder Training genannt. Die im Trainingsprozess verwendeten Daten werden als Trainingsdaten bezeichnet, jede darin enthaltene Probe wird als Trainingsprobe bezeichnet und der Satz von Trainingsproben wird als Trainingssatz bezeichnet.

Wenn Sie ein Modell erhalten möchten, müssen Sie neben den Daten natürlich auch entsprechende Etiketten an den Mustern anbringen. Zum Beispiel „(((groß, langbeinig, leichtgewichtig), netter Kerl)“). Die „guten Samen“ sind hier Etiketten, und wir bezeichnen Proben mit Etiketten normalerweise als „Beispiele“.

Nach dem Erlernen des Modells muss es getestet werden, um die Wirkung des Modells zu testen. Die getesteten Proben werden als Testproben bezeichnet. Bei der Eingabe einer Testprobe wird die Bezeichnung der Probe (Zielkategorie) nicht angegeben, aber das Modell bestimmt die Bezeichnung der Probe (zu welcher Kategorie sie gehört). Durch Vergleich der Differenz zwischen der vorhergesagten Bezeichnung der Testprobe und der tatsächlichen Probenbezeichnung kann die Genauigkeit des Modells berechnet werden.

Die meisten Algorithmen des maschinellen Lernens stammen aus der alltäglichen Praxis. Der K-Algorithmus für den nächsten Nachbarn ist einer der einfachsten Algorithmen für maschinelles Lernen. Er wird hauptsächlich zum Unterteilen von Objekten in bekannte Klassen verwendet und ist im Leben weit verbreitet. Wenn der Trainer beispielsweise eine Gruppe von Langstreckenläufern auswählen möchte, wie sollte er ausgewählt werden? Er verwendet möglicherweise den K-Nearest-Neighbor-Algorithmus und wählt Kandidaten aus, die groß sind, lange Beine, ein geringes Gewicht, einen kleinen Knie- und Knöchelumfang, offensichtliche
Achillessehnen und große Bögen haben. Er wird das Gefühl haben, dass solche Kinder das Potenzial von Sportlern haben oder dass die Eigenschaften dieser Kinder denen von Sportlern sehr nahe kommen.

Die Grundidee des K-Nächste-Nachbarn-Algorithmus

Der Kern des K-Algorithmus für den nächsten Nachbarn besteht darin, das angegebene Objekt gemäß dem Bekannten zuzuweisen特征值分类 . Wenn man zum Beispiel einen Vater und einen Sohn sieht, kann man unter normalen Umständen anhand der Altersbeurteilung sofort erkennen, wer der Vater und wer der Sohn ist. Dies geschieht über das Altersattribut 特征值来划分.

Das obige Beispiel stellt die einfachste Klassifizierung basierend auf einer einzelnen Merkmalsdimension dar. In tatsächlichen Szenarien kann die Situation mit mehreren Merkmalsdimensionen komplizierter sein. Um beispielsweise ein Sportvideo zu klassifizieren, bestimmen Sie, ob es sich bei dem Video um ein Tischtennisspiel oder ein Fußballspiel handelt.

Um die Klassifizierung zu bestimmen, müssen Merkmale definiert werden. Hier werden zwei Merkmale definiert: das eine ist die „Winke“-Aktion des Athleten und das andere ist die „Tritt“-Aktion des Athleten. Natürlich können wir ein Video nicht allein aufgrund des „Winkens“ als „Tischtennisspiel“ klassifizieren, denn wir wissen, dass einige Fußballspieler es gewohnt sind, zu winken, um mit Teamkollegen auf dem Sportplatz zu kommunizieren. Ebenso können wir nicht einfach einen „Kick“ sehen und ein Video als „Fußballspiel“ klassifizieren, weil manche Tischtennisspieler „Kicks“ verwenden, um ihre Gefühle auszudrücken.

Wir haben die Anzahl der „Winken“- und „Treten“-Aktionen im Video innerhalb eines bestimmten Zeitraums gezählt und folgende Regeln gefunden:

  • Im Video eines Tischtennismatches gibt es weitaus mehr „Wellen“ als „Kicks“.
  • Auf Videos von Fußballspielen sind deutlich mehr „Kicks“ als „Wellen“ zu sehen.

Gemäß der Analyse einer Gruppe von Videos werden die in Tabelle 20-1 gezeigten Daten erhalten.

Fügen Sie hier eine Bildbeschreibung ein

Zur Vereinfachung der Beobachtung werden die obigen Daten als Streudiagramm dargestellt, wie in Abbildung 20-1 dargestellt.

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Wie aus Abbildung 20-1 ersichtlich ist, weisen die Datenpunkte Clustering-Eigenschaften auf:

  • Die Datenpunkte im Tischtennisspielvideo werden in dem Bereich gesammelt, in dem die Koordinaten der x-Achse [3000, 5000] und die Koordinaten der y-Achse [1.500] sind.
  • Die Datenpunkte im Fußballspielvideo sind in dem Bereich gruppiert, in dem die Koordinaten der y-Achse [3000, 5000] und die Koordinaten der x-Achse [1.500] sind.

Derzeit gibt es einen Videotest, und Statistiken zeigen, dass es 2000 „Winken“-Aktionen und 100 „Treten“-Aktionen gibt. Wenn der Standort in Abbildung 20-1 markiert ist, kann festgestellt werden, dass der nächste Nachbar des Standorts des Videotests ein Tischtennisspielvideo ist, sodass beurteilt werden kann, dass es sich bei dem Video um ein Tischtennisspielvideo handelt.

Das obige Beispiel ist ein extremes Beispiel, Schwarzweiß, aber die tatsächlichen Klassifizierungsdaten enthalten oft viele Parameter und sind nicht so einfach zu beurteilen. Um die Zuverlässigkeit des Algorithmus zu verbessern, werden daher während der Implementierung
k benachbarte Punkte ausgewählt. Welche Kategorie dieser k Punkte zu welcher Kategorie gehört, ist größer, und dann wird der aktuell zu identifizierende Punkt in welche Kategorie unterteilt. Der Einfachheit halber
ist der Wert von k normalerweise eine ungerade Zahl, was auch der Grund dafür ist, dass Vorstandsmitglieder normalerweise als ungerade Zahl angeordnet werden, um ein klares Abstimmungsergebnis zu erhalten.

Es ist beispielsweise bekannt, dass die bekannten Zwillinge Künstler A und B sich sehr ähnlich sehen. Wenn Sie beurteilen möchten, ob die Person auf einem Bild T Künstler A oder Künstler B ist, müssen Sie die spezifischen Schritte zur Umsetzung mithilfe von K-Nächster verwenden Der Nachbaralgorithmus lautet wie folgt:

(1) Sammeln Sie jeweils 100 Fotos von Künstler A und Künstler B.
(2) Bestimmen Sie mehrere wichtige Merkmale zur Identifizierung von Personen und verwenden Sie diese Merkmale, um Fotos der Künstler A und B zu kennzeichnen.

Gemäß bestimmten vier Merkmalen kann beispielsweise jedes Foto als [156, 34, 890, 457] (dh ein Beispielpunkt) ausgedrückt werden. Gemäß der obigen Methode
werden ein Datensatz FA von 100 Fotos von Künstler A und ein Datensatz FB von 100 Fotos von Künstler B erhalten. Zu diesem Zeitpunkt liegen die Elemente in den Datensätzen FA und FB
in Form der oben genannten Eigenwerte vor, und jeder Satz verfügt über 100 solcher Eigenwerte. Kurz gesagt, es verwendet numerische Werte zur Darstellung von Fotos und erhält
den numerischen Merkmalssatz (Datensatz) FA von Künstler A und den numerischen Merkmalssatz FB von Künstler B.

(3) Berechnen Sie das zu erkennende Merkmal des Bildes T und verwenden Sie den Merkmalswert, um das Bild T darzustellen. Beispielsweise kann der Merkmalswert TF von Bild T
[257, 896, 236, 639] sein.
(4) Berechnen Sie den Abstand zwischen dem Eigenwert TF des Bildes T und jedem Eigenwert in FA und FB.

(5) Finden Sie die Abtastpunkte, die die k kürzesten Abstände erzeugen (finden Sie die k nächsten Nachbarn von T), zählen Sie die Anzahl der zu FA und FB gehörenden Abtastpunkte unter den k Abtastpunkten und bestimmen Sie, welcher Datensatz mehr Abtastpunkte hat welches Künstlerbild T ist.

Finden Sie beispielsweise 11 nächstgelegene Punkte. Unter diesen 11 Punkten befinden sich 7 Beispielpunkte, die zu FA gehören, und 4 Beispielpunkte, die zu FB gehören. Dann wird bestimmt, dass der Künstler auf diesem Bild T A ist; andernfalls, wenn Unter diesen 11 Punkte, 6 Beispielpunkte gehören zu FB und 5 Beispielpunkte gehören zu FA, dann wird der Künstler auf diesem Bild T als B bestimmt.
Das Obige ist die Grundidee des K-Algorithmus für den nächsten Nachbarn.

rechnerisches Denken

Das „Gefühl“ eines Computers wird durch logische Berechnungen und numerische Berechnungen erreicht. Daher müssen wir in den meisten Fällen die vom Computer zu verarbeitenden Objekte numerisch verarbeiten und sie für die anschließende Verarbeitung in bestimmte Werte quantifizieren.

Nach Erhalt der Eigenwerte jeder Stichprobe berechnet der K-Nearest-Neighbor-Algorithmus den Abstand zwischen den Eigenwerten der zu identifizierenden Stichproben und den Eigenwerten jeder bekannten Klassifizierungsstichprobe und findet dann die k Stichproben für den nächsten Nachbarn. Gemäß den k nächsten Nachbarproben bestimmt die Klassifizierung der Probe mit dem höchsten Anteil die Klassifizierung der zu identifizierenden Probe.

01. Normalisierung

Für einfache Fälle reicht es aus, den Abstand (Lücke) direkt aus dem Eigenwert zu berechnen.

Beispielsweise wurde in einem bestimmten Film- und Fernsehdrama durch technische Mittel bekannt, dass die Größe des Verdächtigen 186 cm und die des Opfers 172 cm beträgt. Gegenüber der Polizei gaben sowohl A als auch B an, Opfer zu sein.

An diesem Punkt können wir feststellen, wer das wahre Opfer ist, indem wir die Größe der beiden messen:

  • A ist 185 cm groß, der Abstand zur Körpergröße des Verdächtigen = 186-185 = 1 cm und der Abstand zur Körpergröße des Opfers = 185-172 = 7 cm. Die Größe von A liegt näher am Verdächtigen, sodass A als Verdächtiger bestätigt wird.
  • B ist 173 cm groß, der Abstand zur Körpergröße des Verdächtigen beträgt 186-173=13 cm und der Abstand zur Körpergröße des Opfers beträgt 173-172=1 cm. Die Körpergröße von B ähnelt eher der des Opfers, daher wird B als Opfer identifiziert.

Das obige Beispiel ist ein sehr einfacher Sonderfall. In tatsächlichen Szenarien sind möglicherweise mehr Parameter für die Beurteilung erforderlich.

Beispielsweise erfuhr die Polizei in einem ausländischen Film- und Fernsehdrama durch technische Mittel, dass der Verdächtige 180 cm groß war und ihm ein Finger fehlte; das Opfer war 173 cm groß und hatte alle zehn Finger intakt. Zu diesem Zeitpunkt behaupteten A und B, die sich ergaben, beide, Opfer zu sein.
Wenn mehrere Parameter vorhanden sind, werden diese Parameter im Allgemeinen zur umfassenden Beurteilung in einer Liste (Array) zusammengefasst. In diesem Beispiel wird (Höhe, Anzahl der Finger) als Merkmal verwendet.

Daher hat der Verdächtige Eigenwerte von (180, 9) und das Opfer hat Eigenwerte von (173, 10).

An dieser Stelle können für die beiden folgende Urteile gefällt werden:

  • A ist 175 cm groß und hat keinen Finger. Der Eigenwert von A ist (175, 9).
  • Der Abstand zwischen A und dem charakteristischen Wert des Verdächtigen = (180-175) + (9-9) = 5
  • Der Abstand zwischen A und dem charakteristischen Wert des Opfers = (175-173) + (10-9) = 3

Zu diesem Zeitpunkt liegt der Eigenwert von A näher am Opfer und es wird festgestellt, dass A das Opfer ist

  • B ist 178 cm groß und seine zehn Finger sind gesund. Bs Eigenwert ist (178, 10).
  • Der Abstand zwischen B und dem charakteristischen Wert des Verdächtigen = (180-178) + (10-9) = 3
  • Der Abstand zwischen B und dem charakteristischen Wert des Opfers = (178-173) + (10-10) = 5

Zu diesem Zeitpunkt liegen die Eigenwerte von B und dem Verdächtigen näher beieinander und es wird geschlossen, dass B der Verdächtige ist.

Natürlich wissen wir, dass die obigen Ergebnisse falsch sind . Da die Größe und die Anzahl der Finger unterschiedliche Abmessungen (Gewichte) haben, sollten die Gewichte zwischen verschiedenen Parametern bei der Berechnung des Abstands vom Merkmalswert vollständig berücksichtigt werden. Normalerweise ist es aus Gründen wie inkonsistenten Abmessungen der einzelnen Parameter erforderlich, die Parameter so zu verarbeiten, dass alle Parameter das gleiche Gewicht haben.

Im Allgemeinen reicht es aus, die Parameter zu normalisieren. Bei der Normalisierung wird der Eigenwert üblicherweise durch den Maximalwert (bzw. die Differenz zwischen Maximalwert und Minimalwert) aller Eigenwerte dividiert .

Im obigen Beispiel wird beispielsweise die Körpergröße durch die maximale Körpergröße von 180 (cm) geteilt, und die Anzahl der Finger jeder Person wird durch die maximale Anzahl der Finger 10 (10 Finger) geteilt, um einen neuen Merkmalswert zu erhalten. Die Berechnungsmethode ist:

Normalisierte Merkmale = (Größe jeder Person/maximale Größe 180, Anzahl der Finger/langer Handindex 10)

Daher nach der Normalisierung:

  • Der Merkmalswert des Verdächtigen beträgt (180/180, 9/10) = (1, 0,9)
  • Der charakteristische Wert des Opfers beträgt (173/180, 10/10) = (0,96, 1)

An diesem Punkt können die beiden anhand der normalisierten Eigenwerte beurteilt werden:

  • Der charakteristische Wert von A ist (175/180, 9/10)=(0,97, 0,9)
  • Der Abstand zwischen A und dem charakteristischen Wert des Verdächtigen = (1-0,97) + (0,9-0,9) = 0,03
  • Der Abstand zwischen A und dem charakteristischen Wert des Opfers = (0,97-0,96) + (1-0,9) = 0,11

Zu diesem Zeitpunkt liegen die Eigenwerte von A und dem Verdächtigen näher beieinander und es wird gefolgert, dass A der Verdächtige ist.

  • Der charakteristische Wert von B ist (178/180, 10/10)=(0,99, 1)

  • Der Eigenwertabstand zwischen B und dem Verdächtigen = (1-0,99) + (1-0,9) = 0,11

  • Eigenwertabstand zwischen B und dem Opfer = (0,99-0,96) + (1-1) = 0,03

Zu diesem Zeitpunkt liegen die Eigenwerte von B und dem Opfer näher beieinander und es wird geschlossen, dass B das Opfer ist.

02. Entfernungsberechnung

In der vorherigen Diskussion haben wir die Entfernung mehrmals berechnet. Die verwendete Methode besteht darin, zuerst die entsprechenden Elemente in den Eigenwerten zu subtrahieren und sie dann zu summieren.

Beispielsweise gibt es die Eigenwerte A (185, 75) und B (175, 86) in der Form (Größe, Gewicht), und der Abstand zwischen C (170, 80) und den Eigenwerten A und Eigenwerten B wird unten beurteilt :

  • Abstand zwischen C und A = (185-170) + (75-80) = 15+(-5) =10
  • Abstand von C nach B = (175-170) + (86-80) = 5+6 = 11

Durch die Berechnung ist der Abstand zwischen C und A geringer, sodass C als die Kategorie klassifiziert wird, zu der A gehört.

Natürlich wissen wir, dass das obige Urteil falsch ist , da es bei der Berechnung des Abstands zwischen C und A eine negative Zahl gibt, die einen Teil der positiven Zahl ausgleicht. Um diese Art von positivem und negativem Offset zu vermeiden, berechnen wir normalerweise die Summe der Absolutwerte :

  • Der Abstand zwischen C und A = |185-170|+|75-80| = 15+5 = 20
  • Abstand zwischen C und B = |175-170|+|86-80| = 5+6 = 11

Nach der Ermittlung des Absolutwerts und der anschließenden Summierung wird berechnet, dass der Abstand zwischen C und B geringer ist, und C wird als die Kategorie klassifiziert, zu der B gehört. Dieser durch die Summe der Absolutwerte ausgedrückte Abstand wird genannt 曼哈顿距离.

Eine solche Entfernungsberechnung ist grundsätzlich ausreichend, es gibt aber auch bessere Möglichkeiten. Beispielsweise kann eine Methode zur Berechnung von Quadratsummen eingeführt werden. Die Berechnungsmethode ist derzeit:

Fügen Sie hier eine Bildbeschreibung ein
Die allgemeinere Form besteht darin, die Quadratwurzel der Summe der Quadrate zu berechnen. Dieser Abstand ist der weit verbreitete euklidische Abstand. Seine Berechnungsmethode ist:

Fügen Sie hier eine Bildbeschreibung ein

Versuchen Sie nach dem Lesen, Ihr eigenes Verständnis des einheimischen K-Nachbarschaftsalgorithmus anzuwenden. Wir sehen uns im Kommentarbereich! ! !

Ich denke du magst

Origin blog.csdn.net/hai411741962/article/details/132298394
Empfohlen
Rangfolge