machine-learning

___ tag123machineelearning ___ Implementierungsfragen zu Algorithmen des maschinellen Lernens. Allgemeine Fragen zum maschinellen Lernen sollten in ihren jeweiligen Communities veröffentlicht werden. ___ qstnhdr ___ Ein mehrschichtiges Perzeptron-Netzwerk verstehen ___ tag123neuralnetwork ___ Netzwerkstruktur inspiriert von vereinfachten Modellen biologischer Neuronen (Gehirnzellen). Neuronale Netze werden trainiert, um durch überwachte und unbeaufsichtigte Techniken zu "lernen" und können verwendet werden, um Optimierungsprobleme, Approximationsprobleme, Klassifikationsmuster und Kombinationen davon zu lösen. ___ qstntxt ___

Ich versuche zu verstehen, wie man einen Multilayer trainiert; Ich habe jedoch einige Schwierigkeiten herauszufinden, wie man eine geeignete Netzwerkarchitektur - d. h. die Anzahl der Knoten / Neuronen in jeder Schicht des Netzwerks - ermittelt.

Für eine bestimmte Aufgabe habe ich vier Eingabequellen, die jeweils einen von drei Zuständen eingeben können. Ich denke, das würde bedeuten, dass vier Input-Neuronen entweder 0, 1 oder 2 feuern würden, aber so weit ich es gesagt habe, sollte die Eingabe binär gehalten werden?

Außerdem habe ich Probleme bei der Auswahl der Neuronenmenge in der versteckten Schicht. Alle Kommentare wären großartig.

Danke.

    
___ answer2708040 ___

Die Bestimmung einer akzeptablen Netzwerkstruktur für ein mehrschichtiges Perzeptron ist eigentlich unkompliziert.

  1. Eingabeebene : Wie viele Features / Dimensionen sind enthalten? Ihre Daten - dh wie viele Spalten in jede Datenzeile. Fügen Sie einen hinzu (für der Bias - Knoten) und das ist die Anzahl der Knoten für die erste (Eingabe Ebene).

  2. Ausgabeschicht : Wird Ihr MLP in 'Maschine' ausgeführt? Modus oder Regressionsmodus ('Regression' hier in der maschinelles Lernen statt statistischer Sinn) - dh tut mein MLP Gibt eine Klassenbezeichnung oder eine vorhergesagte zurück Wert? Wenn letzteres, dann dein Die Ausgabeschicht hat einen einzelnen Knoten. Ob Erstere, dann Ihre Ausgabeschicht hat die gleiche Anzahl von Knoten wie Klassenlabels. Zum Beispiel, wenn der Ergebnis, das Sie wollen, ist jedes zu beschriften Instanz als entweder "Betrug" oder "nicht Betrug ", das sind zwei Klassenlabels, Daher zwei Knoten in Ihrer Ausgabe Ebene.

  3. Ausgeblendete Ebene (n) : Zwischen diesen beiden (Eingabe und Output) sind offensichtlich die versteckten Lagen. Beginnen Sie immer mit einem einzigen versteckte Ebene. Also wie viele Knoten? Hier ist eine Faustregel: Legen Sie die (ursprüngliche) Größe der ausgeblendeten Ebene auf eine bestimmte Anzahl von Knoten fest, die nur geringfügig größer als die Anzahl der Knoten in der Eingabeebene ist. Verglichen mit weniger Knoten als der Eingabeschicht hilft diese Überkapazität, Ihre numerische Optimierungsroutine (z. B. Gradientenabstieg) zu konvergieren.

