Frage:
Ich möchte eine Diskussion darüber anregen, wie Leute algorithmische Parameter einstellen, wenn keine Validierung gegen die Grundwahrheit möglich ist (möglicherweise, weil die Grundwahrheit einfach nicht erhalten werden kann oder sehr schwer / mühsam zu erhalten ist).
Ich habe zahlreiche Artikel gelesen und die zugrunde liegenden Algorithmen implementiert, wobei - eine Reihe von Parametern soll "empirisch" eingestellt worden sein - und oft festgestellt habe, dass dies diejenigen sind, die die Allgemeinheit des Algorithmus beeinflussen (obwohl die Die der Methode zugrunde liegende Theorie ist elegant, verlockend und solide.
Ich würde es begrüßen, wenn Sie Ihre Gedanken teilen könnten. Und auf diese Frage gibt es keine richtige oder falsche Antwort. Ich möchte nur wissen, wie alle anderen damit umgehen.
Hintergrund / Quelle der Frage:
Ich bin ein Informatiker, der in den Bereichen Bildanalyse, Computer Vision und maschinelles Lernen arbeitet, und diese Frage hat mich eine Weile beschäftigt, da ich mich immer wieder diesem Dilemma gestellt habe, wenn ich einen neuen Algorithmus entwerfe und ich Ich verbrachte viel Zeit damit, die Parameter zu optimieren.
Ich denke auch, dass meine Frage hier allgemeiner für alle Bereiche ist, in denen Rechenalgorithmen stark involviert sind, und ich möchte die Gedanken von Menschen aus allen betroffenen Bereichen einladen.
Ich wollte Ihnen ein konkretes Beispiel geben, damit es Ihnen beim Nachdenken hilft:
--- Nehmen Sie den Fall der Merkmalserkennung (sagen wir kreisförmige Blobs oder hervorstechende Punkte). Sie führen einige Filter (benötigt Parameter) in verschiedenen Maßstäben (Skalenparameter) aus und schwellen wahrscheinlich die Antwort (Schwellwertparameter). In solchen Szenarien ist es normalerweise nicht möglich, eine Grundwahrheit zur Validierung zu erhalten und dadurch Ihre Parameter automatisch abzustimmen.
--- Nehmen Sie ein beliebiges Rechengerüst, das viele Signalverarbeitungskomponenten umfasst. Es gibt immer Parameter, die eingestellt werden müssen, und normalerweise gibt es keine Grundwahrheit. Wenn Sie sie subjektiv auf eine kleine zufällige Teilmenge Ihres Datensatzes abstimmen, werden Sie eines Tages auf den Fall stoßen, auf den sie nicht verallgemeinert werden.
Dieser Parameter Devil ist problematischer, wenn Sie Parameter für einige Zwischenschritte in Ihrem Algorithmus festlegen.
Und ich habe oft festgestellt, dass es nicht möglich ist, das Problem, gute Werte für diese Parameter zu finden, als Optimierungsproblem zu betrachten, dessen objektive Funktion Sie ableiten und dabei Standardoptimierungsalgorithmen verwenden können, um gute Werte zu finden.
In vielen Szenarien ist es auch keine Option, diese Parameter einem Endbenutzer zur Verfügung zu stellen, da wir häufig Anwendungen / Software für nicht rechnergestützte Endbenutzer (z. B. Biologen, Ärzte) entwickeln, die normalerweise keine Ahnung haben, wenn Sie sie zum Einstellen auffordern es sei denn, es ist sehr intuitiv (wie ca. Objektgröße).
Bitte teilen Sie Ihre Gedanken.
I want to kick up a discussion ...
ist ein guter Hinweis darauf, dass das, was Sie fragen, nicht gut zum * .SE-Format passt.