¿Por qué no solo aprendemos los hiperparámetros?


11

Estaba implementando un documento bastante popular " EXPLICANDO Y APROVECHANDO EJEMPLOS ADVERSARIALES " y en el documento, entrena una función objetiva adversaria

J '' (θ) = αJ (θ) + (1 - α) J '(θ).

Trata a α como un hiperparámetro. α puede ser 0.1, 0.2, 0.3, etc.

Independientemente de este documento específico, me pregunto, ¿por qué no solo incluimos α en nuestros parámetros y aprendemos el mejor α?

¿Cuál es la desventaja de hacerlo? ¿Es por sobreajuste? Si es así, ¿por qué aprender solo 1 parámetro más causa tanto sobreajuste?


Bueno, si el hiperparámetro es un parámetro de la función de costo (y no del proceso de generación de datos DGP), no está claro que los datos por sí mismos contengan información al respecto.
kjetil b halvorsen

1
En muchos casos, usamos los datos para seleccionar observando el rendimiento del modelo en un conjunto de validación. (es decir, un proxy para el error de generalización.)α
Vimal

Respuestas:


8

"¿Por qué no aprendemos los hiperparámetros?"

¡Es una gran pregunta! Trataré de proporcionar una respuesta más general. La respuesta TL; DR es que definitivamente puedes aprender hiperparámetros, solo que no a partir de los mismos datos. Siga leyendo para obtener una respuesta un poco más detallada.


Un hiperparámetro generalmente corresponde a una configuración del algoritmo de aprendizaje, en lugar de uno de sus parámetros. En el contexto del aprendizaje profundo, por ejemplo, esto se ejemplifica por la diferencia entre algo como el número de neuronas en una capa en particular (un hiperparámetro) y el peso de un borde en particular (un parámetro normal y aprendible).

¿Por qué hay una diferencia en primer lugar? El caso típico para convertir un parámetro en un hiperparámetro es que simplemente no es apropiado aprender ese parámetro del conjunto de entrenamiento. Por ejemplo, dado que siempre es más fácil reducir el error de entrenamiento agregando más neuronas, hacer que el número de neuronas en una capa sea un parámetro regular siempre alentaría redes muy grandes, lo cual es algo que sabemos que no siempre es deseable (debido a sobreajuste).

Para su pregunta, no es que no aprendamos los hiperparámetros en absoluto. Dejando a un lado los desafíos computacionales por un minuto, es muy posible aprender buenos valores para los hiperparámetros, e incluso hay casos en los que esto es imprescindible para un buen rendimiento; todo lo que se sugiere en el primer párrafo sugiere que, por definición, no puede usar los mismos datos para esta tarea .

