Implicit Neural Representations (INRs)
Biểu diễn nơ-ron tường minh lưu ảnh, hình dạng hoặc cảnh 3D dưới dạng mạng nơ-ron ánh xạ tọa độ thành giá trị, cho phép truy vấn ở mọi độ phân giải.
Biểu diễn neural ẩn (INR) lưu tín hiệu dưới dạng một hàm liên tục được học bởi mạng neural, thường là một perceptron đa tầng (MLP) nhỏ, ánh xạ tọa độ thành giá trị. Ảnh trở thành hàm ánh xạ vị trí pixel (x, y) thành màu sắc, hình dạng 3D trở thành hàm ánh xạ điểm (x, y, z) thành khoảng cách có dấu đến bề mặt, còn cảnh trở thành hàm ánh xạ điểm và hướng nhìn thành màu sắc cùng mật độ. Trọng số của mạng chính là biểu diễn: không có lưới pixel hay voxel, nên có thể truy vấn tín hiệu tại bất kỳ tọa độ nào, bộ nhớ không tăng theo độ phân giải đầu ra và có thể tính đạo hàm trực tiếp bằng vi phân tự động. INR còn được gọi là mạng dựa trên tọa độ hoặc neural field, đồng thời là nền tảng của trường bức xạ neural và phần lớn tái tạo 3D hiện đại.
Cách biểu diễn neural ẩn hoạt động#
Một INR được khớp với từng tín hiệu riêng lẻ. Quá trình huấn luyện lấy mẫu tọa độ, so sánh đầu ra của mạng với giá trị thực tại những tọa độ đó rồi cập nhật trọng số bằng gradient descent, vì vậy việc khớp là overfitting có chủ đích: mục tiêu là ghi nhớ tín hiệu này. MLP thông thường với activation ReLU gặp khó khăn vì mạng học tần số thấp nhanh hơn nhiều so với tần số cao; Nasim Rahaman và cộng sự đặt tên cho hiện tượng này là thiên lệch phổ vào năm 2019. Khi nhận tọa độ thô, mạng tạo ra phiên bản mờ của tín hiệu. Hai giải pháp giúp INR trở nên thiết thực vào năm 2020: ánh xạ tọa độ qua các hàm sin và cos ở nhiều tần số, tức đặc trưng Fourier của Matthew Tancik và cộng sự cùng positional encoding của NeRF; và thay ReLU bằng hàm activation dạng sin như trong SIREN của Vincent Sitzmann và cộng sự.
Ví dụ PyTorch này khớp cùng một MLP với một bức ảnh hai lần: một lần dùng tọa độ thô và một lần dùng đặc trưng Fourier:
import torch
from skimage import data, transform
from torch import nn
torch.manual_seed(0)
# The signal: a 128 x 128 grayscale photo, and the (x, y) coordinate of every pixel in [-1, 1]
image = torch.tensor(transform.resize(data.camera(), (128, 128)), dtype=torch.float32).reshape(-1, 1)
grid = torch.linspace(-1, 1, 128)
coords = torch.stack(torch.meshgrid(grid, grid, indexing="ij"), dim=-1).reshape(-1, 2)
# Fourier features: sines and cosines of the coordinates at 128 random frequencies
proj = torch.pi * coords @ (10 * torch.randn(2, 128))
inputs = {"Raw coordinates": coords, "Fourier features": torch.cat([proj.sin(), proj.cos()], dim=-1)}
for name, x in inputs.items():
# The INR: a small MLP from coordinate to gray value, fit to this one image
mlp = nn.Sequential(nn.Linear(x.shape[1], 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, 1))
optimizer = torch.optim.Adam(mlp.parameters(), lr=1e-3)
for _ in range(1000):
loss = (mlp(x) - image).pow(2).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"{name}: PSNR {-10 * torch.log10(loss).item():.1f} dB")Sau 1,000 bước, mạng dùng tọa độ thô đạt tỷ lệ tín hiệu trên nhiễu đỉnh 22.0 dB và cho ảnh mờ, trong khi mạng dùng đặc trưng Fourier đạt 46.0 dB, gần như sao chép chính xác ảnh. Thang tần số, ở đây là 10, được điều chỉnh riêng cho từng tín hiệu: nếu quá thấp, kết quả vẫn mờ; nếu quá cao, mạng ghi nhớ các mẫu với giá trị nhiễu ở giữa chúng. Segment Anything Model của Meta, chạy trong package Ultralytics, mã hóa tọa độ của prompt điểm và box bằng cùng loại đặc trưng Fourier Gaussian ngẫu nhiên trước khi đưa chúng đến mask decoder.
Hình dạng, cảnh và tốc độ#
INR cho hình dạng 3D xuất hiện vào năm 2019, khi DeepSDF dự đoán khoảng cách có dấu và Occupancy Networks dự đoán xác suất nằm bên trong hoặc bên ngoài cho bất kỳ điểm 3D nào, cho phép trích xuất mesh ở mọi độ phân giải. NeRF ra đời tiếp theo vào năm 2020, ánh xạ vị trí và hướng nhìn thành màu sắc cùng mật độ để tổng hợp góc nhìn mới. MLP thuần túy huấn luyện và truy vấn chậm, vì vậy các thiết kế lai lưu đặc trưng đã học trong lưới rồi giải mã bằng MLP siêu nhỏ. Instant-NGP của Thomas Müller và cộng sự tại NVIDIA sử dụng bảng băm đặc trưng đa độ phân giải để khớp NeRF trong vài giây thay vì vài giờ.
INR khác với các biểu diễn tường minh như lưới pixel, lưới voxel, mesh và đám mây điểm, vốn lưu trực tiếp các giá trị và tăng kích thước theo độ phân giải; với voxel, mức tăng là theo lập phương. Gaussian splatting là một phương pháp tường minh mới thay thế NeRF, kết xuất nhanh hơn bằng cách rasterize hàng triệu Gaussian 3D. Vì INR cơ bản được khớp với một tín hiệu đơn lẻ, để khái quát hóa qua nhiều tín hiệu cần thêm cơ chế: hypernetwork xuất trọng số INR từ mã tiềm ẩn hoặc meta-learning một điểm khởi tạo để khớp tín hiệu mới chỉ trong vài bước.
Ứng dụng thực tế#
- Chẩn đoán hình ảnh y khoa: INR tái tạo thể tích CT và MRI từ các phép đo thưa hoặc lấy mẫu thiếu, vì hàm liên tục lấp đầy khoảng trống giữa các mẫu thu được bằng một thể tích trơn, nhất quán với dữ liệu.
- Siêu phân giải: Các hàm ảnh ẩn cục bộ như LIIF dự đoán màu tại bất kỳ tọa độ liên tục nào từ đặc trưng lân cận, nhờ đó một model có thể phóng to ảnh theo hệ số tùy ý.
- Tạo nội dung 3D: Các bộ tạo văn bản thành 3D và ảnh thành 3D thường tối ưu hóa hoặc dự đoán neural field, sau đó chuyển chúng thành mesh cho game và hiệu ứng hình ảnh.
- Nén: COIN, do Emilien Dupont và cộng sự phát triển năm 2021, lưu ảnh dưới dạng trọng số lượng tử hóa của một MLP nhỏ và vượt JPEG ở bitrate thấp.










