Neural Tangent Kernel (NTK)
Kernel tiếp tuyến thần kinh (NTK) đo lường cách các dự đoán của mạng phản hồi với những thay đổi về tham số, kết nối quá trình huấn luyện mạng nơ-ron với các phương pháp kernel.
Kernel tiếp tuyến thần kinh (NTK) là một hàm độ tương đồng đo lường cách đầu ra mạng nơ-ron của hai đầu vào phản hồi với cùng những thay đổi nhỏ trong tham số model. Dự đoán của các đầu vào có mức độ liên kết chặt chẽ khi gradient theo tham số của chúng cùng hướng. Điều này kết nối quá trình huấn luyện mạng nơ-ron với các phương pháp kernel, vốn học thông qua độ tương đồng theo từng cặp giữa các mẫu.
Arthur Jacot, Franck Gabriel và Clément Hongler đã đưa ra thuật ngữ này vào năm 2018 trong bài Kernel tiếp tuyến thần kinh: Hội tụ và khả năng khái quát hóa trong mạng nơ-ron, thiết lập một khuôn khổ toán học để phân tích cách các dự đoán biến đổi trong quá trình huấn luyện.
Cách Kernel tiếp tuyến thần kinh hoạt động#
Với một mạng nơ-ron có đầu ra vô hướng, hãy tính đạo hàm của đầu ra theo từng tham số có thể huấn luyện. Các đạo hàm này tạo thành một vector gradient mô tả độ nhạy của dự đoán đối với trọng số model. NTK giữa hai đầu vào là tích vô hướng của các vector gradient tương ứng.
Trên một tập dữ liệu, các giá trị theo từng cặp này tạo thành một ma trận kernel, còn gọi là ma trận Gram. Các phần tử trên đường chéo đo độ nhạy của từng dự đoán đối với những thay đổi về tham số; các phần tử ngoài đường chéo mô tả mức độ liên kết giữa những mẫu khác nhau. Với nhiều đầu ra, mỗi cặp đầu vào tạo ra một khối chứa các tương tác giữa những tọa độ đầu ra, như được sử dụng trong tính toán NTK thực nghiệm.
Trong quá trình gradient descent, kernel xác định việc giảm sai số dự đoán của một mẫu làm thay đổi các dự đoán ở những mẫu khác như thế nào. Các gradient liên quan là đạo hàm của đầu ra mạng; lan truyền ngược cung cấp cơ chế tính đạo hàm. Sau đó, hàm mất mát xác định hướng và cường độ của các cập nhật nhằm hiệu chỉnh sai số.
Độ rộng vô hạn, hội tụ và khả năng khái quát hóa#
Độ rộng của một mạng là số lượng đơn vị ẩn, hoặc số kênh trong một lớp tích chập. Với tham số hóa NTK cùng các giả định phù hợp về khởi tạo và huấn luyện, việc tăng độ rộng của các lớp ẩn tiến tới vô hạn sẽ tạo ra một kernel giới hạn xác định, không đổi trong quá trình huấn luyện. NTK thực nghiệm của một mạng hữu hạn được đánh giá tại các tham số thực tế của mạng và có thể thay đổi khi quá trình huấn luyện diễn ra.
Trong chế độ kernel không đổi, quá trình huấn luyện tuân theo xấp xỉ bậc nhất của mạng quanh điểm khởi tạo. Đây là một mạng được tuyến tính hóa: dự đoán phụ thuộc tuyến tính vào các thay đổi tham số, đồng thời vẫn phụ thuộc phi tuyến vào đầu vào. Thuật ngữ liên quan huấn luyện lười mô tả chế độ trong đó các đặc trưng tiếp tuyến thay đổi rất ít. Học đặc trưng bao gồm việc các đặc trưng đó tiến hóa đáng kể trong quá trình tối ưu hóa.
Với hàm mất mát bình phương sai số trong dòng gradient của kernel không đổi—giới hạn thời gian liên tục của các bước gradient nhỏ—sai số giảm nhanh nhất theo các vector riêng của kernel có trị riêng lớn hơn. Vector riêng xác định các mẫu trên các ví dụ, còn trị riêng quyết định tốc độ học các mẫu đó. Điều này giải thích vì sao dừng sớm đóng vai trò điều chuẩn hóa: phương pháp này hạn chế việc khớp các thành phần học chậm, bao gồm cả những thành phần liên quan đến nhiễu và quá khớp. Dự đoán trên các đầu vào chưa thấy phụ thuộc vào độ tương đồng kernel của chúng với dữ liệu huấn luyện.
Ứng dụng và các khái niệm liên quan#
Các phương pháp NTK hỗ trợ hồi quy kernel và phân tích phân loại ảnh. NTK tích chập (CNTK) mở rộng cấu trúc này cho mạng nơ-ron tích chập. Sanjeev Arora và các cộng sự đã sử dụng tính toán CNTK chính xác để phân loại trên CIFAR-10, cung cấp một phương pháp đối sánh dựa trên kernel với việc huấn luyện các mạng tích chập hữu hạn.
Kernel quá trình Gaussian của mạng nơ-ron (NNGP) mô tả hiệp phương sai giữa các đầu ra mạng được khởi tạo ngẫu nhiên trong giới hạn độ rộng vô hạn. NTK mô tả động lực huấn luyện do gradient chi phối. Tương tự, thăm dò tuyến tính huấn luyện một bộ phân loại tuyến tính trên các biểu diễn được đóng băng; tuyến tính hóa NTK sử dụng đạo hàm theo các tham số có thể huấn luyện được chọn làm đặc trưng.
Do đó, việc chọn tham số làm thay đổi kernel tiếp tuyến chi phối quá trình huấn luyện. Trong quá trình tinh chỉnh Ultralytics YOLO26, đối số freeze giữ cố định các lớp được chọn, vì vậy tham số của các lớp này không đóng góp hướng cập nhật nào vào kernel huấn luyện hiệu dụng.
Tính toán NTK thực nghiệm#
Ví dụ PyTorch này tính kernel cho hai ảnh chữ số viết tay từ tập dữ liệu digits đi kèm scikit-learn. Cài đặt các gói phụ thuộc bằng 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)
# Mỗi hàng Jacobian chứa đạo hàm theo tham số của một đầu ra.
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)Ma trận 2 x 2 được in ra chứa hai giá trị độ nhạy của từng mẫu với chính nó và mức độ liên kết chéo giữa hai mẫu. Cách xây dựng ma trận bằng jacobian @ jacobian.T khiến NTK thực nghiệm đầu ra vô hướng đối xứng và bán xác định dương, với hạng bị giới hạn bởi cả số lượng mẫu lẫn số lượng tham số có thể huấn luyện.










