Entrenando una red neuronal  

  RSS
admin
(@admin)
Miembro Admin

Ahora aprenderemos c贸mo entrenar una red neuronal. Tambi茅n aprenderemos sobre el algoritmo de propagaci贸n y el pase hacia atr谩s en Deep Learning usando Python.

Tenemos que encontrar los valores 贸ptimos de los pesos de una red neuronal para obtener el resultado deseado. Para entrenar una red neuronal, utilizamos el m茅todo iterativo de descenso de gradiente. Comenzamos inicialmente con la inicializaci贸n aleatoria de los pesos. Despu茅s de la inicializaci贸n aleatoria, hacemos predicciones en alg煤n subconjunto de los datos con el proceso de propagaci贸n directa, calculamos la funci贸n de costo correspondiente 'C', y actualizamos cada peso 鈥榳鈥 en una cantidad proporcional a dC/dw, es decir, la derivada de las funciones de costo y el peso. La constante de proporcionalidad se conoce como la tasa de aprendizaje.

Los gradientes se pueden calcular de manera eficiente utilizando el algoritmo de propagaci贸n inversa. La observaci贸n clave de propagaci贸n hacia atr谩s o apuntalamiento hacia atr谩s es que, debido a la regla de la cadena de diferenciaci贸n, el gradiente en cada neurona en la red neuronal se puede calcular usando el gradiente en las neuronas, tiene bordes salientes 鈥榓鈥. Por lo tanto, calculamos los gradientes al rev茅s, es decir, primero calculamos los gradientes de la capa de salida, luego la capa oculta m谩s alta, seguida por la capa oculta anterior, y as铆 sucesivamente, terminando en la capa de entrada.

El algoritmo de propagaci贸n inversa se implementa principalmente utilizando la idea de un gr谩fico computacional, donde cada neurona se expande a muchos nodos en el gr谩fico computacional y realiza una operaci贸n matem谩tica simple como la suma y la multiplicaci贸n. El gr谩fico computacional no tiene ning煤n peso en los bordes; todos los pesos se asignan a los nodos, por lo que los pesos se convierten en sus propios nodos. El algoritmo de propagaci贸n hacia atr谩s se ejecuta luego en el gr谩fico computacional. Una vez que se completa el c谩lculo, solo se requieren los gradientes de los nodos de peso para la actualizaci贸n. El resto de los gradientes se pueden descartar.

T茅cnica de optimizaci贸n de descenso de gradiente

Una funci贸n de optimizaci贸n com煤nmente utilizada que ajusta los pesos de acuerdo con el error que causaron se llama "descenso de gradiente".

El degradado es otro nombre para la pendiente, y la pendiente, en un gr谩fico x-y, representa c贸mo dos variables se relacionan entre s铆: el aumento sobre la carrera, el cambio en la distancia sobre el cambio en el tiempo, etc. En este caso, la pendiente es la relaci贸n entre el error de la red y un solo peso; es decir, c贸mo cambia el error a medida que se var铆a el peso.

Para decirlo de manera m谩s precisa, queremos encontrar qu茅 peso produce el menor error. Queremos encontrar el peso que represente correctamente las se帽ales contenidas en los datos de entrada y los traduzca a una clasificaci贸n correcta.

A medida que aprende una red neuronal, lentamente ajusta muchos pesos para que puedan asignar correctamente la se帽al al significado. La relaci贸n entre Error de red y cada uno de esos pesos es una derivada, dE/dw que calcula la medida en que un ligero cambio en un peso causa un ligero cambio en el error.

Cada peso es solo un factor en una red profunda que involucra muchas transformaciones; la se帽al del peso pasa a trav茅s de activaciones y sumas en varias capas, por lo que usamos la regla de cadena del c谩lculo para trabajar a trav茅s de las activaciones y salidas de la red. Esto nos lleva al peso en cuesti贸n y su relaci贸n con el error general.

Dadas dos variables, error y peso, est谩n mediadas por una tercera variable llamada activaci贸n, a trav茅s de la cual se pasa el peso. Podemos calcular c贸mo un cambio en el peso afecta un cambio en el error al calcular primero c贸mo un cambio en la activaci贸n afecta un cambio en el Error, y c贸mo un cambio en el peso afecta un cambio en la activaci贸n.

La idea b谩sica del aprendizaje profundo no es m谩s que eso: ajustar los pesos de un modelo en respuesta al error que produce, hasta que ya no pueda reducir el error.

La red profunda se entrena lentamente si el valor del gradiente es peque帽o, y r谩pido si el valor es alto. Cualquier inexactitud en la capacitaci贸n conduce a resultados imprecisos. El proceso de entrenamiento de las redes desde la salida a la entrada se denomina propagaci贸n de retorno o back prop. Sabemos que la propagaci贸n hacia adelante comienza con la entrada y avanza. Back prop hace el inverso/opuesto calculando el gradiente de derecha a izquierda.

Cada vez que calculamos un gradiente, usamos todos los gradientes anteriores hasta ese punto.

Comencemos por un nodo en la capa de salida. El borde usa el gradiente en ese nodo. A medida que regresamos a las capas ocultas, se vuelve m谩s complejo. El producto de dos n煤meros entre 0 y 1 le da un n煤mero m谩s peque帽o. El valor del gradiente se hace cada vez m谩s peque帽o y, como resultado, el soporte trasero requiere mucho tiempo para entrenar y la precisi贸n sufre.

Desaf铆os en los algoritmos de aprendizaje profundo

Existen ciertos desaf铆os tanto para las redes neuronales superficiales como para las redes neuronales profundas, como el sobreajuste y el tiempo de c谩lculo. Los DNN se ven afectados por el sobreajuste debido al uso de capas adicionales de abstracci贸n que les permiten modelar dependencias raras en los datos de entrenamiento.

Durante el entrenamiento se aplican m茅todos de regularizaci贸n, como abandono, detenci贸n temprana, aumento de datos, aprendizaje de transferencia para combatir el sobreajuste. La omisi贸n de regularizaci贸n omite al azar unidades de las capas ocultas durante el entrenamiento, lo que ayuda a evitar dependencias raras. Los DNN tienen en cuenta varios par谩metros de entrenamiento, como el tama帽o, es decir, el n煤mero de capas y el n煤mero de unidades por capa, la tasa de aprendizaje y los pesos iniciales. Encontrar par谩metros 贸ptimos no siempre es pr谩ctico debido al alto costo en tiempo y recursos computacionales. Varios hacks, como los lotes, pueden acelerar el c谩lculo. La gran potencia de procesamiento de las GPU ha ayudado significativamente al proceso de entrenamiento, ya que los c谩lculos matriciales y de vectores requeridos se ejecutan bien en las GPU.

Para continuar viendo el resto de contenido por favor Reg铆strate o Inicia Sesi贸n

This topic was modified hace 7 meses 2 times by admin
This topic was modified hace 6 meses by admin
This topic was modified hace 4 meses 2 times by admin
Citar
Respondido : 02/10/2018 5:16 pm
Share:
  
Trabajando

Por favor Iniciar Sesi贸n o Registro