[PYTHON] ML-Pipeline: Hebt die Herausforderungen der manuellen Merkmalsextraktion hervor

Im ersten Teil dieser vierteiligen Serie werden wir die ML-Pipeline untersuchen und die Herausforderungen der manuellen Merkmalsextraktion hervorheben.

Alibaba Cloud Community Blog Autor [Ahmed F. Gad](https: //www.linkedin. Von com / in / ahmedfgad? Spm = a2c65.11461447.0.0.5bd3e739Qn9U9o)

In allen vier Tutorials lernten wir das künstliche neuronale Netzwerk (ANN) unter Verwendung der Merkmale, die durch Übertragung des Lernens des im Voraus erlernten Deep-Learning-Modells (DL) und des Faltungs-Neuronalen Netzwerks (CNN) auf Keras extrahiert wurden, und lernten das Bild. Ich werde die Klassifizierung untersuchen.

Das Tutorial beginnt mit der Erkundung der Pipeline für maschinelles Lernen (ML). Es wird betont, dass das manuelle Feature-Design eine schwierige Aufgabe ist, insbesondere wenn eine große Datenmenge vorhanden ist, und dass die automatische Feature-Extraktion mithilfe des Transfer-Lernens die bevorzugte Methode ist. Danach werden wir das Transferlernen einführen und die Vorteile des Transferlernens und seine Nutzungsbedingungen untersuchen. Als Nächstes verwenden wir in dieser Serie das vorab trainierte Modell (MobileNet), das mit dem ImageNet-Dataset unter Verwendung von Keras trainiert wurde, das auf dem Jupyter-Notebook ausgeführt wird, um es mit einem anderen Dataset, dem Fruits360-Dataset, zu verwenden. Transferlernen wird durchgeführt. Danach wird die Merkmalsmenge aus dem durch Transferlernen erhaltenen Modell extrahiert, die extrahierte Merkmalsmenge wird analysiert, um das fehlerhafte Merkmal zu entfernen, und schließlich wird die mit der Merkmalsmenge trainierte ANN konstruiert.

Dieses Tutorial ist der erste Teil davon, in dem die ML-Pipeline untersucht wird, um die Herausforderungen der manuellen Feature-Extraktion hervorzuheben. Dann führen wir das Transferlernen ein, um es zu verstehen und zu erklären, warum wir es verwenden können.

Die in diesem Tutorial behandelten Punkte sind:

--Erforschen Sie die Pipeline für maschinelles Lernen.

Lass uns anfangen.

Erkundung der Pipeline für maschinelles Lernen

Wir werden die ML-Pipeline diskutieren und verstehen, um die Vorteile des Transferlernens für vorab trainierte DL-Modelle zu verstehen. Auf diese Weise erhalten Sie eine Vorstellung von den Hauptvorteilen des Transferlernens. Die folgende Abbildung zeigt die Pipeline, die das Modell für maschinelles Lernen erstellt. Es besteht keine Möglichkeit, dass der Pipeline weitere Schritte wie die Reduzierung von Features hinzugefügt werden. Die folgenden Schritte reichen jedoch aus, um das Modell zu erstellen. Lassen Sie uns einen kurzen Blick auf jeden Schritt in der Pipeline werfen und uns auf die Schritte des Feature-Engineerings konzentrieren.

image.png

Problemdefinition bedeutet, das Problem zu verstehen, das Sie lösen möchten, um die beste ML-Technik zu finden. Dies beginnt mit der Definition des Umfangs des Problems. Handelt es sich um ein überwachtes Problem (Klassifizierung oder Regression) oder um ein nicht überwachtes Problem (Clustering)? Nachdem Sie den Umfang des Problems definiert haben, entscheiden Sie, welcher ML-Algorithmus als Nächstes verwendet werden soll. Entscheiden Sie beispielsweise für ein überwachtes Problem, welcher ML-Algorithmus verwendet werden soll. Linear oder nicht linear, parametrisch oder nicht parametrisch usw.

Das Definieren des Problems hilft beim Vorbereiten der Daten. Dies ist der nächste Schritt in der ML-Pipeline. Die Maschine lernt anhand eines Beispiels. Jedes Beispiel hat einen Eingang und einen Ausgang. Wenn das Problem beispielsweise ein Klassifizierungsproblem ist und jede Stichprobe in eine der vordefinierten Kategorien eingeteilt ist, ist die Ausgabe eine Bezeichnung. Wenn die Ausgabe ein Regressionsproblem ist, das als durchgehende Linie ausgedrückt wird, ist die Ausgabe keine Beschriftung mehr, sondern eine Zahl. Indem wir das Problem auf diese Weise definieren, können wir die Daten ordnungsgemäß vorbereiten.

Manuelles Feature-Engineering

Sobald die Daten fertig sind, ist der nächste Schritt das Feature-Engineering. Dies ist der wichtigste Schritt beim Aufbau eines traditionellen Modells für maschinelles Lernen. Erstens, warum machst du Feature Engineering? Feature Engineering bedeutet, Daten von ihrem aktuellen Formular in ein anderes Formular umzuwandeln, um das Problem zu lösen. Wie werden die Daten von einem Formular in ein anderes umgewandelt? Das heißt, Feature-Deskriptoren zu verwenden. Apropos Computer Vision: Es gibt verschiedene Funktionsbeschreibungen zum Transformieren eines Bildes von einer Form in eine andere. Diese Deskriptoren umfassen Farben, Kanten, Texturen, Schlüsselpunktdeskriptoren und mehr.

Jede dieser Kategorien hat einen anderen Deskriptortyp. Beispielsweise umfassen Texturdeskriptoren Graustufen-Koexistenzmatrizen (GLCM) und lokale binäre Muster (LBP). Zu den wichtigsten Punktdeskriptoren gehören außerdem die skalierungsinvariante Feature-Konvertierung (SIFT), die beschleunigte robuste Feature-Konvertierung (SURF) und Harris. Hier kommt eine andere Frage auf. Welche Art von Deskriptor eignet sich am besten für ein bestimmtes Problem?

Der Datenwissenschaftler entscheidet manuell, ob der Feature-Deskriptor für ein bestimmtes Problem verwendet werden soll. Datenwissenschaftler schlagen aufgrund ihrer Erfahrung bei der Lösung der vorliegenden Probleme einige Deskriptoren vor, die verwendet werden sollen. Merkmale werden basierend auf dem ausgewählten Deskriptor aus dem Bild extrahiert, und dann werden zwei Schritte ausgeführt: Trainieren des ML-Algorithmus und Testen des trainierten Modells. Beachten Sie, dass das Modell das Ergebnis des Trainings des Algorithmus ist.

Aufgrund der falschen Deskriptorauswahl und des Potenzials für große Testfehler in trainierten Modellen müssen Datenwissenschaftler Deskriptoren modifizieren, bis sie die beste Wahl zur Reduzierung des Fehlers finden. Jedes Mal, wenn Sie einen neuen Deskriptor auswählen, wird der ML-Algorithmus trainiert und muss erneut getestet werden.

Zusätzlich zum Fehler können bei der Auswahl eines Deskriptors andere Faktoren berücksichtigt werden, z. B. die Komplexität der Berechnungen. In der Tat kann es mühsam sein, den besten Deskriptor für Ihre Anforderungen manuell auszuwählen, insbesondere für komplexe Arten von Problemen, bei denen Tausende oder Millionen von Bildern analysiert werden.

Beispiel für die Auswahl einer Funktion

Angenommen, jede entspricht einer anderen Klasse, wenden wir die obige Beschreibung an, um die beste Art von Merkmalen für die Klassifizierung der drei in der folgenden Abbildung gezeigten Bilder auszuwählen. Was ist die am besten geeignete Kategorie (Farbe, Kante, Textur, Schlüsselpunkt) für die von Ihnen verwendeten Funktionen? Es ist klar, dass die Farben dieser drei Bilder unterschiedlich sind, sodass Sie einen Farbdeskriptor wie ein Farbhistogramm verwenden können. Dies wird genau Ihren Zweck erfüllen. Wenn Sie das genaue Modell erstellt haben, fahren Sie mit dem letzten Schritt in der Pipeline fort, der Modellbereitstellung.

image.png

Wenn jedes Bild einer anderen Klasse entspricht, was ist, wenn wir dem Datensatz wie folgt weitere Bilder hinzufügen? Es ist klar, dass verschiedene Bilder ähnliche Farben haben. Ja, die Verwendung nur des Farbhistogramms erfüllt möglicherweise nicht Ihren Zweck. Sie müssen also nach anderen Arten von Deskriptoren suchen.

Angenommen, Deskriptor X wurde ausgewählt und funktioniert gut, um die Unterschiede in den folgenden Bildern zu erfassen. Es ist auch möglich, andere Bilder zu verwenden, die in Descriptor X nicht zu unterscheiden sind. Daher müssen wir anstelle des Deskriptors X einen Deskriptor X finden, der den Unterschied erfassen kann. Dieser Vorgang wird wiederholt, wenn die Anzahl der Bilder zunimmt.

image.png

In der obigen Diskussion wurde betont, dass das manuelle Feature-Engineering ein Problem ist. Welche Alternativen gibt es, wenn die manuelle Charakterisierung für ein bestimmtes Problem problematisch ist? Das ist tiefes Lernen, kurz DL.

Automatisierung der Merkmalsextraktion mithilfe von Deep Learning

DL ist eine traditionelle Automatisierung des maschinellen Lernens, bei der die Maschine selbst die optimale Art der zu verwendenden Funktionen bestimmt. Die folgende Abbildung vergleicht die traditionellen ML- und DL-Pipelines. Anstatt Feature Engineering in der ML-Pipeline zu betreiben, überwacht die DL-Pipeline nur Menschen beim Erstellen der DL-Architektur. Danach lernen wir, automatisch die optimale Merkmalsmenge zu finden, um den Fehler so weit wie möglich zu reduzieren. Der DL-Algorithmus zur Erkennung mehrdimensionaler Daten wie Bilder ist das Convolution Neural Network (CNN).

image.png

DL macht es viel einfacher, eine Art von Funktion zu finden, die einfach zu verwenden ist, aber es gibt einige Dinge zu beachten. Damit sich CNN automatisch anpassen kann, um die besten Funktionen zu finden, müssen Tausende von Bildern verwendet werden. MobileNet ist beispielsweise ein CNN-Modell, das mit ImageNet trainiert wurde, dem größten Bilderkennungsdatensatz der Welt mit über 1 Million Proben. Auf diese Weise sind reichlich vorhandene Daten die treibende Kraft für den Aufbau von MobileNet. MobileNet sollte nicht erstellt worden sein, wenn ein so großer Datensatz nicht verfügbar war. Hier stellt sich eine wichtige Frage. Wenn Sie nicht über ein großes Dataset verfügen, um ein DL-Modell von Grund auf neu zu erstellen, und Zeit sparen möchten, indem Sie verschiedene Feature-Deskriptoren ausprobieren, um ein traditionelles ML-Modell zu erstellen, können Sie Features automatisch extrahieren. Was soll ich machen? Die Antwort lautet Transferlernen.

Sie müssen kein DL-Modell von Grund auf neu erstellen, um DL verwenden zu können. Sie können das vorgelernte DL-Modelltraining nutzen und auf Ihre eigenen Probleme portieren. Der nächste Abschnitt beschreibt das Transferlernen.

Was ist Transferlernen?

Transferlernen ist anpassungsfähiger als kreativ. Das Modell wird nicht von Grund auf neu erstellt, sondern ist lediglich eine Anpassung eines vorab trainierten Modells an ein neues Problem. Wenn Sie über einen kleinen Datensatz verfügen, der nicht ausreicht, um ein DL-Modell von Grund auf neu zu erstellen, ist Mobilitätstraining eine Option zum automatischen Extrahieren von Funktionen. Die folgende Abbildung unterstreicht dies.

Vor dem Transfer-Training wird das DL-Modell an einem großen Datensatz mit Tausenden bis Millionen von Proben trainiert. Das Training eines auf diese Weise trainierten DL-Modells wird mithilfe von Transferlernen übertragen, sodass das DL-Modell mit einem anderen kleinen Datensatz von nur Hunderten oder Tausenden von Bildern arbeiten kann.

image.png

Viele Leute fragen mich, ob ich Deep Learning auch mit kleinen Beispieldatensätzen verwenden kann. Es gibt keine klare Antwort auf eine solche Frage, aber ich kann sagen, dass sich die Genauigkeit des aus dem Übertragungstraining erstellten Modells verbessert, wenn die Anzahl der Stichproben im neuen Datensatz zunimmt. Der neue Datensatz muss nicht so groß sein wie der ursprüngliche Datensatz, der zum Trainieren des DL-Modells verwendet wurde. Je größer die Stichprobe, desto besser. Je größer die Stichprobe des neuen Datensatzes ist, desto mehr wird das Modell für die Arbeit mit dem neuen Datensatz angepasst, wie in der folgenden Abbildung dargestellt. Der Grund dafür ist, dass die vorab trainierten Modellparameter für den neuen Datensatz umso mehr Anpassungsmöglichkeiten haben, je größer die Stichprobe ist. Infolgedessen kann das durch Transferlernen erhaltene Modell genauere Vorhersagen treffen als das Modell mit einer kleinen Anzahl von Stichproben.

image.png

Um viel Wissen über Transferlernen zu erlangen, wird im nächsten Abschnitt erläutert, warum Sie Transferlernen verwenden sollten.

Warum lernst du?

Es gibt mehrere Gründe für das Transferlernen. Hier sind einige wichtige Gründe.

  1. Es fehlen Schulungs- und Testdaten, um ein Modell von Grund auf neu zu erstellen.
  2. Sie müssen die Daten nicht beschriften, um den Datensatz zu vergrößern. 3 ist die Verteilung der Daten unausgewogen.
  3. Selbst wenn die Trainingsdaten ausreichen, erfordert das Training eines DL-Modells von Grund auf normalerweise eine hohe Verarbeitungsleistung und Zeit.
  4. Selbst wenn die Trainingsdaten ausreichend sind, sind die Testdaten möglicherweise nicht mit den Trainingsdaten vergleichbar, oder es können neue Fälle, die die Trainingsdaten nicht abdecken konnten, in die Testdaten aufgenommen werden. Das Modell muss mit neuen Mustern umgeschult werden, um solche neuen Fälle abzudecken.
  5. Um ein Modell von Grund auf neu zu erstellen, müssen Sie das Problem untersuchen und ein tiefes Verständnis dafür haben, wie die Dinge funktionieren. Lassen Sie uns diese Punkte diskutieren.

1. Mangel an Trainings- und Testdaten, um ein Modell von Grund auf neu zu erstellen

Beim Erstellen eines Vorhersagemodells besteht die erste Aufgabe eines ML-Ingenieurs darin, so viele Daten wie möglich zu sammeln, um ein genaues Modell zu erstellen, das verschiedene Fälle behandeln kann. Parametrische Algorithmen für maschinelles Lernen verfügen über eine große Anzahl von Parametern, um aus den Daten zu lernen, und für einige Aufgaben sind nicht genügend Daten vorhanden, um dem Algorithmus zu helfen, diese Parameter korrekt zu lernen.

Das Transferlernen erfordert nicht viele Daten, da der Algorithmus nicht von Grund auf für die Erstellung des Modells trainiert wurde. Vielmehr wird ein Pre-Training-Modell verwendet, das diese Parameter vorab trainiert. Eine kleine Datenmenge wird benötigt, um das trainierte Modell an das jeweilige Problem anzupassen.

2. Sie müssen keine Daten beschriften, um den Datensatz zu vergrößern

Wenn der zum Trainieren und Testen von Algorithmen für maschinelles Lernen verwendete Datensatz nicht groß genug ist, um sicherzustellen, dass das Modell einen soliden Lernzustand erreicht, tun dies einige Ingenieure für maschinelles Lernen auf unterschiedliche Weise. Neigt dazu, große Datenmengen zu vergrößern. Die am meisten bevorzugte Methode besteht darin, realistischere Proben zu sammeln und sie zur Verwendung beim Training des Algorithmus zu kennzeichnen. Die manuelle Kennzeichnung ist nicht einfach und die automatische Kennzeichnung ist möglicherweise nicht genau genug.

Bei einigen Arten von Problemen ist die Kennzeichnung möglicherweise kein Problem. Die Kennzeichnung einer Instanz erfolgt, nachdem die Instanz selbst verfügbar geworden ist. Bei einigen Problemen ist die Anzahl der Instanzen begrenzt und es ist nicht einfach, weitere Instanzen zu erstellen. Für medizinische Bilder ist eine Erlaubnis des Patienten erforderlich, um die Daten im Experiment zu verwenden, und nicht alle Patienten stimmen zu. Wenn es keine Möglichkeit gibt, weitere Instanzen zu erstellen, können Techniken wie das Erweitern von Bilddaten hilfreich sein, aber sie haben noch nicht viel gebracht. Dies liegt daran, dass nur dieselbe Instanz transformiert (gedreht usw.) wird, um mehr Bilder zu erzeugen.

Transfer Learning behebt dieses Problem, da nicht viele Daten erforderlich sind, da kein Modell von Grund auf neu erstellt werden muss. Sie benötigen nur eine kleine Datenmenge, um das vorab trainierte Modell zu optimieren. Es ist vorzuziehen, mehr Daten zur Feinabstimmung des Modells zu verwenden, aber wenn Sie dies nicht können, ist das in Ordnung.

3. Überproportionale Verteilung der Daten

Im vorherigen Punkt haben wir das Problem erwähnt, dass der Datensatz ausgeglichen ist, die Stichprobengröße aller Klassen jedoch gering ist. Ausgeglichen bedeutet, dass alle Klassen der Daten im gesamten Datensatz ungefähr gleich sind und jede Klasse eine erheblich größere Stichprobengröße als die anderen hat.

Bei anderen Problemen kann eine Klasse mehr Stichproben als eine andere haben. In diesem Fall soll der Datensatz ein Ungleichgewicht in der Klassenverteilung aufweisen. Infolgedessen ist das Modell des maschinellen Lernens stark auf diese Klasse ausgerichtet und wichtiger als andere Klassen. Die Wahrscheinlichkeit, Eingabestichproben gemäß dieser Klassenbezeichnung zu klassifizieren, ist höher als in anderen Klassen. Klassen mit einem hohen Prozentsatz an Stichproben werden als Mehrheitsklassen und andere Klassen als Minderheitsklassen bezeichnet. Ingenieure müssen auf verschiedene Weise mit diesem Problem umgehen.

Wenn die Anzahl der Stichproben in der Minderheitsklasse klein genug ist, um ein Modell für maschinelles Lernen zu erstellen, wählen Sie anstelle aller Stichproben in der Mehrheitsklasse einen gleichmäßigen Anteil der Stichproben aus. Sie können einen ausgewogenen Datensatz erhalten.

Wenn die Stichprobengröße der Minderheitsklasse klein ist und eine solche Anzahl nicht ausreicht, um ein Modell für maschinelles Lernen zu erstellen, müssen einige neue Stichproben der Minderheitsklasse hinzugefügt werden. Wie bereits erwähnt, besteht die am meisten bevorzugte Methode darin, realistischere Daten für die Minderheitenklasse zu sammeln. Wenn nicht, stehen einige syntaktische Techniken zur Verfügung, um einige neue Samples zu erstellen. Eine dieser Techniken heißt SMOTE (Synthetic Minority Over-Sampling Technique). Das Problem ist, dass die auf diese Weise erzeugten Proben nicht realistisch sind. Je mehr unrealistische Stichproben verwendet werden, desto schlechter ist der Lernprozess.

Transferlernen überwindet dieses Problem aus den oben genannten Gründen. Sie können Ihr Modell mit einigen realistischen Beispielen optimieren. Natürlich werden für diese Aufgabe mehr Samples bevorzugt, aber wenn Sie nicht viele Samples haben, ist das Transferlernen eine bessere Option als das Lernen von Grund auf.

4. Das Training eines DL-Modells von Grund auf erfordert eine hohe Verarbeitungsleistung und viel Zeit

Die bisherigen Punkte haben die Idee bestritten, ein Modell von Grund auf neu zu erstellen und Transferlernen zu verwenden, nur weil die Datenmenge nicht ausreicht. Wenn Sie zu viele Daten annehmen, bedeutet dies, dass Sie ein Modell von Grund auf neu erstellen und kein Transferlernen verwenden? Das ist definitiv NEIN. Transferlernen wird nicht nur ausgewählt, wenn die Datenmenge gering ist, sondern das Erstellen eines Modells von Grund auf erfordert eine leistungsstarke Maschine und viel RAM. Nicht alle Maschinen mit solchen Spezifikationen können verwendet werden. Selbst wenn Cloud Computing verfügbar ist, kann es für manche Menschen kostspielig sein. Daher kann das Transferlernen auch bei einer ausreichenden Datenmenge verwendet werden. Mit genügend Daten können Sie Ihr Modell möglicherweise optimieren, um es an das Problem anzupassen, das Sie lösen möchten.

Es wird angenommen, dass das Modell generisch ist, und der Ingenieur passt es an das Problem an, das er zu lösen versucht. Dies ist ein Übergang vom allgemeinen Fall zu einem spezifischeren Fall, der Ihrem Zweck entspricht. Natürlich erfordert das Optimieren möglicherweise nicht die große Datenmenge, die beim Erstellen eines Modells von Grund auf verwendet wird, aber es hilft dennoch, das Modell an das Problem anzupassen.

5. Neues Testmuster ist nicht in den Trainingsdaten enthalten

Die meisten Probleme, die durch maschinelles Lernen gelöst werden, haben ähnliche Trainings- und Testdaten und stammen aus derselben Verteilung. Auf diesen Daten basierende Modelle scheinen mit Proben, die den trainierten Daten ähnlich sind, nicht schwer zu testen. Das Problem ist, dass einige neue Stichproben den Trainingsdaten nicht ähnlich sind und möglicherweise einer etwas anderen Verteilung folgen.

Ingenieure für maschinelles Lernen lösen dieses Problem, indem sie neue Modelle erstellen, die mit diesen neuen Beispielen arbeiten. Da es unzählig ist, ist es nicht möglich, das Verhalten eines vorab trainierten Modells für jede Gruppe von Proben zu ändern, die andere Eigenschaften als die im Training verwendeten aufweisen. Vorgefertigte Modelle können in der Produktion verwendet werden und können nicht geändert werden, sobald einige neue Muster verfügbar sind.

Beim Transferlernen hat das vorab trainierte Modell bereits Tausende bis Millionen von Proben gesehen, die viele Fälle abdecken, die in den Testdaten vorhanden sein können. Es ist weniger wahrscheinlich, dass Sie in Zukunft unbekannte Proben sehen.

6. Um ein Modell von Grund auf neu zu erstellen, müssen Sie das Problem untersuchen und ein tiefes Verständnis dafür haben, wie die Dinge funktionieren.

Wenn ein Forscher ein tiefes Faltungs-Neuronales Netzwerk (DCNN) aufbaut, besteht der erste Schritt darin, ein solides Verständnis der Funktionsweise eines künstlichen Neuronalen Netzwerks (ANN) zu haben. Als Erweiterung von ANN müssen Forscher ein gutes Verständnis der Funktionsweise von CNN und seiner verschiedenen Arten von Schichten haben. Die Forscher müssen auch eine CNN-Architektur für das Problem erstellen, das sie durch Stapeln verschiedener Schichten lösen möchten. Dies ist eine entmutigende Aufgabe und erfordert viel Zeit und Mühe, um die beste CNN-Architektur abzuleiten.

Beim Transferlernen müssen Forscher nicht alles wissen. Sie müssen sich nur um die Anzahl der Parameter kümmern, die Sie anpassen möchten.

Anwendungsfälle, in denen Transferlernen von Vorteil ist

Angenommen, Sie haben zwei Klassen von Datensätzen, Katze und Hund, und Sie möchten ein CNN für diese Klassifizierungsaufgabe erstellen. Das Erstellen einer Architektur zur Erzielung einer hohen Klassifizierungsgenauigkeit kann Zeit und Mühe kosten. Wenn Sie die Aufgabe haben, zwei Klassen von Pferde- und Eselklassen zu klassifizieren, kann es anstrengend sein, dieselbe Aufgabe für die Klassifizierung von Katzen und Hunden zu wiederholen. In solchen Fällen ist Transferlernen effektiv. Was Sie aus den CNNs gelernt haben, die Sie im Katzen- und Hundedatensatz gelernt haben, kann auf eine andere Aufgabe übertragen werden, nämlich die Klassifizierung von Pferden und Eseln. Dies kann Ihnen viel Zeit sparen, wenn Sie von vorne beginnen.

Nutzungsbedingungen für das Transferlernen

Transferlernen kann bei richtiger Anwendung sehr erfolgreich sein. Es gibt jedoch auch Missbräuche beim Transferlernen. Daher ist es wichtig, die Hauptbedingungen für die Entscheidung hervorzuheben, ob Transferlernen für vorab trainierte DL-Modelle verwendet werden soll. Die diskutierten Bedingungen sind wie folgt.

1, Datentypkonsistenz 2, Ähnlichkeit der Problembereiche Betrachten Sie diese beiden Bedingungen.

1. Integrität des Datentyps

Bevor Sie das Lernen von einem Problem zum anderen verschieben, müssen die beiden Probleme in Bezug auf die verwendeten Daten übereinstimmen. Datentyp bedeutet Bild, Ton, Text usw.

Wenn Bilder zum Erstellen von DL-Modellen verwendet werden, müssen sie auch verwendet werden, um das Lernen solcher Modelle auf neue Probleme zu verlagern. Es ist nicht korrekt, das, was Sie mit Bildern gelernt haben, auf neue Aufgaben mit Audiodaten zu verschieben. Die aus Bildern gelernten Funktionen unterscheiden sich von denen, die aus Audiosignalen gelernt werden sollten, und umgekehrt.

2. Ähnlichkeit der Problembereiche

Datenintegrität ist ein sehr wichtiger Faktor, der vor dem Transferlernen wirksam sein muss. Andere Faktoren tragen dazu bei, den Nutzen des Transferlernens zu maximieren. Es ist vorzuziehen, dass zwischen den beiden Problembereichen eine Ähnlichkeit besteht. Wir werden nicht nur über die Art der Daten sprechen, sondern auch darüber, wie ähnlich die beiden Probleme sind. Ein Problem kann mit der Klassifizierung von Katzen und Hunden zusammenhängen. Die aus diesem Problem gewonnenen Erkenntnisse scheinen auf ein anderes Problem zuzutreffen, das zwei andere Tierarten wie Pferde und Esel klassifiziert.

Obwohl es möglich ist, dieses Lernen auf das Problem der Klassifizierung von zwei Arten von Tumoren in verschiedenen Bereichen des Problems zu übertragen, verfügt es nur über begrenzte Möglichkeiten. Selbst wenn Bilddaten für das Problem der Klassifizierung von zwei Arten von Tumoren verwendet werden, ist das Lernen von Metastasen anwendbar, jedoch aufgrund der unterschiedlichen Problembereiche in seiner Fähigkeit eingeschränkt. Bei CNN lernen mehrere Ebenen allgemeine Funktionen, die auf jede Art von Problem angewendet werden können. Wenn Sie tiefer in das CNN eintauchen, konzentriert sich die Ebene auf die zu lösenden Aufgaben. Da die Katzen- und Hundedatensätze flächenmäßig den Pferde- und Affendatensätzen ähnlich sind, können viele der Merkmale, die in dem in beiden trainierten Modell gelernt wurden, auf andere Probleme angewendet werden. Mit anderen Worten, Ähnlichkeit erstreckt sich auf tiefere Ebenen innerhalb des CNN, aber wenn solches Lernen auf Probleme in einem anderen Bereich übertragen wird, erreicht es ein flacheres Niveau, während es sich im CNN auf eine tiefere Ebene erstreckt.

Fazit

In diesem Lernprogramm wurde zunächst die traditionelle Pipeline für maschinelles Lernen beschrieben und betont, dass das manuelle Extrahieren von Funktionen schwierig ist, insbesondere bei großen und komplexen Datensätzen. Mit Deep Learning wird die Merkmalsextraktion automatisiert. Das Erstellen eines Deep-Learning-Modells von Grund auf erfordert jedoch einen großen Datensatz. Transferlernen ist eine Option für die Verwendung von Deep Learning für die automatische Merkmalsextraktion aus kleinen Datensätzen.

Im nächsten Tutorial, Teil 2, zeigen wir Ihnen den praktischen Teil des Herunterladens, Vorbereitens und Analysierens des Inhalts des Fruits360-Datensatzes. Am Ende von Teil 2 wird zusätzlich zu den Klassenbeschriftungen ein NumPy-Array erstellt, das die Bilddaten für alle Datensätze enthält. Solche Daten werden später an MobileNet geliefert, um Funktionen nach dem mobilen Lernen zu extrahieren.

Recommended Posts

ML-Pipeline: Hebt die Herausforderungen der manuellen Merkmalsextraktion hervor
Verstehen Sie den Inhalt der sklearn-Pipeline
Japanische Übersetzung des man-db Handbuchs
Japanische Übersetzung des Util-Linux-Handbuchs
Japanische Übersetzung des iproute2-Handbuchs
Verwendung der Spark ML-Pipeline
Fordern Sie den Turm von Hanoi mit Wiederholungen + Stapel heraus