Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Computer Vision und Mustererkennung# Maschinelles Lernen# Neuronales und evolutionäres Rechnen

Fortschritte in YOLOv5 durch Modellkompressionstechniken

Eine Übersicht über Beschneidungs- und Quantisierungsmethoden, die auf YOLOv5 angewendet werden.

― 10 min Lesedauer


YOLOv5YOLOv5Kompressionstechnikenunter die Lupe genommenYOLOv5-Leistung.Quantisierungsmethoden für bessereÜberprüfung von Beschneidungs- und
Inhaltsverzeichnis

In den letzten paar Jahren wurde viel Aufwand dafür betrieben, die YOLO-Objekterkenner besser zu machen. YOLO (You Only Look Once) ist ein beliebtes Tool, das in verschiedenen Bereichen genutzt wird, hauptsächlich um Objekte in Bildern zu identifizieren. Seit es zum ersten Mal veröffentlicht wurde, gab es acht grosse Versionen, die darauf abzielten, es genauer und effizienter zu machen. Obwohl YOLO viele Vorteile hat, kann die Nutzung auf Geräten mit begrenzten Ressourcen herausfordernd sein. Um dieses Problem zu lösen, haben Forscher verschiedene Methoden entwickelt, um neuronale Netzwerke zu komprimieren, wobei der Fokus hauptsächlich auf drei Methoden liegt: Netzwerk-Pruning, Quantisierung und Wissensdestillation.

Die Vorteile von Modellkompressionsmethoden umfassen die Reduzierung des Speicherbedarfs und die Beschleunigung der Verarbeitungszeit, was sie unerlässlich macht, um grosse neuronale Netzwerke auf Geräten mit eingeschränkten Fähigkeiten zu verwenden. Diese Übersicht wird sich auf Pruning und Quantisierung konzentrieren, weil sie flexible Methoden sind, die leicht anwendbar sind. Wir werden diese Methoden kategorisieren und die Ergebnisse ihrer Anwendung auf YOLOv5 untersuchen.

Indem wir diese Methoden betrachten, werden wir Bereiche finden, in denen Pruning und Quantisierung für YOLOv5 verbessert werden können, und Vorschläge für zukünftige Forschung machen. Wir haben uns speziell für YOLOv5 entschieden, weil es eine gute Balance zwischen aktuellen Entwicklungen und Beliebtheit in der Forschungsliteratur bietet. Dies ist die erste detaillierte Übersicht, die Pruning- und Quantisierungsmethoden für YOLOv5 aus einer praktischen Perspektive betrachtet. Unsere Erkenntnisse können auch auf neuere YOLO-Versionen angewendet werden, die ähnliche Herausforderungen bei der Implementierung auf Geräten mit begrenzten Ressourcen haben. Diese Arbeit richtet sich an alle, die verstehen wollen, wie man Modellkompressionsmethoden praktisch auf YOLOv5 anwendet und welche verschiedenen Techniken für zukünftige YOLO-Versionen zur Verfügung stehen.

Objekterkennung: Ein zentrales Problem

Objekterkennung ist seit langem ein bedeutender Forschungsfokus. Die Hauptaufgabe der Objekterkennung besteht darin, verschiedene Objekte innerhalb eines Bildes zu identifizieren und zu lokalisieren. Diese Aufgabe ist grundlegend für viele fortschrittliche Computer Vision-Prozesse, einschliesslich semantischer Segmentierung, Objektverfolgung und Aktivitätserkennung.

Kürzlich haben tiefen Lernmodelle wie Convolutional Neural Networks (CNNs) grosse Fortschritte in der Objekterkennung gemacht. Verbesserte Rechenleistung und fortschrittliche Algorithmen haben die Objekterkennung präziser gemacht, was zu verschiedenen Anwendungen in der realen Welt führt. Die Nutzung von CNNs vereinfacht die Prozesse der Merkmalsextraktion, Klassifizierung und Lokalisierung in der Objekterkennung im Vergleich zu traditionellen Methoden.

