Si clasifica todos los pesos de una red neuronal entrenada en orden ascendente, ¿cómo se vería la curva de los datos ordenados?

Tomemos a Alexnet, por ejemplo, y consideremos el peso de la segunda capa convolucional. Inicialmente están inicializados con distribución gaussiana para que el histograma se vea así

Después de 1 época de entrenamiento, los pesos crecerán casi 10 veces y su distribución es más amplia y nítida (ya que gran parte de los pesos permanece cerca de 0)

Avancemos rápidamente a la época 50 cuando alcanzamos el objetivo de precisión de top-1 57%. Las partes pequeñas de los pesos aumentaron ligeramente, pero incluso la parte más grande está cerca de 0:

Esta distribución lleva a la idea de “redes ternarias” cuando los pesos tienen solo 3 valores (-1; 0; 1).

También es interesante observar la distribución de pesos gradientes dE / dw. Al principio (primera iteración) los gradientes son solo ruido normal

Después de 1 época, son mucho más grandes con una distribución más nítida:

Y al final se hicieron aún más amplios:

PD. Muchas gracias a Ahmad Kiswani por estos histogramas.

Ciertamente, no sería un sigmoide ya que eso significaría primero que hay un valor máximo / mínimo posible para los pesos y que hay más valores fuera del origen que en el origen. Esto último es en teoría posible, aunque no es cierto en general.
Es más fácil hablar de pesos en términos de una distribución, por ejemplo, un histograma en lugar de la curva de valores ordenados. La distribución dependerá en gran medida del tipo de regularización utilizada. Si se utiliza la regularización L2, se favorecerá una distribución gaussiana para los pesos. Si se utiliza la regularización L1, se favorecerá una distribución laplaciana para los pesos. En ambos casos, la curva de valores ordenados sobre la que estaba preguntando se vería “similar” a una función de bronceado.
En general, se prefieren distribuciones sin muchos valores grandes, ya que un gran peso significa que la red responde muy fuertemente a una característica muy específica, lo que constituye un sobreajuste.

Creo que estás hablando de un histograma. La respuesta, por supuesto, es que depende.

La siguiente respuesta asume el entrenamiento con descenso de gradiente y la inicialización o inicialización de Xavier a valores muy pequeños. La mayoría de las variaciones en el descenso del gradiente no lo cambiarán mucho. El entrenamiento a través de un algoritmo genético requiere un tipo de análisis muy diferente, pero no espero que los resultados sean muy diferentes.

La regularización de L2 es equivalente a colocar un Gaussiano medio-0 antes en los pesos, por lo que al usar la regularización de L2, puede esperar que los pesos tengan una distribución aproximadamente normal (precisamente porque ha afirmado que sí lo espera). El histograma parece una curva de campana. Eso significa que la función de distribución acumulativa “parece” un sigmoide, pero no lo es. El CDF de cualquier distribución simétrica, unimodal y de varianza finita de media cero se verá como un sigmoide para el ojo humano.

Por supuesto, en la primera capa, puede tener características de importancia variable. La distribución de los pesos correspondientes a cualquier característica individual será aproximadamente normal, pero cuando los pones todos en un conjunto de datos, en realidad obtienes una mezcla de gaussianos. En el caso de las redes convolucionales, no se obtiene esta mezcla porque los pesos no corresponden a características individuales.

En capas más profundas, las características aprendidas tendrán aproximadamente la misma importancia. Esto significa que cuando solo mira los pesos en una capa más profunda, probablemente obtendrá una distribución más o menos normal. En mi experiencia, esto comienza tan pronto como la segunda capa.

Los datos no normalizados y los conjuntos de datos extraños pueden descartar cualquiera de estas pautas.

More Interesting

¿Cuáles son los beneficios de los algoritmos? No los encuentro importantes.

¿Cuáles son los mejores algoritmos de Real Space Renormalization Group?

¿Cuáles son los algoritmos propuestos para la detección de revisiones falsas en el análisis de sentimientos?

En el 8 rompecabezas, ¿por qué solo es posible alcanzar la mitad de todas las combinaciones posibles desde cualquier estado dado?

Si sabemos cómo funciona un algoritmo de hash de contraseña en particular, ¿por qué no podemos simplemente crear una contraseña que genere el mismo hash?

¿Cuál es la diferencia entre un algoritmo de autoaprendizaje y un algoritmo de IA?

¿Cómo funciona la recursividad en el árbol de búsqueda binaria en orden? ¿Cómo se pueden explicar las llamadas recursivas, sin resumirlas como llamadas de pila?

¿Qué sucede cuando hay un ciclo negativo en el gráfico?

¿Qué es mejor si necesito elegir un camino para mi carrera, algoritmos y estructuras de datos, o tecnologías de big data, en las que estoy trabajando actualmente?

¿Cómo entiende un algoritmo de aprendizaje por refuerzo que es castigado?

¿Cuál es el propósito de construir un árbol de expansión mínimo?

¿Cómo podemos lograr O (nlogn) / O (n) para ThePalindrome (Topcoder SRM 427)?

¿Cómo los algoritmos de programación dinámica son mejores que otros algoritmos?

Tiene dos números binarios de tamaño n cada uno, ¿cuántas operaciones se necesitan para sumarlos?

¿Cuál es la diferencia entre el recorrido del gráfico dirigido y el no dirigido (específicamente en C)?