Hinzufügen von Nichtbild-Features neben Nebenbildern als Eingabe von CNNs

14

Ich trainiere ein neuronales Faltungsnetzwerk, um Bilder bei Nebelbedingungen zu klassifizieren (3 Klassen). Für jedes der ca. 150.000 Bilder stehen mir jedoch auch vier meteorologische Variablen zur Verfügung, die bei der Vorhersage der Bildklassen hilfreich sein könnten. Ich habe mich gefragt, wie ich die meteorologischen Variablen (z. B. Temperatur, Windgeschwindigkeit) zur vorhandenen CNN-Struktur hinzufügen kann, damit sie bei der Klassifizierung hilfreich sind.

Eine Möglichkeit, die ich mir bereits vorstellen kann, besteht darin, neben dem CNN ein weiteres (kleines) Feedforward-neuronales Netz zu erstellen und dann die Ausgaben der CNN-Schichten und der verborgenen Schichten des nicht-bildgebenden neuronalen Netzes auf der dichten Schicht miteinander zu verketten.

Der zweite Weg, den ich mir vorstellen könnte, besteht darin, diese Merkmale nur mit der dichten Schicht in Kontakt zu bringen. In diesem Fall können die Nicht-Bildvariablen jedoch (glaube ich) nur lineare Vorhersagen treffen.

Gibt es andere (bessere) Möglichkeiten, um die Nicht-Bild-Features in das Modell aufzunehmen? Und welche Methode ist angesichts der Datenmenge, über die ich verfüge, empfehlenswert?

Eine andere Frage, die ich habe, ist, ob ich die Faltungsschichten während des Trainings mit diesen Nicht-Bild-Merkmalen auftauen soll oder nicht. Diese Schichten eines Resnet-18 (die auf ImageNet als vorab trainiert initialisiert wurden) wurden bereits mithilfe der Bilder feinabgestimmt. Ich vermute, dass ich sie einfrieren und nur die dichte Schicht auftauen sollte, da nur hier die Nichtbildmerkmale mit den Bildmerkmalen in Kontakt kommen (nicht früher im CNN). Wenn ich mich geirrt habe, sagen Sie es bitte!

Tim
quelle
Sie können die Join-Verteilung zwischen Additional_Features und Images über ein generatives Modell wie GAN, VAE modellieren. dann könnten Sie die latenten Variablen
abrufen
Ich bin selbst in einer ähnlichen Situation. Ich verwende in den letzten 15 Minuten einen Stapel von Himmelsbildern, um die Leistung von Sonnenkollektoren in der Nähe der Kamera in den nächsten 15 Minuten vorherzusagen. Ich habe vor kurzem beschlossen, mehrere Wetterfunktionen ins Spiel zu bringen (eine für jedes Bild wie in Ihrem Fall). Ihr erster Vorschlag funktionierte viel besser als der zweite (nicht-grafische Features direkt an die dichte Ebene anzuhängen). Um genau zu sein, führte der zweite Vorschlag zu Problemen mit der Normalisierung. Ich fand heraus, dass ich aus irgendeinem Grund, den ich noch nicht erklären kann, die Batchnorm-Ebene nicht in der Lage war, die grafische Erscheinung zu normalisieren
Vignesh Venugopal,
@VigneshVenugopal Bitte erwähne mich in den Kommentaren, sonst kann ich nicht benachrichtigt werden. Was ist deine Frage? :)
Medien
Wie kann ich Geschwindigkeit, Gas und Lenkwinkel mit meinen Netzwerken verknüpfen? Würden Sie bitte erklären, um wie viel Dichte es sich handelt? Was ist davon abhängig?
Nasrinzaghari

Antworten:

10

Meine Lösung ist wie Ihre erste Empfehlung, jedoch mit geringfügigen Änderungen.

  1. Konstruieren Sie Ihre Faltungsebenen und stapeln Sie sie bis zur Abflachungsebene. Dieses Netzwerk sollte mit den Bilddaten gespeist werden.
  2. Flache deine Aktivierungskarten
  3. Bauen Sie ein vollständig verbundenes Netzwerk mit der gewünschten Anzahl von Neuronen und Schichten auf.
  4. Verketten Sie die Ausgänge der abgeflachten Schicht des Faltungsnetzes und des vollständig verbundenen Netzes.
  5. Füge einige dichte Ebenen hinzu und verbinde sie mit der letzten Ebene, die deine Klassen repräsentiert.

Sie können für diese Architektur die üblichen Kostenfunktionen verwenden.

Medien
quelle
Kann man das in Keras mit Concatenate()Ebenen machen?
Leevo
Ja. Sie sollten sie verketten, um sie nebeneinander zu platzieren.
Medien
Soll ich Concatenate()oder concatenate()Schichten verwenden? Ich kann den Unterschied nicht erkennen
Leevo
Dies hängt davon ab, wie Sie Ihr Netzwerk erstellen möchten. Übrigens können Sie die Argumentliste von jedem sehen. Sie unterscheiden sich. Vielleicht möchten Sie auch hier einen Blick darauf werfen .
Medien