The Parameter Devil - Come impostarli quando non è possibile alcuna validazione contro la verità sul terreno [chiuso]


9

Domanda:

Voglio dare il via a una discussione su come le persone impostano i parametri algoritmici quando non è possibile alcuna validazione contro la verità (forse perché la verità non può essere ottenuta o è molto difficile / noiosa da ottenere).

Ho letto numerosi articoli e implementato gli algoritmi sottostanti in cui - si dice che un insieme di parametri sia stato impostato "empiricamente" --- e spesso ho scoperto che questi sono quelli che influenzano la generalità dell'algoritmo (anche se il la teoria alla base del metodo è elegante, allettante e solida).

Gradirei se potessi condividere i tuoi pensieri. E non esiste una risposta giusta o sbagliata per questa domanda. Voglio solo sapere come tutti gli altri se ne occupano.

Background / Fonte-of-domanda:

Sono uno scienziato informatico che lavora nei settori dell'analisi delle immagini, della visione artificiale e dell'apprendimento automatico e questa domanda è rimasta nella mia testa per un po 'mentre ho affrontato questo dilemma più volte ogni volta che ho progettato un nuovo algoritmo e io mi sono ritrovato a dedicare una notevole quantità di tempo alla regolazione dei parametri.

Inoltre, penso che la mia domanda qui sia più generale per qualsiasi area in cui gli algoritmi computazionali sono fortemente coinvolti e voglio invitare i pensieri delle persone di tutte le aree interessate.

Volevo darti un esempio concreto, solo così ti aiuta a pensare:

--- Prendi il caso del rilevamento delle caratteristiche (diciamo chiazze circolari o punti salienti). Esegui alcuni filtri (parametri necessari) su scale diverse (parametri scala) e probabilmente soglia la risposta (parametro soglia). Di solito non è possibile ottenere una verità su cui convalidare e quindi sintonizzare automaticamente i parametri in tali scenari.

--- Prendi qualsiasi framework computazionale che coinvolge molti componenti di elaborazione del segnale. Ci sono sempre parametri da mettere a punto e di solito non c'è alcuna verità di base e quando li sintonizzi soggettivamente su un piccolo sottoinsieme casuale del tuo set di dati, un giorno incontrerai il caso a cui non generalizza.

Questo parametro diavolo è più problematico quando si impostano i parametri per alcuni passaggi intermedi dell'algoritmo.

E ho spesso scoperto che non è possibile esprimere il problema di trovare buoni valori per questi parametri come un problema di ottimizzazione con una funzione oggettiva di cui è possibile prendere una derivata e quindi utilizzare algoritmi di ottimizzazione standard per trovare buoni valori.

Inoltre, in molti scenari esporre questi parametri a un utente finale non è un'opzione, poiché spesso sviluppiamo applicazioni / software per utenti finali non computazionali (diciamo biologi, medici) e di solito diventano all'oscuro quando chiedi loro di sintonizzarti a meno che non sia molto intuitivo (come la dimensione approssimativa dell'oggetto).

Per favore, condividi i tuoi pensieri.


1
L'apertura I want to kick up a discussion ...è davvero una buona indicazione del fatto che ciò che stai chiedendo non è adatto al formato * .SE.
Peter K.

Risposte:


2

Supponendo che non v'è una verità a terra, ( almeno teoricamente ) uno dei possibili modi per superare il problema "noia" è una creazione verità a terra "bootstrap". Se hai già un algoritmo decente che fa il lavoro in circa, diciamo l'80% -90% dei casi, puoi eseguire l'algoritmo su un ampio set di istanze e chiedere a un utente di contrassegnare solo gli errori. Questo approccio ha i suoi difetti, come la propensione all'algoritmo.

Tuttavia, ci sono alcuni casi in cui non esiste alcuna verità di base, ma solo diversi compromessi di sistema. Ad esempio, è necessario un sistema di elaborazione delle immagini per produrre un'immagine nitida, accurata con colori e non disturbata. Ovviamente, non puoi averli tutti contemporaneamente. In tal caso, è necessario utilizzare metriche oggettive che possono essere calcolate sul risultato del sistema. (Vedi Imatest , analizzatore DXO per l'elaborazione delle immagini).

Una volta che hai questi, ci sono metodi di ottimizzazione multi-obiettivo che possono creare una mappatura dai compromessi (che sono chiari per l'utente) ai parametri intrinseci.

In ogni caso, non dovresti mai dare all'utente un parametro che non può capire. Se tutto fallisce, codifica semplicemente il parametro.


2

Questo è un problema molto, molto difficile, ma c'è molto lavoro nell'area. Per un esempio, dai un'occhiata a questo articolo di Ramani & Fessler sull'approccio SURE. L'introduzione ha una grande panoramica dei metodi di selezione dei parametri, assicurati di controllare i loro riferimenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.