normal-distribution

___ tag123machineelearning ___ Implementierungsfragen zu Algorithmen des maschinellen Lernens. Allgemeine Fragen zum maschinellen Lernen sollten in ihren jeweiligen Communities veröffentlicht werden. ___ ___ tag123statistics Überlegen Sie, ob Ihre Frage an http://stats.stackexchange.com wäre besser. Statistik ist die mathematische Studie Wahrscheinlichkeit von über Merkmale einer Population aus einer begrenzten Anzahl von Proben oder Beobachtungen zu schließen. ___ qstnhdr ___ scipy.optimize.fmin_l_bfgs_b gibt 'ABNORMAL_TERMINATION_IN_LNSRCH' zurück ___ answer39155976 ___

Scipy ruft die ursprüngliche L-BFGS-B-Implementierung auf. Das ist etwas Fortran77 (alt, aber wunderschön und superschneller Code) und unser Problem ist, dass die Abstiegsrichtung tatsächlich steigt. Das Problem beginnt in Zeile 2533 (Link zum Code unten)

%Vor% Mit anderen Worten, Sie sagen ihm, dass er den Hügel hinuntergehen soll, indem er den Hügel hinaufgeht. Der Code versucht insgesamt 20 Mal in der von Ihnen angegebenen Abstiegsrichtung eine so genannte Liniensuche und stellt fest, dass Sie ihm NICHT sagen, dass er bergab fahren soll, sondern bergauf. Alle 20 mal.

Der Typ, der es geschrieben hat (Jorge Nocedal, der übrigens ein sehr schlauer Typ ist), hat 20 da gemacht, weil das ziemlich reicht. Maschine Epsilon ist 10E-16, ich denke, 20 ist eigentlich ein bisschen zu viel. Also, mein Geld für die meisten Leute mit diesem Problem ist, dass Ihr Farbverlauf nicht zu Ihrer Funktion passt.

Nun könnte es auch sein, dass "2. Rundungsfehler die Berechnung dominieren". Damit meint er, dass Ihre Funktion eine sehr flache Oberfläche ist, in der Zunahmen in der Größenordnung von Maschinen-Epsilon liegen (in diesem Fall könnten Sie vielleicht die Funktion neu skalieren), Nun, ich habe mir gedacht, dass es vielleicht eine dritte Option geben sollte, wenn deine Funktion zu komisch ist. Schwingungen? Ich könnte etwas wie $ \ sin ({\ frac {1} {x}}) $ sehen, das diese Art von Problem verursacht. Aber ich bin kein kluger Typ, also gehe nicht davon aus, dass es einen dritten Fall gibt.

Ich denke also, die Lösung des OP sollte sein, dass Ihre Funktion zu flach ist. Oder sieh dir den Fortran-Code an.

Ссылка

Hier ist die Zeilensuche für diejenigen, die es sehen wollen. Ссылка

Hinweis. Das ist 7 Monate zu spät. Ich lege es hier für die Zukunft.

    
___ tag123optimierung ___ Optimierung ist der Akt der Verbesserung einer Methode oder eines Designs. In der Programmierung nimmt die Optimierung normalerweise die Form an, die Geschwindigkeit eines Algorithmus zu erhöhen oder die benötigten Ressourcen zu reduzieren. Eine weitere Bedeutung der Optimierung sind numerische Optimierungsalgorithmen. ___ qstntxt ___

Ich benutze scipy.optimize.fmin_l_bfgs_b, um ein Gaußsches Mischungsproblem zu lösen. Die Mittel der Gemischverteilungen werden durch Regressionen modelliert, deren Gewichte mit Hilfe des EM-Algorithmus optimiert werden müssen.

%Vor%

Aber manchmal habe ich eine Warnung 'ABNORMAL_TERMINATION_IN_LNSRCH' im Informationswörterbuch erhalten:

%Vor%

Ich bekomme diese Warnung nicht jedes Mal, aber manchmal. (Die meisten erhalten 'KONVERGENZ: NORM_OF_PROJECTED_GRADIENT_ & lt; = _ PGTOL' oder 'KONVERGENZ: REL_REDUCTION_OF_F_ & lt; = _ FACTR * EPSMCH').

