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.
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.