Parametr Diabeł - jak je ustawić, gdy nie jest możliwe sprawdzenie poprawności względem prawdy naziemnej [zamknięte]

9

Pytanie:

Chcę rozpocząć dyskusję na temat tego, jak ludzie ustawiają parametry algorytmu, gdy nie jest możliwa walidacja względem prawdy naziemnej (być może dlatego, że prawdy naziemnej po prostu nie można uzyskać lub jest ona bardzo trudna / uciążliwa).

Przeczytałem wiele artykułów i zaimplementowałem podstawowe algorytmy, w których --- mówi się, że zestaw parametrów został ustawiony „empirycznie” --- i często stwierdziłem, że to one wpływają na ogólność algorytmu (mimo że teoria leżąca u podstaw metody jest elegancka, kusząca i solidna).

Byłbym wdzięczny za podzielenie się swoimi przemyśleniami. I nie ma właściwej lub złej odpowiedzi na to pytanie. Chcę tylko wiedzieć, jak wszyscy sobie z tym radzą.

Tło / Źródło pytania:

Jestem informatykiem zajmującym się analizą obrazu, wizją komputerową i uczeniem maszynowym, a to pytanie jest od dawna w mojej głowie, ponieważ ciągle napotykam ten dylemat, ilekroć projektuję nowy algorytm i spędziłem sporo czasu na dostrajaniu parametrów.

Myślę też, że moje pytanie jest bardziej ogólne dla każdego obszaru, w którym algorytmy obliczeniowe są mocno zaangażowane, i chcę zaprosić myśli ludzi ze wszystkich zainteresowanych obszarów.

Chciałem podać konkretny przykład, który pomoże ci myśleć:

--- Weźmy przypadek wykrywania funkcji (powiedzmy okrągłe plamy lub istotne punkty). Uruchamiasz niektóre filtry (wymaga parametrów) w różnych skalach (parametry skali) i prawdopodobnie progujesz odpowiedź (parametr progowy). Zazwyczaj nie jest możliwe uzyskanie prawdy, na podstawie której można zweryfikować, a tym samym automatycznie dostroić parametry w takich scenariuszach.

--- Weź dowolną strukturę obliczeniową, która wymaga wielu komponentów przetwarzania sygnałów. Zawsze trzeba dostroić parametry i zwykle nie ma prawdy gruntu, a kiedy dostroisz je subiektywnie na niewielkim losowym podzbiorze zestawu danych, pewnego dnia napotkasz przypadek, do którego się nie uogólnia.

Ten parametr diabeł jest bardziej kłopotliwy, gdy ustawia się parametry dla niektórych pośrednich kroków w algorytmie.

I często stwierdziłem, że nie można rzucić problemu znalezienia dobrych wartości dla tych parametrów jako problemu optymalizacji z funkcją celu, z której można wziąć pochodną, ​​a tym samym użyć standardowych algorytmów optymalizacji do znalezienia dobrych wartości.

Ponadto w wielu scenariuszach udostępnianie tych parametrów użytkownikowi końcowemu nie jest opcją, ponieważ często opracowujemy aplikacje / oprogramowanie dla użytkowników końcowych innych niż obliczeniowi (powiedzmy biologowie, lekarze) i zwykle nie mają pojęcia, kiedy poprosisz ich o dostrojenie jeśli nie jest to bardzo intuicyjne (jak przybliżony rozmiar obiektu).

Podziel się swoimi przemyśleniami.

cdeepakroy
źródło
1
Otwarcie I want to kick up a discussion ...jest naprawdę dobrą wskazówką, że to, o co pytasz, nie pasuje do formatu * .SE.
Peter K.

Odpowiedzi:

2

Zakładając, że nie jest to prawda, ziemia, ( przynajmniej teoretycznie ) jeden z możliwych sposobów, aby przezwyciężyć „nuda” problem jest „bootstrap” stworzenie ziemia prawda. Jeśli masz już przyzwoity algorytm, który wykonuje to zadanie w około 80% -90% przypadków, możesz uruchomić algorytm na dużym zestawie instancji i poprosić użytkownika o zaznaczenie tylko błędów. To podejście ma swoje wady, takie jak stronniczość w stosunku do algorytmu.

Są jednak przypadki, w których nie ma w ogóle prawdziwej prawdy, a jedynie różne kompromisy systemowe. Na przykład system przetwarzania obrazu jest wymagany do uzyskania ostrego, dokładnego koloru, bezszumowego obrazu. Oczywiście nie możesz mieć ich wszystkich jednocześnie. W takim przypadku powinieneś użyć obiektywnych wskaźników, które można obliczyć na podstawie wyniku twojego systemu. (Patrz Imatest , analizator DXO do przetwarzania obrazów).

Gdy już je masz, istnieją metody optymalizacji wielu celów, które mogą tworzyć mapowanie z kompromisów (które są oczywiste dla użytkownika) na wewnętrzne parametry.

W każdym razie nigdy nie należy podawać użytkownikowi parametru, którego nie może zrozumieć. Jeśli wszystko zawiedzie, po prostu zakoduj parametr na stałe.

Andrey Rubshtein
źródło
2

To naprawdę trudny problem, ale w okolicy jest sporo pracy. Na przykład spójrz na ten artykuł Ramani i Fesslera na temat podejścia SURE. Wprowadzenie ma świetny przegląd metod wyboru parametrów, koniecznie sprawdź ich referencje.

LP251
źródło