Acabo de aprender acerca de la regularización como un enfoque para controlar el sobreajuste, y me gustaría incorporar la idea en una implementación simple de retropropagación y perceptrón multicapa (MLP) que armé.
Actualmente para evitar un ajuste excesivo, valido cruzado y mantengo la red con la mejor puntuación hasta ahora en el conjunto de validación. Esto funciona bien, pero agregar regularización me beneficiaría en esa elección correcta del algoritmo y parámetro de regularización que haría que mi red converja en un modelo no sobreajustado de manera más sistemática.
La fórmula que tengo para el término de actualización (del curso Coursera ML) se establece como una actualización por lotes, por ejemplo, para cada peso, después de sumar todos los deltas aplicables para todo el conjunto de entrenamiento a partir de la propagación de errores, lambda * current_weight
se agrega un ajuste de antes de la combinación delta se resta al final del lote, donde lambda
está el parámetro de regularización.
Mi implementación de retropropagación utiliza actualizaciones de peso por artículo. Me preocupa que no pueda simplemente copiar el enfoque por lotes, aunque me parece bien intuitivamente. ¿Un término de regularización más pequeño por elemento funciona igual de bien?
Por ejemplo, lambda * current_weight / N
donde N es el tamaño del conjunto de entrenamiento, a primera vista esto parece razonable. Sin embargo, no pude encontrar nada sobre el tema, y me pregunto si eso se debe a que la regularización no funciona tan bien con una actualización por elemento, o incluso tiene un nombre diferente o una fórmula alterada.