Pregunta:
Quiero iniciar una discusión sobre cómo las personas establecen parámetros algorítmicos cuando no es posible la validación contra la verdad fundamental (tal vez porque la verdad fundamental simplemente no se puede obtener o es muy difícil / tediosa de obtener).
He leído numerosos artículos e implementado los algoritmos subyacentes en los que se dice que un conjunto de parámetros se han establecido "empíricamente", y a menudo descubrí que estos son los que afectan la generalidad del algoritmo (aunque La teoría subyacente al método es elegante, atractiva y sólida).
Le agradecería si pudiera compartir sus pensamientos. Y, no hay una respuesta correcta o incorrecta para esta pregunta. Solo quiero saber cómo todos los demás lidian con esto.
Antecedentes / Fuente de la pregunta:
Soy un científico de la computación que trabaja en las áreas de análisis de imágenes, visión por computadora y aprendizaje automático y esta pregunta ha estado en el fondo de mi mente por un tiempo, ya que me he enfrentado a este dilema una y otra vez cada vez que diseño un nuevo algoritmo y yo Me encontré pasando una cantidad considerable de tiempo ajustando los parámetros.
Además, creo que mi pregunta aquí es más general en cualquier área donde los algoritmos computacionales están muy involucrados, y quiero invitar a los pensamientos de personas de todas las áreas interesadas.
Quería darte un ejemplo concreto, solo para que te ayude a pensar:
--- Tomemos el caso de la detección de características (digamos gotas circulares o puntos sobresalientes). Ejecuta algunos filtros (necesita parámetros) a diferentes escalas (parámetros de escala) y probablemente limita la respuesta (parámetro de umbral). Por lo general, no es posible obtener una verdad básica para validar y, por lo tanto, ajustar automáticamente sus parámetros en tales escenarios.
--- Tome cualquier marco computacional que implique muchos componentes de procesamiento de señal. Siempre hay parámetros para ajustar y, por lo general, no hay una verdad básica y cuando los sintoniza subjetivamente en un pequeño subconjunto aleatorio de su conjunto de datos, algún día encontrará el caso al que no se generaliza.
Este demonio de parámetros es más problemático cuando configura parámetros para algunos pasos intermedios en su algoritmo.
Y a menudo descubrí que no es posible plantear el problema de encontrar buenos valores para estos parámetros como un problema de optimización con una función objetiva de la que puede tomar una derivada y, por lo tanto, utilizar algoritmos de optimización estándar para encontrar buenos valores.
Además, en muchos escenarios, exponer estos parámetros a un usuario final no es una opción, ya que a menudo desarrollamos aplicaciones / software para usuarios finales no computacionales (digamos biólogos, médicos) y generalmente no tienen idea cuando les pides que sintonicen a menos que sea muy intuitivo (como un tamaño de objeto aproximado).
Por favor comparte tus pensamientos.
fuente
I want to kick up a discussion ...
es realmente una buena indicación de que lo que estás preguntando no es adecuado para el formato * .SE.Respuestas:
Suponiendo que no es una realidad del terreno, ( al menos en teoría ) una de las posibles formas de superar el problema "aburrimiento" es un "arranque" creación realidad del terreno. Si ya tiene un algoritmo decente que hace el trabajo en aproximadamente el 80% -90% de los casos, puede ejecutar su algoritmo en un gran conjunto de instancias y pedirle al usuario que marque solo los errores. Este enfoque tiene sus propios defectos, como el sesgo hacia su algoritmo.
Sin embargo, hay algunos casos en los que no hay ninguna verdad básica, solo diferentes compensaciones del sistema. Por ejemplo, se requiere un sistema de procesamiento de imagen para generar una imagen nítida, precisa del color y no ruidosa. Obviamente, no puedes tenerlos todos al mismo tiempo. En tal caso, debe utilizar métricas objetivas que se puedan calcular sobre el resultado de su sistema. (Ver Imatest , analizador DXO para el procesamiento de imágenes).
Una vez que tenga estos, existen métodos de optimización de objetivos múltiples que pueden crear un mapeo desde las compensaciones (que son claras para el usuario) hasta los parámetros intrínsecos.
En cualquier caso, nunca debe darle al usuario un parámetro que no pueda entender. Si todo falla, simplemente codifique el parámetro.
fuente
Este es un problema muy, muy difícil, pero hay mucho trabajo en el área. Por ejemplo, eche un vistazo a este documento de Ramani & Fessler sobre el enfoque SURE. La introducción tiene una excelente visión general de los métodos de selección de parámetros, asegúrese de revisar sus referencias.
fuente