¿Cómo se derivan las funciones de costo para las redes neuronales?

Primero matemos algunas suposiciones malas. Necesita una función de costo para entrenar su red neuronal, por lo que una red neuronal no puede “funcionar bien” sin una. En segundo lugar, no existe una forma específica de “derivar” una función de costo, sea lo que sea que eso signifique. De hecho, puede experimentar con diferentes funciones de costo. Comencemos tratando de entender qué es una función de costo.

Una función de costo puede ser cualquier función que genere un escalar que cuantifique el error del rendimiento de su red neuronal. Por ejemplo, suponga que está tratando de construir una red neuronal para clasificar las imágenes del conjunto de datos MNIST. Su capa final tendría 10 unidades, cada una de las cuales representa la probabilidad de que la imagen sea 0, 1, 2, y así sucesivamente, por lo que puede considerar la salida de la red neuronal como un vector en [math] \ mathbb {R} ^ {10 }[/matemáticas].

Ahora imagine cómo se vería una salida ideal . Supongamos que estamos clasificando esta imagen

y la red neuronal genera un vector [matemática] (0.1,0.05,0.5,0.1,0,0.03,0.02,0,0.1,0.1) [/ matemática]. La mejor respuesta posible sería un vector de esta forma: [matemática] (0,0,1,0,…, 0) [/ matemática], donde la probabilidad de que el dígito sea un 2 es exactamente 1, y la probabilidad de siendo cualquier otro dígito es 0. Esto se conoce como codificación de “uno en caliente”.

Cualquier cosa que cuantifique la diferencia entre los resultados obtenidos y los ideales podría utilizarse potencialmente como una función de costo. Por ejemplo, la longitud de la diferencia de estos dos vectores. Entonces, para un montón de imágenes de entrada [math] x \ in \ mathbb {R} ^ {28 \ times 28} [/ math] con etiquetas one-hot [math] l (x) [/ math] y una red neuronal que genera [math] y (x) \ in \ mathbb {R} ^ {10} [/ math], una posible función de costo podría ser:

[matemáticas] C = \ sum_ {x} || y (x) – l (x) || [/ matemáticas].

La idea clave es que cuanto menor sea [matemática] C [/ matemática], mejor será el rendimiento de la red neuronal. Hemos reducido la tarea de clasificar estas imágenes simplemente tratando de minimizar la función de costo . Siempre que su elección de [matemática] C [/ matemática] cuantifique el rendimiento de su red neuronal de esta manera, puede ser una función de costo potencial. Con suerte, en este punto, está claro por qué necesitamos una función de costo: lo único que hace el descenso de gradiente es proporcionar los medios para minimizar [matemáticas] C [/ matemáticas], y el resultado de esto es que la red neuronal aprende.

Sin embargo, para minimizar con éxito esto, necesitamos algunas otras restricciones sobre lo que puede ser [math] C [/ math]. Una de las más importantes es hacer que [math] C [/ math] sea diferenciable con respecto a todas las salidas (las y ‘s). Esto es necesario para que funcione el descenso de gradiente, y es la razón por la cual una función como [matemáticas] C = \ sum_ {x} || y (x) – l (x) || [/ math] probablemente no sea una buena idea (los valores absolutos no son diferenciables en todas partes). Otra buena restricción es hacer que el costo de muchos insumos sea el promedio del costo de los insumos individuales.

Sin embargo, tenga en cuenta que todavía podemos encontrar más de una función de costo que podríamos usar. Por ejemplo, el error cuadrático medio:

[matemáticas] C = \ frac {1} {2n} \ sum_ {x} ^ {n} || y (x) – l (x) || ^ 2 [/ matemáticas]

Una función de costo ampliamente utilizada, que de hecho es la que usted proporcionó, es la entropía cruzada:

[matemáticas] C = – \ frac {1} {n} \ sum_ {x} ^ {n} \ sum_ {i = 1} ^ {10} [l_i \ ln y_i + (1-l_i) \ ln (1- y_i)] [/ matemáticas]