Es gibt zwei Hauptansätze zur Objekterkennung: Ein-Stufen- und Zwei-Stufen-Erkennung. Bei einer Ein-Stufen-Methode sagt der Algorithmus direkt die Begrenzungsrahmen und Klassenwahrscheinlichkeiten voraus. Bei einem Zwei-Stufen-Ansatz generiert der Algorithmus zuerst Regionen-Vorschläge und klassifiziert diese dann als Objekte oder Hintergrund.

Ein-Stufen-Methoden wie YOLO, Single Shot Detector (SSD), EfficientDet und RetinaNet verwenden ein vollständig konvolutionales neuronales Netzwerk, um die Klassen und Standorte der Objekte ohne Zwischensteps zu erkennen. YOLO ist seit seiner Einführung im Jahr 2016 sehr beliebt geworden. Die Hauptidee hinter YOLO ist, ein Eingabebild in ein Raster zu unterteilen und für jede Zelle Begrenzungsrahmen und Klassenwahrscheinlichkeiten vorherzusagen. YOLO betrachtet die Objekterkennung als ein Regressionsproblem und optimiert beide Aufgaben gemeinsam, um die Gesamtleistung zu verbessern.

YOLOv1 hatte eine einfache Struktur mit 24 konvolutionalen Schichten und zwei vollständig verbundenen Schichten für Vorhersagen. Seitdem hat sich YOLO durch verschiedene Verbesserungen und Versionen weiterentwickelt. YOLOv2, veröffentlicht im Jahr 2017, brachte Leistungsverbesserungen durch den Einsatz von Multi-Scale-Training, Anker-Boxen, Batch-Normalisierung, der Darknet-19-Architektur und einer neuen Verlustfunktion.

Danach führte YOLOv3 ein Feature-Pyramid-Netzwerk, konvolutionale Schichten mit Anker-Boxen und eine verbesserte Architektur mit Darknet-53 ein. YOLOv4, entwickelt von verschiedenen Autoren, verbesserte die Leistung weiter durch die Verwendung einer neuen Architektur und verschiedenen Techniken.

Im Jahr 2020 wurde YOLOv5 veröffentlicht, das fünf verschiedene Grössen beinhaltete, um unterschiedlichen Bedürfnissen gerecht zu werden. YOLOv5 machte bedeutende Änderungen, darunter eine neue Rückgratstruktur und Automatisierung für die Feinabstimmung von Hyperparametern. Das Rückgrat von YOLOv5 verwendet eine neue Struktur namens CSPDarknet53, die die Verarbeitung und Genauigkeit verbessert. Sein "Neck" nutzt CSP-PAN und eine schnellere Version von Spatial Pyramid Pooling (SPP). Der Ausgang kommt von einem Kopf, der auf dem Kopfdesign von YOLOv3 aufbaut.

YOLOv6, veröffentlicht 2022, fügte neue Funktionen und Strategien für das Training hinzu. YOLOv7, kurz danach veröffentlicht, brachte mehrere Verbesserungen und Methoden zur Modellskalierung. Schliesslich wurde 2023 YOLOv8 veröffentlicht, das weitere Änderungen in seiner Struktur beinhaltet.

Während neuere YOLO-Versionen neue Funktionen haben, konzentriert sich dieses Papier auf YOLOv5 aufgrund der grösseren Menge an bestehender Forschung dazu. Unsere Erkenntnisse können jedoch auch auf neuere YOLO-Versionen angewendet werden, insbesondere YOLOv8, das weiterhin die Grenzen der Objekterkennung verschiebt.

Modellkompression: YOLOv5 effizient machen

