Tendencias del momento
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Eliminé el 74% de las neuronas de una red neuronal.
Esto redujo la precisión en solo un 0.50%.
Aquí hay un desglose (con código):
Una red neuronal entrenada siempre tiene neuronas que no contribuyen sustancialmente al rendimiento.
Pero aún consumen memoria.
Estas se pueden eliminar sin comprometer significativamente la precisión.
¡Veamos cómo identificarlas!
Aquí están los pasos:
Paso 1) Entrena la red neuronal como de costumbre.
Paso 2) Pasa el conjunto de validación a través de la red entrenada, y para cada neurona en las capas ocultas, calcula:
- La activación promedio
- La varianza de las activaciones (si las activaciones pueden ser -ve)
Revisa esto👇

Paso 3) Poda las neuronas que tienen una media y varianza de activación cercanas a cero, ya que tienen poco impacto en la salida del modelo.
Idealmente, traza el rendimiento a través de varios umbrales de poda para seleccionar el modelo que se ajuste a tus compromisos entre tamaño y precisión.
Revisa esto 👇

Veamos el código.
Comenzamos definiendo una red neuronal simple y la entrenamos.
Dado que calcularemos las activaciones a nivel de neurona más adelante para el podado, devolvemos todas las activaciones intermedias en la pasada hacia adelante.
Revisa esto👇

A continuación, definimos dos listas con tres elementos:
- Una almacenará la media de las activaciones
- Otra almacenará la desviación estándar de las activaciones
Pasamos el conjunto de validación a través de nuestro modelo para calcular estas estadísticas para cada capa oculta.
Mira esto 👇

En este punto, vamos a crear un gráfico de distribución de las estadísticas a nivel de neuronas que generamos anteriormente.
Como se muestra a continuación, la mayoría de las activaciones promedio de las neuronas y su desviación estándar están fuertemente distribuidas alrededor de valores cercanos a cero.
Intentemos podarlas a continuación.

Para la poda, iteramos sobre una lista de umbrales y:
- Creamos una nueva red y transferimos los pesos que superan el umbral.
- Evaluamos la nueva red y calculamos el total de parámetros.
- Agregamos los resultados a una lista.
Revisa esto 👇

Esta tabla compara la precisión del modelo podado y la reducción de tamaño en varios umbrales en relación con el modelo original.
Con media=0.1 y desviación estándar=0.4:
- La precisión del modelo disminuye en un 0.08%.
- El tamaño del modelo se reduce en un 62%.
Esa es una gran reducción.
Mira esto 👇

Aquí hay otro resultado interesante.
Con media=0.5 y desviación estándar=1:
- La precisión del modelo disminuye en un 0.5%.
- El tamaño del modelo se reduce en un 74%.
Así que, esencialmente, obtenemos un rendimiento casi similar con 1/4 de los parámetros.
Mira esto 👇

Por supuesto, hay una compensación entre precisión y tamaño. A medida que reducimos el tamaño, su precisión disminuye (mira el video).
Pero en la mayoría de los casos, la precisión no es la única métrica que optimizamos.
En cambio, varias métricas operativas como la eficiencia, la memoria, etc., son los factores clave.
48,63K
Parte superior
Clasificación
Favoritos