Si tuviera que usar el descenso de gradiente por lotes para el entrenamiento de una red neuronal artificial en lugar del descenso de gradiente estocástico, que es mejor para evitar los mínimos locales, ¿podría mejorar la resistencia para quedarse atrapado en los mínimos locales al agregar ruido aleatorio a la función de error?

Sí.

Esta idea ha sido explorada ampliamente hasta ahora, y es un área activa de investigación. Presentaré brevemente 3 ejemplos. Esperemos que esto también ayude a responder su pregunta de seguimiento.

Regularización
Resulta que ciertas formas de ruido aleatorio son equivalentes a regularizar el objetivo. Finalmente, la regularización ayuda a evitar el sobreajuste; en cierto modo, esto ayuda a la ANN a esquivar los malos óptimos locales correspondientes a las regiones que se ajustan demasiado a los datos de capacitación.

Por ejemplo, agregar un regularizador L2 a los pesos de una red neuronal es equivalente a asumir que los pesos se extrajeron de iid gaussianos. Un regularizador L1 es equivalente a suponer que los pesos se extrajeron de iid exponenciales dobles.

De manera más general, puede demostrar que esto es cierto para cualquier estimador; por ejemplo, agregar un regularizador L2 a la regresión logística es equivalente a un gaussiano anterior en los pesos.

Autoencoders de Denoising
Desengrasar autoencoders es una aplicación más directa de su pregunta; La idea aquí es que tenemos algunos vectores de datos [math] \ vec {x} [/ math] para los que nos gustaría aprender una representación de nivel superior (cada característica debe estar entre 0 y 1). Para aprender esta representación, agregamos una sola capa oculta [matemática] h [/ matemática] y configuramos la capa de salida [matemática] \ vec {\ hat {x}} [/ matemática] para que tenga la misma dimensionalidad que la capa oculta. Generalmente utilizamos activadores sigmoides y minimizamos la entropía cruzada entre [math] \ vec {x} [/ math] y [math] \ vec {\ hat {x}} [/ math]. Cada neurona en la capa oculta corresponde a una única característica aprendida en la representación de nivel superior; idealmente, al final del día, tendrán interpretaciones significativas.

En la práctica, esto no funciona tan bien, porque los pesos pueden “trabajar juntos” de manera determinista para minimizar el objetivo. En última instancia, lo que realmente queremos es un conjunto robusto de características independientes que representen bien los datos. Para lograr esto, los autoencoders de eliminación de ruido establecen entradas de [math] \ vec {x} [/ math] en 0 con cierta probabilidad (generalmente alrededor de 0.1 – 0.4). Al hacer esto, obtenemos características que son mucho más robustas; en el conjunto de datos de dígitos MNIST, por ejemplo, obtenemos características de trazo de lápiz.

Abandonar
Los autoencoders de denoising se incluyen en una clase más amplia de métodos basados ​​en abandono introducidos por Geoffrey Hinton; en lugar de eliminar solo las entradas, también podemos intentar colocar valores de capa ocultos en 0. Concretamente, si tenemos una capa oculta con algunas unidades H, la salida de cada unidad se establece en 0 con probabilidad [matemática] p [/ matemática]. En el caso de la capa oculta, [math] p [/ math] generalmente se establece en 0.5.

Para los codificadores automáticos sigmoides, resulta que hay una buena prueba de que entrenar una red neuronal con deserción es equivalente a entrenar todas las redes neuronales cuyas capas ocultas son un subconjunto de las unidades H y promediar las salidas de esas redes. Esto es bastante notable, ya que efectivamente hay redes neuronales [matemáticas] 2 ^ H [/ matemáticas] que se están entrenando simultáneamente (aunque con pesos compartidos). Esperaríamos que tal idea funcione bien en la práctica dado que se ha demostrado que el promedio del modelo funciona muy bien con las redes neuronales. En la práctica, la deserción funciona bien y agrega una mejora del 1-2% o más a la clasificación.

PD: Probablemente valga la pena mencionar si te estabas preguntando: por lo general, no es una buena idea ejecutar el descenso de gradiente por lotes con redes neuronales a menos que (1) estés depurando o (2) estés trabajando con pequeños conjuntos de datos, ya que el descenso de gradiente por lotes tiende a ser muy lento, y el descenso de gradiente estocástico (SGD) con lotes moderadamente grandes tiende a producir actualizaciones decentes de todos modos.

Si SGD no produce convergencia, puede intentar calcular el ángulo entre el gradiente de lote y el gradiente SGD y ver si está cerca de 0. Siempre y cuando el ángulo sea consistentemente inferior a 90, SGD debería estar bien.