PodaPruning
Cortar las conexiones que casi no se usan para aligerar el modelo
- La poda es eliminar por completo las conexiones que casi no se usan dentro de un modelo. Separa lo que vale la pena conservar de lo que no.
- Un modelo ya entrenado tiene muchísimas conexiones con un valor cercano a cero. Casi no aportan nada, así que borrarlas apenas cambia la respuesta.
- No se corta todo de golpe. Cortar un poco y volver a entrenar, varias veces seguidas, es lo que mantiene el rendimiento sin caer demasiado.
- Existe la forma de borrar conexiones sueltas y dispersas, y la de quitar filas o bloques enteros de una vez. En la práctica, la que suele acelerar de verdad es la segunda.
- Es distinto de la cuantización, que hace más grueso el redondeo de los números. La poda reduce directamente la cantidad.
Contenido
1La analogía
En la carta de un puesto de comida callejera hay unos ochenta platos anotados. Pero al juntar y contar los pedidos de todo un año, resulta que la mitad nunca se pidió ni una sola vez. Son platos que solo existen de nombre, mientras sus ingredientes se echan a perder en el refrigerador.
Así que se borran de la carta los platos que nunca tuvieron pedidos. El espacio de ingredientes se libera, el movimiento en la cocina se acorta, y bajan las confusiones cuando llega un pedido. Lo que recibe el cliente casi no cambia, porque de todos modos solo pedía lo que ya pedía siempre.
Eso sí, borrar cuarenta platos de golpe trae problemas: hasta los que se pedían una vez cada tanto desaparecen, y algún cliente habitual deja de volver. Es más seguro borrar unos diez, esperar un mes y observar, y luego borrar otros diez. Así es la poda: quitar poco a poco lo que casi no se usa.
2En detalle
Por qué hay tantas conexiones que casi no se usan
Un modelo no se construye desde el inicio con el tamaño exacto que necesita. Se arma más grande de lo necesario, con margen de sobra, y así se entrena. Un modelo más grande hace que el entrenamiento avance mejor. Por eso, una vez terminado el entrenamiento, quedan mezcladas conexiones que de verdad aportan a la respuesta con conexiones cuyo valor apenas ronda cerca de cero.
Una conexión con valor cercano a cero casi no suma nada al resultado, multiplique lo que multiplique. Aun así, al calcular, ocupa el mismo espacio y hace exactamente la misma multiplicación que cualquier otra. No es raro que este tipo de conexiones supere la mitad del total.
La poda elige y corta estas conexiones. En el lugar cortado queda un cero, una marca que permite saltárselo directamente durante el cálculo.
Cómo elegir qué recortar
El criterio más habitual es el tamaño del valor. Se ordenan de menor a mayor cercanía a cero y se corta desde abajo. Cuesta poco esfuerzo y funciona bastante bien.
Fijarse solo en el valor también tiene sus fallos. Si un valor pequeño está justo en un punto de paso importante, cortarlo hace que todo lo de después se derrumbe. Por eso también se mide, de forma directa, cuánto se altera la respuesta al quitar esa conexión, y se elige con ese dato. También importa que la cantidad que se puede recortar varía según la capa: las capas de más adelante suelen tener poco margen, y las de más atrás, bastante más.
Cortar un poco y volver a entrenar
Cortar mucho de una sola vez hace que la respuesta empeore notoriamente. Por eso se corta un poco y se vuelve a entrenar brevemente con las conexiones que quedan, para que llenen el hueco dejado. Estos dos pasos se repiten varias veces.
Aunque se termine recortando la misma cantidad, hacerlo así reduce muchísimo la pérdida de rendimiento: las conexiones que quedan se reparten poco a poco el trabajo que hacían las que se fueron. En cambio, si se corta y no se vuelve a entrenar, la respuesta empeora en proporción directa a lo recortado.
Poda dispersa y poda en bloque
Si se cortan las conexiones una por una, las que quedan terminan repartidas por toda la tabla. Aunque se hayan vaciado muchas casillas, la forma de la tabla sigue siendo la misma, así que un dispositivo de cálculo normal la sigue recorriendo entera. El tamaño baja, pero la velocidad no suele mejorar tanto como se esperaba.
Por eso también se usa la poda que quita filas o bloques enteros de una vez: se elimina completa una neurona que casi no se usa, o un filtro que casi no reacciona en un modelo de imágenes. Como la tabla se vuelve realmente más pequeña, el cálculo también baja de verdad. A cambio, como se elimina en bloque, el rendimiento se resiente más, así que hay que ser más cuidadoso con cuánto se recorta.
En qué se diferencia de la cuantización
Las dos aligeran el modelo, pero tocan cosas distintas. La cuantización no descarta ningún número: solo hace más grueso el redondeo con el que se anota. La poda deja el redondeo como estaba y reduce, en cambio, la cantidad de números.
Visto en la carta del puesto de comida: la cuantización deja todos los platos donde están y redondea los precios a la centena más cercana; la poda borra de la carta los platos que no se piden. No se estorban entre sí, así que a veces se usan juntas: primero se borra lo que no se usa, y después se redondea lo que queda.
3Con más precisión
La poda es una técnica que elimina, en una red ya entrenada, los pesos o neuronas que aportan poco, para dejar una estructura dispersa. Se divide entre la poda no estructurada, que borra pesos individuales, y la poda estructurada, que elimina canales o capas enteras; esta última tiene más probabilidades de traducirse en una mejora real de velocidad. También se discute ampliamente la idea de que dentro de un modelo grande ya existe, desde el principio, un esqueleto pequeño capaz de entrenarse bien por sí solo.
La analogía también tiene sus límites. El plato borrado de la carta desaparece de verdad, porque el cliente ya no puede pedirlo, pero una conexión cortada de forma dispersa queda como un cero dentro de la tabla, así que para ahorrar espacio de verdad hay que ordenarla aparte. Además, en el puesto de comida el historial de pedidos equivale a popularidad, mientras que una conexión de un modelo se juzga no por cuánto se usó, sino por cuánto altera el resultado: puede haber conexiones que casi nunca se usan pero resultan decisivas la vez que sí se usan. Sea cual sea el método elegido, después de recortar siempre hay que volver a evaluar el modelo.
4Pruébalo
- Netron (visor de arquitecturas de modelos) ailearn.space Abre un archivo de modelo y mira cuántas conexiones tiene cada capa; ahí se nota dónde hay margen para recortar
- TensorFlow Playground (laboratorio de redes neuronales) ailearn.space Entrena quitando neuronas y entradas una por una. Algunas no cambian el resultado al quitarlas, y otras lo derrumban al instante
5Malentendidos comunes
Es fácil pensar que la poda reduce el modelo al azar, pero en realidad es un proceso cuidadoso: se elige lo que menos aporta, se recorta poco a poco y se vuelve a entrenar.
Es fácil pensar que quitar conexiones acelera el modelo de inmediato, pero en realidad, si se recorta de forma dispersa, la forma de la tabla no cambia y la velocidad casi no mejora.
Es fácil pensar que poda y cuantización son lo mismo, pero en realidad una reduce la cantidad de números y la otra hace más grueso el redondeo con el que se anotan.
7Resumen en una línea
En resumenLa poda elige las conexiones que casi no aportan a la respuesta, las elimina y vuelve a entrenar con lo que queda para dejar el modelo más liviano.
¿Has visto un error o tienes una analogía mejor? Sugerir una corrección · Última actualización2026-09-02