2016-05-05 11 views
0

Die Eingänge, die ich verwende, sind 2xN, wobei die erste 1xN-Reihe fortlaufende Zahlen sind und die zweite 1xN-Reihe diskrete Zahlen (die eine bestimmte Klasse von 7 möglichen Klassen codiert). Ich erwarte, dass es eine Beziehung zwischen vertikal benachbarten Paaren gibt.Umformung Eingänge, die kontinuierliche und diskrete Werte enthalten

Ich suche ein neuronales Netz für einen Multi-Class-Klassifikator an diesem Eingang, bin aber unsicher, wie ich meine Daten für die Weiterleitung in einer Weise umformen soll, die sinnvoll ist.

Was ist ein praktikabler Weg, um meine Daten in 1x2N forward propagation umzugestalten, die Sinn macht?

edit:

Beispiel Eingabe:

input_features = [[99.3, 22.1, 41.7], [1, 3, 4]] 
+0

Was meinen Sie mit "1xN Zeile ist eine fortlaufende Nummer", wie kann Zeile eine Zahl sein? Meinst du Nummer ** s **? Es wäre gut, ein Beispiel für Ihre Daten anzugeben, da die Beschreibung ziemlich unklar ist. – lejlot

+0

Ja, Entschuldigung, ich war eindeutig in Eile, als ich das schrieb. Bitte lassen Sie mich wissen, wenn es noch unklar ist – user3605508

Antwort

0

Wenn Sie etwas mehr als weiß „es könnte eine Art von Beziehung sein“, sollten Sie nur das Array glätten und als Vektor passieren - NN kann (in der Theorie) solche Tatsachen selbst finden (genügend Daten gegeben).

Was sind die anderen Optionen? Wenn Sie vermuten, dass es eine einzige Beziehung gibt, so dass es für jede einzelne Spalte gilt, dann möchten Sie vielleicht ein spezifisches neuronales Netz konstruieren. Eine Option ist eine Faltung der Größe 2x1 (einzelne Spalte) in der Eingabeschicht. Auf der anderen Seite - wenn Sie genügend große Kernel erstellen, können Sie auch komplexere Beziehungen modellieren. In diesem Fall - lass es als Matrix (denke darüber als Bild). Mit diskreten Werten ist nichts falsch, solange sie im vernünftigen Maßstab sind.

Im Allgemeinen - Sie werden tatsächlich nur mit bestimmten Verdrahtung des Netzes arbeiten, nicht Umformung eines Arrays (jedoch Implementierungen von Conv-Netzen tatsächlich Form verwenden, um die Arbeit für Sie zu tun, wie beschrieben).

+0

Was ist mit Preprocessing (ich bin zweifelhaft, werde ich Rohwerte verwenden)? Für die Bildverarbeitung ist mein Verständnis, dass man normalerweise alle Eingaben nehmen und jede Eingabe durch ihren kollektiven Mittelwert subtrahieren und dann durch die Standardabweichung dividieren sollte. Diese Art der Vorverarbeitung ist in diesem Fall nicht intuitiv sinnvoll, da bei der Vorverarbeitung der diskreten Werte unterschiedliche "Abstände" zwischen den Klassen zugewiesen würden. – user3605508

+0

Ich würde argumentieren, dass für die Bildverarbeitung es ausreicht, zu einem vernünftigen Intervall zu skalieren, gibt es keine Notwendigkeit für die Zentrierung. Wenn Sie aufgrund von Expertenwissen über die Daten Zweifel hinsichtlich der Vorverarbeitung haben, sind Sie der einzige, der die Vorverarbeitung gestalten kann, da Sie vermuten, dass zwischen den Werten verborgene Beziehungen bestehen – lejlot

Verwandte Themen