Pytorch -Implementierung von relationalen Netzwerken - ein einfaches Modul für neuronale Netzwerke für relationale Argumentation
Implementiert und auf Task von Clevr getestet.
Sort-of-clevr ist eine vereinfachte Version von Clevr. Dies besteht aus 10000 Bildern und 20 Fragen (10 relationale Fragen und 10 nicht-relationale Fragen) pro Bild. 6 Farben (rot, grün, blau, orange, grau, gelb) werden zufällig ausgewählter Form (Quadrat oder Kreis) zugeordnet und in ein Bild platziert.
Nicht-relationale Fragen bestehen aus 3 Subtypen:
Diese Fragen sind "nicht-relationale", da sich der Agent nur auf bestimmte Objekte konzentrieren muss.
Relationale Fragen bestehen aus 3 Subtypen:
Diese Fragen sind "relational", da der Agent die Beziehungen zwischen Objekten berücksichtigen muss.
Fragen werden in einen Vektor der Größe von 11: 6 für einen HOT-Vektor für eine bestimmte Farbe zwischen 6 Farben codiert, 2 für einen HOT-Vektor relationaler/nicht-relationaler Fragen. 3 für einen HOT-Vektor von 3 Subtypen.

Mit dem gezeigten Beispielbild können wir nicht-relationale Fragen wie folgt erstellen:
Und relationale Fragen:
Erstellen Sie Conda Environment aus environment.yml -Datei
$ conda env create -f environment.yml
Umgebung aktivieren
$ conda activate RN3
Wenn Sie Conda nicht verwenden, verwenden Sie Python 3 normalerweise und verwenden Sie pip install , um verbleibende Abhängigkeiten zu installieren. Die Liste der Abhängigkeiten finden Sie in der Datei environment.yml .
$ ./run.sh
oder
$ python sort_of_clevr_generator.py
So generieren
$ python main.py
Um das binäre RN -Modell zu trainieren. Alternativ verwenden Sie
$ python main.py --relation-type=ternary
das ternäre RN -Modell trainieren.
Im Originalpapier verwendete die Art-of-Clevr-Aufgabe ein anderes Modell als Clevr-Aufgabe. Da das verwendete Modell CLEVR jedoch viel weniger Zeit benötigt, um zu berechnen (das Netzwerk ist viel kleiner), wird dieses Modell für Sort-of-Clevr-Aufgaben verwendet.
| Relationale Netzwerke (20. Epoche) | CNN + MLP (ohne RN, 100. Epoche) | |
|---|---|---|
| Nicht-relationale Frage | 99% | 66% |
| Relationale Frage | 89% | 66% |
CNN + MLP trat über die Trainingsdaten über eine Überanpassung auf.
Relationale Netzwerke zeigen weitaus bessere Ergebnisse bei relationalen Fragen und nicht-stellvertretenden Fragen.
@GNGDB beschleunigt das Modell um das 10 -fache.