Neural Tangent Kernel (NTK)
El núcleo tangente neuronal (NTK) mide cómo responden las predicciones de una red a los cambios en los parámetros y conecta el entrenamiento de redes neuronales con los métodos de núcleos.
El núcleo tangente neuronal (NTK) es una función de similitud que mide cómo responden las salidas de una red neuronal para dos entradas a los mismos pequeños cambios en los parámetros del modelo. Las predicciones de las entradas están fuertemente acopladas cuando sus gradientes con respecto a los parámetros están alineados. Esto conecta el entrenamiento de redes neuronales con los métodos de núcleos, que aprenden mediante similitudes por pares entre ejemplos.
Arthur Jacot, Franck Gabriel y Clément Hongler introdujeron el término en 2018 en Núcleo tangente neuronal: convergencia y generalización en redes neuronales, estableciendo un marco matemático para analizar cómo evolucionan las predicciones durante el entrenamiento.
Cómo funciona el núcleo tangente neuronal#
Para una red neuronal con una salida escalar, calcula la derivada de la salida con respecto a cada parámetro entrenable. Estas derivadas forman un vector de gradiente que describe la sensibilidad de la predicción a los pesos del modelo. El NTK entre dos entradas es el producto escalar de sus vectores de gradiente.
En un conjunto de datos, estos valores por pares forman una matriz de núcleos, también llamada matriz de Gram. Su diagonal mide la sensibilidad de cada predicción a los cambios en los parámetros; las entradas fuera de la diagonal describen el acoplamiento entre distintos ejemplos. Para varias salidas, cada par de entradas produce un bloque que contiene las interacciones entre las coordenadas de salida, como se hace en el cálculo del NTK empírico.
Durante el descenso del gradiente, el núcleo determina cómo la reducción del error de predicción de un ejemplo modifica las predicciones de los demás. Los gradientes pertinentes son derivadas de las salidas de la red; la retropropagación proporciona el mecanismo para calcularlas. A continuación, la función de pérdida determina la dirección y la intensidad de las actualizaciones que corrigen el error.
Ancho infinito, convergencia y generalización#
El ancho de una red es el número de unidades ocultas o de canales en una capa convolucional. Con la parametrización NTK y bajo supuestos adecuados de inicialización y entrenamiento, al aumentar hacia el infinito el ancho de las capas ocultas se obtiene un núcleo límite determinista que permanece constante durante el entrenamiento. El NTK empírico de una red finita se evalúa con sus parámetros reales y puede cambiar a medida que avanza el entrenamiento.
En el régimen de núcleo constante, el entrenamiento sigue la aproximación de primer orden de la red alrededor de la inicialización. Esta es una red linealizada: sus predicciones dependen linealmente de los cambios en los parámetros, pero mantienen una dependencia no lineal de las entradas. El término relacionado entrenamiento perezoso describe un régimen en el que las características tangentes apenas cambian. El aprendizaje de características implica que estas evolucionan sustancialmente durante la optimización.
Con la pérdida cuadrática y el flujo de gradiente con núcleo constante —el límite de tiempo continuo de los pequeños pasos de gradiente—, los errores disminuyen más rápidamente en la dirección de los vectores propios del núcleo con valores propios mayores. Los vectores propios identifican patrones entre ejemplos, y los valores propios determinan la velocidad a la que se aprenden. Esto explica por qué la detención temprana actúa como regularización: limita el ajuste de los componentes que se aprenden lentamente, incluidos los asociados al ruido y al sobreajuste. Las predicciones para entradas no vistas dependen de sus similitudes de núcleo con los datos de entrenamiento.
Aplicaciones y conceptos relacionados#
Los métodos NTK permiten la regresión con núcleos y el análisis de la clasificación de imágenes. El NTK convolucional (CNTK) amplía la construcción a las redes neuronales convolucionales. Sanjeev Arora y sus colaboradores utilizaron el cálculo exacto de CNTK para clasificar en CIFAR-10, ofreciendo una alternativa basada en núcleos al entrenamiento de redes convolucionales finitas.
El núcleo de proceso gaussiano de red neuronal (NNGP) describe la covarianza entre las salidas de redes inicializadas aleatoriamente en el límite de ancho infinito. El NTK describe la dinámica del entrenamiento impulsada por gradientes. De forma similar, el sondeo lineal entrena un clasificador lineal sobre representaciones congeladas; la linealización NTK utiliza como características las derivadas con respecto a los parámetros entrenables seleccionados.
Por tanto, la selección de parámetros modifica el núcleo tangente que rige el entrenamiento. En el ajuste fino de Ultralytics YOLO26, el argumento freeze mantiene fijas las capas seleccionadas, por lo que sus parámetros no aportan direcciones de actualización al núcleo de entrenamiento efectivo.
Cálculo de un NTK empírico#
Este ejemplo de PyTorch calcula el núcleo para dos imágenes de dígitos escritos a mano del conjunto de datos digits incluido en scikit-learn. Instala las dependencias con pip install torch scikit-learn.
import torch
from sklearn.datasets import load_digits
from torch import nn
torch.manual_seed(0)
digits = load_digits()
inputs = torch.tensor(digits.data[:2], dtype=torch.float32) / 16
model = nn.Sequential(nn.Linear(64, 8), nn.Tanh(), nn.Linear(8, 1))
parameters = tuple(model.parameters())
outputs = model(inputs)
# Cada fila del jacobiano contiene las derivadas de los parámetros para una salida.
rows = []
for output in outputs[:, 0]:
gradients = torch.autograd.grad(output, parameters, retain_graph=True)
rows.append(torch.cat([gradient.flatten() for gradient in gradients]))
jacobian = torch.stack(rows)
kernel = jacobian @ jacobian.T
print(kernel)La matriz impresa de 2 x 2 contiene las dos autosensibilidades y su acoplamiento entre ejemplos. Al construirse como jacobian @ jacobian.T, el NTK empírico con salida escalar es simétrico y semidefinido positivo, con un rango limitado tanto por el número de ejemplos como por el número de parámetros entrenables.