Usando otra división de datos (creando así tres partes disjuntas: el conjunto de entrenamiento, el conjunto de validación y el conjunto de prueba, lo que podría hacer en teoría es el siguiente procedimiento de optimización anidada : en el bucle externo, intenta encontrar los valores para los hiperparámetros que minimizan la pérdida de validación , y en el bucle interno, intenta encontrar los valores para los parámetros regulares que minimizan la pérdida de entrenamiento .

Esto es posible en teoría, pero es muy costoso desde el punto de vista computacional: cada paso del bucle externo requiere resolver (hasta su finalización, o en algún lugar cercano a eso) el bucle interno, que generalmente es computacionalmente pesado. Lo que complica aún más las cosas es que el problema externo no es fácil: por un lado, el espacio de búsqueda es muy grande.

Hay muchos enfoques para superar esto mediante la simplificación de la configuración anterior (búsqueda de cuadrícula, búsqueda aleatoria u optimización de hiperparámetros basada en modelos), pero explicar esto está mucho más allá del alcance de su pregunta. Como el artículo al que ha hecho referencia también lo demuestra, el hecho de que este es un procedimiento costoso a menudo significa que los investigadores simplemente lo omiten por completo, o prueban muy pocas configuraciones manualmente, y finalmente se conforman con la mejor (nuevamente, de acuerdo con el conjunto de validación). Sin embargo, a su pregunta original, sostengo que, si bien es muy simplista y artificial, esta sigue siendo una forma de "aprendizaje".


Hola, gracias por su respuesta. ¿Qué pasa si uso los mismos datos?
Aerin

7

Los hiperparámetros como el de ese documento a menudo se usan para equilibrar múltiples términos en la función de pérdida. Si los hiciera aprendebles, el proceso de optimización simplemente aprendería a asignar todo el peso a términos que son más fáciles de optimizar a costa de términos que son más difíciles de optimizar, lo que anula el punto de equilibrar los términos.

Otra forma de verlo es que la función de pérdida es un sustituto de un objetivo real que es difícil de definir u optimizar, como "generar imágenes de salida debe parecer realista" o "debe ser resistente a ejemplos adversos". En ese caso, el verdadero objetivo no es "encontrar los hiperparámetros para minimizar la pérdida de sustitutos", es "encontrar los hiperparámetros de modo que cuando ejecutamos SGD en el resto de los parámetros para optimizar el sustituto, obtengamos un buen rendimiento en el verdadero objetivo".


4

Como usted preguntó "independientemente del documento", me gustaría tomar un ejemplo más simple: Regresión lineal penalizada (Ridge / Lasso).

Para esos casos, puedo pensar en dos razones: pero primero, tenga en cuenta que hay dos funciones aquí: (F1) La función de pérdida, que es una función analítica del hiperparámetro y los datos (en el documento que ha vinculado, es ; y (F2) una estimación del error de generalización, que depende de la solución óptima para (F1) y el hiperparámetro que seleccionó en (F1).J~

Advertencia: Una mirada superficial al artículo revela que los autores entrenan un clasificador de redes neuronales para el conjunto de datos MNIST. No dice explícitamente cómo elegir el hiperparámetro , pero habría elegido uno que minimiza el error de validación del mejor modelo.αα

  1. La función objetivo para optimizar el hiperparámetro es una expresión que es un proxy para el error de generalización. Esta expresión es difícil de escribir como una función analítica simple que se puede diferenciar, pero se puede evaluar fácilmente en algún momento simplemente resolviendo el problema de optimización subyacente.

  2. Evaluar la función (F2) requiere que resuelva un problema de optimización, que podría ser costoso. Entonces, incluso si puede aproximar el gradiente para que F2 realice el descenso del gradiente, sería costoso y lento. En tales casos, hacer una búsqueda en la cuadrícula suele ser "lo suficientemente bueno".

Dicho esto, existen técnicas para optimizar las funciones objetivas de la caja negra (como F2) al asumir una estructura de suavidad debido a su dependencia del hiperparámetro. Como ejemplo, puede ver esta publicación que muestra cómo el rendimiento de un modelo Lasso varía con su hiperparámetro :λ

Rendimiento del modelo de lazo

(Imagen tomada de esta publicación: https://stats.stackexchange.com/a/26607/54725 )

Algunas referencias:


¿Se está refiriendo específicamente al segundo término en el documento J (θ, x + esign (∇xJ (θ, x, y)) como F2?
Aerin

@Aaron no. es la función de costo; es la función de costo regularizado. Como están creando un clasificador, diría que F2 podría ser la función de pérdida de validación. El documento en realidad dice que eligieron para que sea 0.5, ya que funcionó lo suficientemente bien (no exploraron otros valores de , ni una estrategia para elegir ). ˜ J α α αJJ~ααα
Vimal

Entonces, ¿a qué te refieres en el documento como F1 y F2?
Aerin

F1 es y hubiera usado el error de validación como F2. Actualizaré mi respuesta para aclarar esto. J~
Vimal

1

Veamos cómo se vería la condición de primer orden si conectamos el hiperparámetro e intentamos aprenderlo de la misma forma que de los datos: Por lo tanto, αθ

αJ(θ)=ααJ(θ)+α(1α)J(θ)=J(θ)J(θ)=0
J(θ)=J(θ)

Cuando este hiperparámetro se optimiza, hará que J y J 'se conviertan en la misma función, es decir, pesos iguales. Terminarás con una solución trivial.

Si desea una filosofía más genérica, considere esto: los hiperparámetros generalmente no están enredados con los datos. ¿Que quiero decir? En una red neuronal o incluso en una regresión simple, los parámetros de su modelo interactuarán de alguna manera directamente con los datos: y así sucesivamente en las capas. Verá cómo se enreda en sus datos. Entonces, cuando toma una derivada sobre cualquier de la función objetivo, obtiene puntos de datos que ingresan el resultado de manera no obvia en matriz, arpillera, productos cruzados, etc.

yL=XLβL
aL=σ(yL)
XL+1=aL
βLβ

Sin embargo, si intenta estimar las condiciones de primer orden sobre los hiperparámetros, no obtendrá este efecto. Los derivados de hiperparámetros a menudo operan los fragmentos completos de su modelo, sin mezclar sus partes como derivados sobre parámetros. Es por eso que la optimización de los hiperparámetros a menudo conduce a soluciones triviales como la que le di para el artículo específico. La optimización de los hiperparámetros no perturba su conjunto de datos y lo hace lo suficientemente incómodo como para producir algo interesante.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.