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.
I want to kick up a discussion ...
è davvero una buona indicazione del fatto che ciò che stai chiedendo non è adatto al formato * .SE.