En su ejemplo, hay un término adicional a la derecha llamado regularización L2, pero no es necesario. Es un detalle penalizar grandes pesos. Por lo general, la entropía cruzada es una mejor opción que el error cuadrático medio, pero esto también se debe a razones que están fuera de tema. Sin embargo, lo que quiero decir es que no existe una función de costo única. Puede usar cualquier cosa siempre que (1) cuantifique el error de su red neuronal de modo que se haga más pequeño a medida que los y se acerquen a sus respectivos l ‘s, y (2) sea explícito y diferenciable con respecto a la salida de la red neuronal .

Recomiendo este libro de Michael Nielsen; hace un gran trabajo explicando todas las cosas que omití y es un buen punto de partida para cualquiera que quiera comenzar con el aprendizaje profundo.

La derivada de la función de costo es lo que se usa para hacer la búsqueda de gradiente. Es decir, la red neuronal está minimizando el costo al buscar en la dirección del gradiente que minimiza este costo. Así que siempre hay una función de costo: es lo que tiene los mínimos que estás buscando.

La función de costo se utiliza para derivar el gradiente. Ejecuta la red neuronal, esto produce ‘[matemáticas] h (\ Theta) [/ matemáticas]’, y luego calcula el gradiente en función de la salida deseada ‘y’ (que en este caso normalmente es 1 o 0). Luego calcula la fórmula para el descenso del gradiente: [matemática] \ frac {\ partial J (\ Theta)} {\ partial \ Theta} [/ math]

Esta función de costo particular se divide en dos partes: la primera parte se llama ‘entropía cruzada’ y se usa para la clasificación. Es el logaritmo de la distribución binomial [matemática] h (\ Theta) ^ y + (1-h (\ Theta)) ^ {(1-y)} [/ matemática], que se utiliza para describir los errores que su red está haciendo (y desea minimizar estos errores). Si combina esto con la función logística como la función de transferencia en la salida de la red, obtendrá un gradiente particularmente agradable: [matemática] h (\ Theta) – y [/ matemática]

La segunda parte es el término ‘regularización’. Establece que, además de minimizar la entropía cruzada, desearía minimizar la magnitud de los pesos. El gradiente de esto con respecto a los pesos es simplemente [matemática] 2 \ Theta [/ matemática].

Por lo tanto, si los combina, esta función de costo en particular conducirá a una regla de aprendizaje de:

[matemáticas] \ Delta \ Theta = h (\ Theta) – y + \ lambda / m \ Theta [/ matemáticas]

Y [math] \ lambda [/ math] es un parámetro de regularización.

La sección 5.5 del libro Deep Learning explica por qué la función de entropía cruzada es una buena opción para el problema de clasificación, y esto cubre el primer término en RHS de la ecuación de Ng. El segundo término es una regularización [matemática] L_2 [/ matemática], ver por ejemplo la ecuación. 5.101 y las explicaciones antes de esta página.

More Interesting

¿Cuál es la diferencia entre los diferentes tipos de funciones de activación para redes neuronales y por qué es importante elegir una sobre otra?

¿Qué son los vectores de características basados ​​en cuadros (como se usan en el reconocimiento de voz)?

¿Es posible entrenar modelos de aprendizaje automático de procesamiento de datos en dispositivos locales y enviar solo el modelo entrenado al servidor?

Cómo explicar intuitivamente los tensores

¿Por qué utilizamos el agrupamiento en el análisis estadístico? ¿Puedes dar una explicación intuitiva o ejemplos intuitivos?

¿Hay nueva información sobre el tema X o la gente sigue copiando y pegando?

¿Cómo se compara Python con R para el análisis de datos y el aprendizaje automático?

¿Cuál es la diferencia entre el descenso en gradiente y el descenso coordinado?

¿Cómo es usar las API de servicios cognitivos de Microsoft?

¿Qué piensa Yoshua Bengio sobre la idea de un algoritmo de aprendizaje único?

En la Bayes Net dada, ¿existe un caso de explicación del fenómeno?

¿Cuáles son algunas habilidades matemáticas altamente relevantes que se requieren si quiero comenzar a investigar en algoritmos de Machine Learning?

Redes neuronales convolucionales: ¿Cuáles son algunos posibles proyectos de cursos de aprendizaje automático de nivel de posgrado que utilizan CNN? Específicamente en el límite de PNL y CV.

¿Qué es el LSTM?

¿Qué debo hacer para comprender las matemáticas y los algoritmos detrás de la propagación inversa, CNN y RNN?