Ich weiß, dass es bedeutet, dass das Minimum in dieser Iteration erreicht werden kann. Ich habe dieses Problem gegooglet. Jemand sagte, dass es häufig vorkommt, weil die Ziel- und Gradientenfunktionen nicht übereinstimmen. Aber hier stelle ich keine Gradientenfunktion zur Verfügung, weil ich 'approx_grad' verwende.

Was sind die möglichen Gründe, die ich untersuchen sollte? Was bedeutet es mit "Rundungsfehler dominieren Berechnung"?

======

Ich finde auch, dass die Log-Likelihood nicht monoton zunimmt:

%Vor%

Es beginnt in der Regel bei der zweiten oder dritten Iteration zu sinken, selbst wenn 'ABNORMAL_TERMINATION_IN_LNSRCH' nicht auftritt. Ich weiß nicht, ob dieses Problem mit dem vorherigen zusammenhängt.

    
___ tag123normalverteilung ___ Die Normalverteilung ist eine Annahme vieler parametrischer statistischer Tests und ist typischerweise mit einer Gaußschen Verteilung verbunden, oft mit Mittelwert = 0 und Standardabweichung = 1. Die "Glockenkurve" ist das visuelle, intuitive Modell für diese Verteilung. Gaußsche Verteilungen sind mit der Funktion verbunden: f (x) = [1 / (σ√2π)] e ^ (- [(x-μ) ^ 2] / (2σ ^ 2)) ___ tag123gradientdescent ___ Gradient Descent ist ein Algorithmus zum Auffinden des Minimums einer Funktion. Es berechnet iterativ partielle Ableitungen (Gradienten) der Funktion und steigt in Schritten proportional zu diesen partiellen Ableitungen ab. Eine Hauptanwendung von Gradient Descent ist das Anpassen eines parametrisierten Modells an eine Menge von Daten: Die zu minimierende Funktion ist eine Fehlerfunktion für das Modell. ___
4
Antworten

C ++: Gaußsche Verteilung erzeugen

Ich würde gerne wissen, ob es in C ++ - Standardbibliotheken einen Gauß'schen Verteilungsgenerator gibt oder ob Sie ein Code-Snippet übergeben müssen. Vielen Dank im Voraus.     
10.07.2009, 13:14
2
Antworten

Umwandlung von Daten in Normalität. Was ist die beste Funktion für einen bestimmten Fall?

Gibt es eine Funktion oder ein Paket, das es erlaubt, nach der besten (oder einer der besten) Variablentransformation zu suchen, um die Residuen des Modells so normal wie möglich zu machen? Zum Beispiel: %Vor% Gibt es eine Funktion, die...
27.08.2013, 11:45
4
Antworten

Verwendung der Gauss'schen Wahrscheinlichkeitsdichtefunktion in C ++

Erstens, ist dies die korrekte C ++ - Darstellung der pdf-Gauss-Funktion? %Vor% Zweitens macht es Sinn, dass wir so etwas tun? %Vor% BEARBEITEN: Ein Beispiel dafür, was genau Sie erreichen möchten: Sagen wir, ich habe eine Daten nam...
01.06.2012, 08:38
1
Antwort

Zeichnen von Normalverteilungen

Ich versuche, drei Beispiele für die Normalverteilung zu zeichnen, aber ggplot scheint den Pfad als einen kontinuierlichen und nicht als einen durch die Faktorstufen geschichteten Pfad zu erkennen. Ich bin relativ neu in ggplot und jede Hilfe wü...
14.06.2013, 06:02
1
Antwort

scipy.optimize.fmin_l_bfgs_b gibt 'ABNORMAL_TERMINATION_IN_LNSRCH' zurück

Ich benutze scipy.optimize.fmin_l_bfgs_b, um ein Gaußsches Mischungsproblem zu lösen. Die Mittel der Gemischverteilungen werden durch Regressionen modelliert, deren Gewichte mit Hilfe des EM-Algorithmus optimiert werden müssen. %Vor% Aber ma...
07.01.2016, 19:27