2009-06-07 5 views
34

Ich suche nach relativ einfachen Datensätzen zum Testen und Vergleichen verschiedener Trainingsmethoden für künstliche neuronale Netze. Ich möchte Daten, die nicht zu viel Vorverarbeitung benötigen, um es in mein Eingabeformat einer Liste von Eingaben und Ausgaben zu verwandeln (normalisiert auf 0-1). Alle Links geschätzt.Datensätze für neuronales Netzwerktraining

Antwort

28

Warum nicht etwas Einfaches wie die Sin-Funktion als Trainingsdaten versuchen? Da Sie die Trainingsmethoden vergleichen und sich nicht wirklich darum kümmern, wofür Sie das Netzwerk trainieren, sollte es funktionieren und einfach sein, die Trainingsdaten zu generieren.

Trainieren Sie das Netzwerk mit sin (x) wobei x die Eingabe und die Ausgabe der Wert der Funktion ist. Ein zusätzlicher Vorteil in Ihrem Fall ist, dass der absolute Wert des Ergebnisses bereits im Bereich 0-1 liegt. Es würde ebenso mit anderen mathematischen Funktionen arbeiten.

+0

Ja, das ist ein toller Punkt. Darüber hinaus möchte ich noch etwas höhere Dimensionsprobleme haben. Ich denke, ich könnte sie auch aus Gleichungen generieren. Vielen Dank. –

+1

@JeffThomas Ich würde gerne wissen, ob jemand tatsächlich SIN Annäherung mit NN erreicht hat. Wenn ja, wie war Ihr endgültiger Fehler und die Netzwerkkonfiguration? –

3

Ich lernte ANNs als Student, indem Sie sie zur OCR (Optical Character Recognition) verwenden. Ich denke, das ist ein netter Anwendungsfall.

Scannen Sie zwei Seiten Text, extrahieren Sie die Buchstaben und bilden Sie Trainings-/Testdatensätze (z. B. 8x8 Pixel führt zu 64 Eingabeknoten), beschriften Sie die Daten. Trainiere das ANN und erhalte eine Punktzahl mit dem Testdatensatz. Ändern Sie die Netzwerktopologie/-parameter und optimieren Sie das Netzwerk, um die beste Punktzahl zu erhalten.

47

https://archive.ics.uci.edu/ml ist die Universität von Kalifornien Irvine Repository von maschinellen Lerndatensätzen. Es ist eine wirklich großartige Ressource, und ich glaube, dass sie alle in CSV-Dateien vorliegen.

+1

Hey, das ist ziemlich ordentlich. Genau das, was ich gesucht habe. – Mumbleskates

11

Einige Ressourcen sind

  • Die SINC-Funktion.

     +---- 
         | sin(x) 
         | -------  when x != 0 
         |  x 
    sinC = | 
         | 
         |  1   otherwise 
         +---- 
    
  • Die sin(x) Funktion als @adrianbanks erzählt.

  • Zum Testen einiger neuer Modifikationen an einem Algorithmus die guten alten n-Paritätstests.

  • Der Iris-Datensatz, semeion handgeschriebenen Digits Datensatz usw., andere Funktionen und vieles mehr.

  • der UCI Machine Learning Repository: archive.ics.uci.edu/ml/datasets.html

  • Hier ist eine weitere Ressource viele Regressions Datensätze mit: www.dcc.fc.up.pt/~ltorgo//Regression/DataSets.html. Sie erhalten viele davon vom UCI ML Repository.
  • Sie können Datensätze von https://www.kaggle.com/ für verschiedene praktische Datensätze erhalten.

Ich glaube nicht, dass Sie eine Menge Vorverarbeitung mit diesen benötigen. Wie bei kategorialen Variablen können Sie sie schnell mit einem GUI-Texteditor durch Binär ersetzen. Zum Beispiel hat der Datensatz Abalone ein kategorisches Attribut, das Geschlecht, das drei Werte "M" für männlich, "F" für weiblich, "I" für Säugling hat. Sie können Strg + R in Ihrem Texteditor drücken und alle Vorkommen von "M" durch 1,0,0, alle Vorkommen von "F" durch 0,1,0 und alle Vorkommen von "I" durch 0,0,1 ersetzen (wenn die Datei im CSV-Format vorliegt). Dadurch werden die kategorialen Variablen schnell ersetzt.

Wenn Sie in R sind, dann können Sie die normalizeData Funktion benutzen, die mit dem RSNNS package kommt Ihre Daten in 0 und 1

zu skalieren und zu normalisieren Wenn Sie in einer anderen Umgebung wie octave oder matlab sind, können Sie investieren Sie einfach etwas Zeit, um Ihren Code zu schreiben. Mir sind die verfügbaren Funktionen in diesen Umgebungen nicht bekannt. Ich verwende meinen Code, um die Daten zu skalieren und/oder zu normalisieren.

Wenn Sie Funktionen verwenden, wird Ihre Arbeit viel einfacher. Speichern Sie die geänderten Daten nach der Vorbereitung der Daten in einer Datei.

Denken Sie daran, dass das Ziel des Trainings eines neuronalen Netzwerks nicht nur darin besteht, das Netzwerk so zu trainieren, dass es auf einem bestimmten Trainingssatz gut funktioniert. Das Hauptziel besteht darin, das Netzwerk so zu trainieren, dass es den besten Fehler für neue Daten hat, die das Netzwerk nicht gesehen hat (direkt oder indirekt).

+1

Die beste Antwort, die ich bis jetzt auf Fragen zu Datensätzen gefunden habe ...! –