Die Nutzung und Erweiterung hochdetaillierter Modelle tendiert dazu, die Genauigkeit zu erhöhen, aber sie bringt auch steigende Anforderungen an Rechenleistung und Speicher mit sich. Dadurch wird es schwierig, diese Modelle auf Geräten mit begrenzten Ressourcen einzusetzen. Eine mögliche Lösung ist Cloud-Computing, aber komplexe Modelle in der Cloud auszuführen, hat seine Nachteile, wie hohe Kosten, Latenzprobleme bei dringenden Aufgaben und eingeschränkte Zugänglichkeit in einigen Bereichen.

Wegen dieser Probleme bietet Edge-Computing oft eine bessere Lösung. Verschiedene Methoden zur Komprimierung neuronaler Netzwerke wurden entwickelt, um grosse Modelle auf Edge-Geräten nutzbar zu machen. Kompressionsmethoden können in Pruning, Quantisierung und Wissensdestillation unterteilt werden.

Beim Pruning werden weniger wichtige Modellparameter entfernt, um ein leichteres Modell zu erstellen. Quantisierung reduziert die Genauigkeit der Gewichte und Aktivierungen im Modell. Wissensdestillation beinhaltet die Verwendung eines grossen, genauen Modells, um das Training eines kleineren Modells zu steuern.

In dieser Übersicht werden wir uns auf Pruning und Quantisierung konzentrieren, da sie gängigere Anwendungen sind und einfacher zu implementieren als Wissensdestillation, die oft Änderungen am Netzwerk erfordert. Wir werden die Pruning- und Quantisierungsmethoden untersuchen, die kürzlich auf YOLOv5 angewendet wurden, und die Ergebnisse im Hinblick auf die Kompression vergleichen.

Obwohl neuere YOLO-Versionen Verbesserungen gezeigt haben, wurde bisher nicht genügend Augenmerk auf die angewendeten Kompressionsmethoden gelegt. Viele bestehende Übersichten beziehen sich auf neuronale Netzwerkkompression, jedoch nicht im Kontext der praktischen Implementierung von YOLOv5. Diese Arbeit zielt darauf ab, die vorhandenen Arbeiten zu Pruning und Quantisierung von YOLOv5 zusammenzufassen und die Ergebnisse zu überblicken.

Die Ergebnisse der Kompression können anhand von Änderungen im Speicherbedarf, Stromverbrauch, Verarbeitungszeit, Genauigkeit und Trainingszeit bewertet werden.

Pruning-Methoden für YOLOv5

Das Pruning neuronaler Netzwerke begann mit Konzepten namens Optimal Brain Damage und Optimal Brain Surgeon, die die Wichtigkeit von Parametern mithilfe einer Methode schätzen, die berechnet, wie jeder Parameter das Netzwerk beeinflusst. Andere Kriterien können ebenfalls verwendet werden, um die Wichtigkeit verschiedener Parameter zu verstehen.

Idealerweise ist die beste Methode, die Auswirkungen jedes Parameters direkt auf das Netzwerk zu bewerten, aber das ist oft zu zeitaufwendig und teuer. Daher können einfachere Bewertungen wie die Beurteilung des Mittelwerts oder der Standardabweichung von Aktivierungen und andere Ansätze genutzt werden, um die Wichtigkeit abzuschätzen.

Eine häufig verwendete Methode für Pruning basiert auf dem -Norm, der sich auf die Verteilung der Gewichtswerte konzentriert. Die Herausforderung besteht darin, einen Schwellenwert festzulegen, wann Parameter beschnitten werden sollen. Dieser Schwellenwert kann statisch oder dynamisch sein, und es gibt verschiedene Ansätze.

Eine andere Methode betrachtet die Aktivierungsausgaben aus einer Schicht. Eine gängige Aktivierungsfunktion wie ReLU kann analysiert werden, indem Ausgaben nahe Null als weniger wichtig betrachtet werden. Einige nutzen auch den Batch-Normalization Scaling Factor (BNSF), um während des Trainings bestimmte Kanäle zu bestrafen, um ein sparsameres Netzwerk zu schaffen, das beschnitten werden kann.