Beginnen Sie zusammen mit drei Schichten für Ihre Netzwerkarchitektur; Die Größen der ersten (Eingabe) und letzten (Ausgabe werden durch Ihre Daten bzw. durch Ihren Modellentwurf festgelegt. Eine verborgene Ebene, die gerade etwas größer als die Eingabeebene ist, ist fast immer ein gutes Design, um zu beginnen.

In Ihrem Fall wäre eine geeignete Netzwerkstruktur:

Eingabeschicht : 5 Knoten - & gt; versteckte Ebene : 7 Knoten - & gt; Ausgabeschicht : 3 Knoten

    
___ answer2747813 ___

Ich stimme Dougs Antwort oben in einigen Punkten nicht zu.

Sie haben 4 diskrete (3-Wege kategoriale) Eingänge. Sie sollten (sofern Sie keinen starken Grund dafür haben) dies als 12 Binäreingänge darstellen, die eine 1-aus-3-Codierung für jeden Ihrer vier konzeptionellen Eingänge verwenden. Wenn Sie also [2,0,1,1] eingeben, sollte Ihr Netzwerk Folgendes erhalten: 0 0 1 1 0 0 0 1 0 0 1 0 Wenn Ihre Netzwerkimplementierung einen manuellen Bias erfordert, sollten Sie ein weiteres Always-On-Bit für den Bias hinzufügen, aber die meisten sinnvollen neuronalen Netzimplementierungen erfordern dies nicht.

Probiere ein paar verschiedene Zahlen von versteckten Einheiten aus. Sie müssen sich nicht auf eine versteckte Layer-Größe beschränken, die kleiner ist als die Eingabe-Layer-Größe, aber wenn Sie es größer machen, sollten Sie darauf achten, dass Sie Ihre Gewichtungen normalisieren, vielleicht mit L2- oder L1-Gewicht-Verfall und vielleicht sogar früher Stopps im Training (stoppe das Training, wenn dein Fehler in einem ausgehaltenen Validierungssatz aufhört sich zu verbessern).

    
___ tag123deeplearning ___ Deep Learning ist ein Bereich des maschinellen Lernens, dessen Ziel es ist, komplexe Funktionen mit speziellen neuronalen Netzwerkarchitekturen zu erlernen, die "tief" sind (aus vielen Schichten bestehen). Dieses Tag sollte für Fragen zur Implementierung von Deep-Learning-Architekturen verwendet werden. Allgemeine Fragen zum maschinellen Lernen sollten mit "maschinelles Lernen" gekennzeichnet werden. Eine Markierung für die relevante Softwarebibliothek (z. B. "keras" oder "tensorflow") ist hilfreich. ___
3
Antworten

Multilabel AdaBoost für MATLAB

Ich bin derzeit auf der Suche nach einer Multilabel-AdaBoost-Implementierung für MATLAB oder nach einer Technik zur effizienten Verwendung einer Zwei-Label-Implementierung für den Multilabel-Fall. Jede Hilfe in dieser Angelegenheit wäre willkomm...
07.08.2010, 18:15
4
Antworten

Schätzen Sie die Gaußsche (Gemisch) Dichte aus einer Menge gewichteter Proben ab

Nehmen wir an, ich habe eine Menge gewichteter Proben, wobei jede Probe ein entsprechendes Gewicht zwischen 0 und 1 hat. Ich möchte die Parameter einer Gaußschen Gemischverteilung schätzen, die auf Proben mit höherem Gewicht ausgerichtet ist. Be...
22.03.2010, 13:48
1
Antwort

___ tag123nlp ___ Natural Language Processing (NLP) ist ein Teilbereich der künstlichen Intelligenz, bei dem nützliche Informationen aus natürlichsprachlichen Daten transformiert oder extrahiert werden. Methoden umfassen maschinelles Lernen und regelbasierte Ansätze. ___ tag123nltk ___ Das Natural Language Toolkit ist eine Python-Bibliothek für Computerlinguistik. ___ tag123machineelearning ___ Implementierungsfragen zu Algorithmen des maschinellen Lernens. Allgemeine Fragen zum maschinellen Lernen sollten in ihren jeweiligen Communities veröffentlicht werden. Was ist der Unterschied zwischen mteval-v13a.pl und NLTK BLEU? ___ tag123machinetranslation ___ Machine Translation, ein Unterfeld von Natural Language Processing, ist die automatische Übersetzung von menschlichen Sprachen. Während historische Übersetzer auf statistischer maschineller Übersetzung basieren, verwenden neuere Systeme neuronale Netzwerke, die viel bessere Ergebnisse liefern. ___ qstntxt ___

Es gibt eine Implementierung des BLEU-Ergebnisses in Python NLTK,   %code%

Aber ich bin mir nicht sicher, ob es das gleiche wie die mtevalv13a ist .pl-Skript .

Was ist der Unterschied zwischen ihnen?

    
___ tag123bleu ___ BLEU (Bilingual Evaluation Understudy) ist ein Algorithmus zur Bewertung der Qualität von Text, der maschinell von einer natürlichen Sprache in eine andere Sprache übersetzt wurde. ___ answer46089409 ___

Kurz gesagt

Nein, die BLEU in NLTK ist nicht genau die gleiche wie die %code% .

Aber es kann sehr nahe kommen, siehe Ссылка

  

%code% entspricht %code% bis zur 4. Ordnung von ngram mit einigen Gleitkommadiskrepanzen

Die Details des Vergleichs und des verwendeten Datensatzes können von Ссылка oder:

%Vor%

Die Hauptunterschiede:

In lang

Es gibt mehrere Unterschiede zwischen %code% und %code% :

  • Der erste Unterschied besteht darin, dass %code% mit einem eigenen NIST-Tokenizer geliefert wird, während die NLTK-Version von BLEU die Implementierung der Metrik ist und voraussetzt, dass die Eingabe vorbenannt wird / strong>.

    • Übrigens, dieser laufende PR wird die Lücke zwischen NLTK- und NIST-Tokenizern schließen
  • Der andere Hauptunterschied besteht darin, dass %code% erwartet, dass die Eingabe im %code% -Format ist, während NLTK BLEU eine Python-Liste von Listen mit Strings aufnimmt, siehe README.txt im zipball hier für weitere Informationen darüber, wie man Textdateien nach SGM konvertiert .

  • %code% erwartet eine ngram-Reihenfolge von mindestens 1-4. Wenn die minimale ngram-Reihenfolge für den Satz / Korpus kleiner als 4 ist, wird eine 0 Wahrscheinlichkeit zurückgegeben, die ein %code% ist. Um dieses Verhalten zu emulieren, hat NLTK ein %code% -Flag gesetzt:

  • %code% kann NIST-Scores generieren, während NLTK keine NIST-Score-Implementierung (zumindest noch nicht) aufweist

Anders als die Unterschiede, NLTK BLEU Punkte in mehr Funktionen gepackt:

Um die in der NLTK-Version von BLEU hinzugefügten Funktionen zu validieren, wird den Konten ein Regressionstest hinzugefügt, siehe Ссылка

    
___

Es gibt eine Implementierung des BLEU-Ergebnisses in Python NLTK,   nltk.translate.bleu_score.corpus_bleu Aber ich bin mir nicht sicher, ob es das gleiche wie die mtevalv13a ist .pl-Skript . Was ist der Unterschied zwischen ihnen?...
06.09.2017, 21:26
2
Antworten

Wie kann ich Tensors auf einen früheren Wert zurücksetzen, ohne den Wert auf der Festplatte zu speichern?

Ich mache ein paar Experimente mit TensorFlow und bin in einen Haken geraten. Ich versuche, TF zu verwenden, um eine Änderung in einem Modell zu bewerten, dann das Modell basierend auf der resultierenden Änderung der Verlustfunktion beizubehalte...
24.09.2017, 19:26
1
Antwort

Python keras, wie man eine dichte Schicht in eine Faltungsschicht transformiert

Ich habe ein Problem, die richtige Zuordnung der Gewichte zu finden, um eine dichte Schicht in eine Faltungsschicht zu verwandeln. Dies ist ein Auszug eines ConvNet, an dem ich gerade arbeite: %Vor% Nach dem MaxPooling hat die Eingabe die...
01.05.2016, 11:58
2
Antworten

Feature-Auswahl in Wrapper-Methode und Informationsfilterung?

Ich sehe ein Beispiel in der alt-mittleren Prüfung von der bekannten Person Tom Mitchell , wie folgt:    Ziehen Sie in Betracht, einen Klassifikator in einer Situation mit insgesamt 1000 Merkmalen zu lernen.   50 von ihnen sind wirklich inf...
30.03.2015, 14:43
2
Antworten

Warum ist binary_crossentropy genauer als categorical_crossentropy für die Klassifizierung von Klassen in Keras?

Ich lerne, wie man mit Keras konvolutionelle neuronale Netzwerke erzeugt. Ich versuche eine hohe Genauigkeit für den MNIST-Datensatz zu erhalten. Offenbar ist categorical_crossentropy für mehr als 2 Klassen und binary_crossentropy für 2...
26.12.2016, 07:02
4
Antworten

In scikit-learn, kann DBSCAN spärliche Matrix verwenden?

Ich habe einen Speicherfehler bekommen, als ich den dbscan-Algorithmus von scikit ausgeführt habe. Meine Daten sind ungefähr 20000 * 10000, es ist eine binäre Matrix. (Vielleicht ist es nicht geeignet, DBSCAN mit einer solchen Matrix zu verwe...
19.04.2013, 01:49
2
Antworten

Pythons Implementierung von gegenseitigen Informationen

Ich habe einige Probleme bei der Implementierung der Gegenseitigen Informationsfunktion, die Pythons Machine-Learning-Bibliotheken bieten, insbesondere: sklearn.metrics.mutual_info_score (labels_true, labels_pred, contingency = None) ( Ссылка...
10.07.2014, 21:11
2
Antworten

Azure Machine Learning - CORS

Ich habe stundenlang nach diesem gesucht und kann keine einzige Sache finden, die die Frage beantwortet. Ich habe einen neuen Azure Machine Learning-Dienst erstellt und veröffentlicht und einen Endpunkt erstellt. Ich kann den Dienst mit dem Post...
16.01.2015, 16:00