2013-01-05 16 views
6

Wie finden Sie eine optimale Lernregel für ein bestimmtes Problem, z. B. eine Klassifizierung mit mehreren Kategorien?Eine optimale Lernregel für ein ANN finden

Ich dachte an die Verwendung von genetischen Algorithmen, aber ich weiß, dass es Probleme gibt, die die Leistung betreffen. Ich suche nach Beispielen aus der realen Welt, in denen Sie die Lehrbuch-Lernregeln nicht verwendet haben und wie Sie diese Lernregeln gefunden haben.

Antwort

9

Schöne Frage BTW.

Klassifikationsalgorithmen können mit vielen Eigenschaften klassifiziert werden wie:

  1. Was ist der Algorithmus stark bevorzugen (oder welche Art von Daten, die für diesen Algorithmus am besten geeignet ist).
  2. Trainingsaufwand. (braucht es viel Zeit, um trainiert zu werden)
  3. Wann ist es effektiv? (große Daten - mittlere Daten - geringe Datenmenge).
  4. die Komplexität der Analysen, die es liefern kann.

daher für Ihr Problem Klassifizierung mehrere Kategorien ich Online logistische Regression verwenden (FROM SGD), weil es mit kleiner bis mittlerer Datengröße (weniger als zehn Millionen von Trainingsbeispielen) perfekt und es ist wirklich schnell.

Ein weiteres Beispiel:

lassen Sie uns sagen, dass Sie eine große Menge von Textdaten zu klassifizieren sind. dann Naive Bayes ist dein Baby. weil es Textanalyse stark bevorzugt. auch das SVM und SGD sind schneller, und wie ich einfacher zu trainieren erlebt. aber diese Regeln "SVM und SGD" kann angewendet werden, wenn die Datengröße als mittelgroß oder klein und nicht groß betrachtet wird.

Im Allgemeinen wird jede Data-Mining-Person ihn die vier afomentioned Punkte selbst fragen wenn er jede ML oder Simple Mining-Projekt starten will.

Danach können Sie zu messen, um seine AUC, oder sachdienliche, um zu sehen, was hast du getan. weil Sie möglicherweise mehr als nur einen Klassifikator in einem Projekt verwenden. oder manchmal, wenn Sie denken, dass Sie Ihren perfekten Klassifikator gefunden haben, scheinen die Ergebnisse mit einigen Messtechniken nicht gut zu sein. So wirst du deine Fragen noch einmal überprüfen, um herauszufinden, wo du schief gegangen bist.

Ich hoffe, dass ich geholfen habe.

5

Wenn Sie einen Vektor x ins Netz eingeben, wird das Netz eine Ausgabe geben, die von allen Gewichten abhängt (Vektor w). Es würde einen Fehler zwischen der Ausgabe und der wahren Antwort geben. Der durchschnittliche Fehler (e) ist eine Funktion des w, sagen wir e = F(w).Angenommen, Sie in einer Schicht zweidimensionalen Netzwerk haben, dann wird das Bild von F kann wie folgt aussehen:

enter image description here

Wenn wir über Ausbildung reden, sprechen wir eigentlich über die w zu finden, die die minimal macht e . Mit anderen Worten suchen wir das Minimum einer Funktion. Um zu trainieren ist zu suchen.

So stellen Sie in Frage, wie Sie die Methode zum Suchen auswählen. Mein Vorschlag wäre: Es hängt davon ab, wie die Oberfläche von F(w) wie aussieht. Je wendiger es ist, desto eher sollte eine randomisierte Methode verwendet werden, da die einfache Methode, die auf dem Gradienten-Abstieg basiert, eine größere Chance hat, Sie durch ein lokales Minimum gefangen zu halten - so verlieren Sie die Chance, das globale Minimum zu finden. Auf der anderen Seite, wenn die Oberfläche von F(w) wie eine große Grube aussieht, dann vergessen Sie den genetischen Algorithmus. Eine einfache Rückpropagation oder irgendetwas, das auf einem Gradientenabstieg basiert, wäre in diesem Fall sehr gut.

Sie können fragen, wie kann ich wissen, wie die Oberfläche wie aussehen? Das ist eine Erfahrungserfahrung. Oder Sie möchten zufällig eine Stichprobe von w eingeben und F(w) berechnen, um eine intuitive Ansicht der Oberfläche zu erhalten.

Verwandte Themen