Die Wahl, was beschnitten werden soll, hängt von der Granularität ab, die bestimmt, ob der Ansatz sich auf individuelle Gewichte oder breitere Strukturen innerhalb des Modells konzentriert.

Arten des Prunings

Pruning kann auf zwei Hauptweisen erfolgen:

  1. Unstrukturiertes Pruning: Dies zielt auf einzelne Gewichte ab und berücksichtigt nicht, wo sie sich im Modell befinden. Hier werden Gewichte als überflüssig identifiziert und dann maskiert oder entfernt. Obwohl dies zu einem hohen Kompressionsverhältnis führen kann, kann es spezielle Hardware erfordern, um effizient zu arbeiten.

  2. Strukturiertes Pruning: Dies funktioniert mit Gruppen von Gewichten anstelle einzelner Gewichte. Zum Beispiel kann es ganze Filter oder Kanäle Beschneiden, was die Integrität des Modells aufrechterhält. Strukturiertes Pruning ist einfacher anzuwenden, da es die Anzahl der Ausgangskanäle nicht ändert.

Filter-basiertes Pruning entfernt spezifische Kerne aus einer Schicht und bewahrt typischerweise die Modellsstruktur. Im Gegensatz dazu eliminiert Channel-basiertes Pruning ganze Ausgangskanäle und minimiert gleichzeitig strukturelle Schäden. Kernel-basiertes Pruning konzentriert sich auf alle Parameter über einem Kern in einem Filter, was die Struktur des Modells nicht signifikant ändert.

Pruning kann entweder in einem Durchgang oder iterativ erfolgen. Bei einem einmaligen Pruning werden Parameter vor oder nach dem Training entfernt, während iteratives Pruning den Leistungsabfall berücksichtigt und das Modell neu trainiert, was die Genauigkeit verbessern kann.

Aktuelle Studien zum Pruning von YOLOv5

Verschiedene aktuelle Studien haben Pruning auf YOLOv5 angewendet, wobei oft der Fokus auf einer schnellen Inferenzzeit liegt. Einige Methoden haben Optimierungsalgorithmen implementiert, um Pruning-Strategien zu verfeinern. Andere haben die Modellstruktur geändert, um die Leistung vor dem Pruning zu verbessern.

Die häufigste Methode verwendet channel-basiertes Pruning mit dem BNSF-Ansatz. Dies wird in etwa 60 % der überprüften Arbeiten verwendet. Darüber hinaus konzentriert sich die meiste vorhandene Arbeit darauf, die Genauigkeit zu erhalten und gleichzeitig die Effizienz zu steigern.

Quantisierungsmethoden für YOLOv5

Quantisierung zielt darauf ab, die Anzahl der Bits zu reduzieren, die zur Darstellung der Gewichte und Aktivierungen in einem Modell verwendet werden. Die meisten Modelle verwenden eine 32-Bit-Präzision, und das Ziel ist es, die Leistung zu behalten, während diese Präzision gesenkt wird.

Es gibt zwei Haupttypen der Quantisierung:

  1. Uniforme Quantisierung: Diskrete Werte sind gleichmässig verteilt.
  2. Nicht-uniforme Quantisierung: Der Abstand kann variieren und ist oft effektiver, weil er wichtigere Informationen erfasst.

Quantisierungsansätze können sich auch in ihrer Implementierung unterscheiden:

  • Statische Quantisierung: Der Clipping-Bereich wird im Voraus für alle Eingaben festgelegt.
  • Dynamische Quantisierung: Der Clipping-Bereich wird bei jeder Eingabe dynamisch berechnet, was zu einer besseren Genauigkeit führen kann, aber höhere Rechenkosten verursachen kann.

Quantisierung kann entweder während des Trainings oder danach erfolgen. Quantization Aware Training (QAT) trainiert das Modell mit quantisierten Gewichten und Aktivierungen neu, während Post-Training Quantization (PTQ) Parameter ohne erneutes Training anpasst, was oft zu einer niedrigeren Genauigkeit führt.

Schliesslich können Modelle nach Abschluss der Quantisierung entweder mit simulierten Quantisierungen oder nur mit Integer-Quantisierungen bereitgestellt werden, um verschiedene Leistungs- und Genauigkeitsstufen zu ermöglichen.

Aktuelle Studien zur Quantisierung von YOLOv5

Mehrere aktuelle Arbeiten haben sich auf die Quantisierung von YOLOv5 konzentriert und dabei verschiedene innovative Methoden angewendet. Viele Studien bevorzugen QAT aufgrund seiner niedrigeren Präzisionsfähigkeiten, während es die Genauigkeit aufrechterhält. Andere haben verschiedene Modelle oder Architekturen als Rückgrad für YOLOv5 erforscht, um es besser für mobile Geräte geeignet zu machen, und Quantisierungstechniken genutzt, um sich entsprechend anzupassen.

Fazit

Modellkompressionsmethoden werden im Bereich des tiefen Lernens immer wichtiger, insbesondere für den Einsatz grosser Modelle auf Geräten mit begrenzten Ressourcen. Diese Übersicht hat einen detaillierten Überblick über Pruning- und Quantisierungstechniken gegeben, die auf YOLOv5 angewendet wurden, und sowohl aktuelle Praktiken als auch Lücken hervorgehoben, die angegangen werden müssen.

Da die Nachfrage nach effizienten Modellen weiterhin wächst, ist weitere Forschung notwendig, um diese Methoden zu optimieren und neue Techniken zu erkunden, die die Leistung von YOLO in verschiedenen Versionen verbessern können. Mit der Entwicklung neuerer YOLO-Versionen ist es wichtig, die besten Möglichkeiten zu untersuchen, um Kompressionsmethoden anzuwenden, um den Herausforderungen durch Hardwarebeschränkungen gerecht zu werden. Dieses Papier dient als wertvolle Ressource für Forscher und Praktiker, die darin interessiert sind, Modellkompressionstechniken effektiv in praktischen Szenarien umzusetzen.

Originalquelle

Titel: Model Compression Methods for YOLOv5: A Review

Zusammenfassung: Over the past few years, extensive research has been devoted to enhancing YOLO object detectors. Since its introduction, eight major versions of YOLO have been introduced with the purpose of improving its accuracy and efficiency. While the evident merits of YOLO have yielded to its extensive use in many areas, deploying it on resource-limited devices poses challenges. To address this issue, various neural network compression methods have been developed, which fall under three main categories, namely network pruning, quantization, and knowledge distillation. The fruitful outcomes of utilizing model compression methods, such as lowering memory usage and inference time, make them favorable, if not necessary, for deploying large neural networks on hardware-constrained edge devices. In this review paper, our focus is on pruning and quantization due to their comparative modularity. We categorize them and analyze the practical results of applying those methods to YOLOv5. By doing so, we identify gaps in adapting pruning and quantization for compressing YOLOv5, and provide future directions in this area for further exploration. Among several versions of YOLO, we specifically choose YOLOv5 for its excellent trade-off between recency and popularity in literature. This is the first specific review paper that surveys pruning and quantization methods from an implementation point of view on YOLOv5. Our study is also extendable to newer versions of YOLO as implementing them on resource-limited devices poses the same challenges that persist even today. This paper targets those interested in the practical deployment of model compression methods on YOLOv5, and in exploring different compression techniques that can be used for subsequent versions of YOLO.

Autoren: Mohammad Jani, Jamil Fayyad, Younes Al-Younes, Homayoun Najjaran

Letzte Aktualisierung: 2023-07-21 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2307.11904

Quell-PDF: https://arxiv.org/pdf/2307.11904

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Mehr von den Autoren

Ähnliche Artikel