Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Autoencoder

Autoencoder học cách nén dữ liệu thành một mã biểu diễn gọn và tái tạo dữ liệu từ mã đó mà không cần nhãn. Nội dung đề cập cấu trúc, các biến thể, phát hiện bất thường và code.

Autoencoder là mạng nơ-ron được huấn luyện để tái tạo chính đầu vào của nó. Bộ mã hóa ánh xạ đầu vào thành mã gọn, thường gọi là biểu diễn tiềm ẩn; bộ giải mã ánh xạ mã trở lại thành bản tái tạo; quá trình huấn luyện tối thiểu hóa sai khác giữa đầu vào và bản tái tạo. Vì mục tiêu chính là đầu vào, autoencoder học từ dữ liệu chưa gán nhãn, một dạng học không giám sát ngày nay thường được xếp vào học tự giám sát. Để mạng hữu ích, cần có ràng buộc ngăn mạng sao chép thẳng đầu vào, chẳng hạn nút thắt hẹp, thêm nhiễu, che một phần đầu vào hoặc phạt độ thưa; các ràng buộc này buộc mạng học cấu trúc giúp nén dữ liệu. Autoencoder được dùng cho giảm chiều, phát hiện bất thường, khử nhiễu, tiền huấn luyện và làm bước nén trong các trình tạo ảnh hiện đại.

Cách Autoencoder hoạt động#

Bộ mã hóa f ánh xạ đầu vào x thành mã z = f(x), bộ giải mã g tạo bản tái tạo x̂ = g(z), còn quá trình huấn luyện tối thiểu hóa reconstruction loss, chẳng hạn sai số bình phương trung bình giữa x và x̂, bằng backpropagation. Trong autoencoder thiếu hoàn chỉnh, z có ít chiều hơn x nhiều, nên mã là bản tóm tắt trong không gian tiềm ẩn, chỉ giữ lại thông tin cần thiết cho bộ giải mã. Autoencoder tuyến tính được huấn luyện bằng sai số bình phương sẽ học cùng không gian con với phân tích thành phần chính (PCA), kết quả được Pierre Baldi và Kurt Hornik chứng minh vào năm 1989; các hàm kích hoạt phi tuyến cho phép autoencoder sâu nắm bắt cấu trúc cong mà PCA không thể biểu diễn. Trong bài báo đăng trên Science năm 2006, Geoffrey Hinton và Ruslan Salakhutdinov cho thấy autoencoder sâu tạo ra mã chiều thấp tốt hơn PCA đáng kể đối với hình ảnh và tài liệu.

Các biến thể không phụ thuộc vào nút thắt hẹp thay vào đó làm nhiễu đầu vào, nhưng vẫn đánh giá bản tái tạo so với dữ liệu gốc sạch:

Các loại autoencoder#

  • Khử nhiễu: Thêm nhiễu vào đầu vào và huấn luyện mạng khôi phục dữ liệu gốc sạch, như Pascal Vincent và các cộng sự mô tả năm 2008. Các đặc trưng được học có khả năng chống chịu nhiễu tốt, và model đã huấn luyện có thể làm sạch hình ảnh hoặc tín hiệu bị nhiễu.
  • Thưa: Sử dụng nhiều đơn vị mã hơn số đầu vào nhưng phạt số lượng đơn vị được kích hoạt cùng lúc. Autoencoder thưa được huấn luyện trên các activation nội bộ của mô hình ngôn ngữ lớn (LLMs) phân tách chúng thành nhiều đặc trưng, mỗi đặc trưng thường tương ứng với một khái niệm có thể diễn giải.
  • Biến phân (VAE): Encoder xuất ra một phân phối xác suất trên các mã, còn mức phạt KL-divergence giữ phân phối này gần với phân phối chuẩn tắc, nhờ đó giải mã một mã được lấy mẫu ngẫu nhiên sẽ tạo ra dữ liệu mới. Diederik Kingma và Max Welling giới thiệu VAE vào năm 2013.
  • Lượng tử hóa vector (VQ-VAE): Ánh xạ mỗi vector mã tới mục gần nhất trong codebook được học thông qua lượng tử hóa vector, chuyển hình ảnh hoặc âm thanh thành các token rời rạc mà model tự hồi quy có thể tạo ra.
  • Che khuất: Ẩn phần lớn đầu vào và tái tạo các phần bị thiếu. Autoencoder che khuất (MAE) ẩn 75% patch của hình ảnh; encoder được huấn luyện theo cách này trở thành một backbone mạnh cho các tác vụ thị giác khác. Segment Anything Model (SAM) của Meta, chạy trong package Ultralytics, xây dựng image encoder dựa trên Vision Transformer được tiền huấn luyện bằng MAE; SAM 2 sử dụng encoder Hiera được tiền huấn luyện bằng MAE, vì vậy các đặc trưng đứng sau mọi mask có thể được điều khiển bằng prompt đều được học trước tiên bằng cách điền vào các patch bị ẩn.

Phát hiện bất thường bằng sai số tái tạo#

Autoencoder chỉ được huấn luyện bằng dữ liệu bình thường sẽ tái tạo tốt các đầu vào bình thường nhưng tái tạo kém các đầu vào lạ, vì vậy sai số tái tạo có thể dùng làm điểm bất thường cho lỗi sản xuất, giao dịch gian lận hoặc máy móc sắp hỏng mà không cần nhãn bất thường. Đoạn mã PyTorch bên dưới huấn luyện một autoencoder nhỏ trên bộ chữ số viết tay đi kèm scikit-learn, loại bỏ toàn bộ chữ số 7, rồi so sánh sai số trên các chữ số giữ lại để kiểm thử với sai số trên các chữ số 7:

import torch
from sklearn.datasets import load_digits
from torch import nn

# 8x8 handwritten digits scaled to [0, 1]; every 7 is held out as the unseen anomaly
digits = load_digits()
x = torch.tensor(digits.data / 16, dtype=torch.float32)
normal, sevens = x[digits.target != 7], x[digits.target == 7]
train, test = normal[:1200], normal[1200:]

# Encoder: 64 pixels to an 8-number code; decoder: code back to 64 pixels
torch.manual_seed(0)
encoder = nn.Sequential(nn.Linear(64, 32), nn.ReLU(), nn.Linear(32, 8))
decoder = nn.Sequential(nn.Linear(8, 32), nn.ReLU(), nn.Linear(32, 64), nn.Sigmoid())
model = nn.Sequential(encoder, decoder)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for step in range(1000):
    optimizer.zero_grad()
    nn.functional.mse_loss(model(train), train).backward()  # reconstruction error
    optimizer.step()

with torch.no_grad():
    for name, data in [("Held-out digits", test), ("Unseen 7s", sevens)]:
        print(f"{name}: reconstruction error {nn.functional.mse_loss(model(data), data):.4f}")

Đoạn mã in ra sai số tái tạo 0.0163 cho các chữ số giữ lại để kiểm thử và 0.0547 cho chữ số 7, trung bình cao hơn 3,4 lần; ngưỡng áp dụng cho sai số của từng hình ảnh biến khoảng cách này thành cờ bất thường. Autoencoder cũng có thể khái quát hóa quá tốt và tái tạo chính xác một số bất thường, vì vậy các hệ thống thực tế điều chỉnh kích thước nút thắt và ngưỡng trên dữ liệu validation có chứa các bất thường đã biết.

  • Mạng đối sinh (GAN): Generator của GAN ánh xạ nhiễu ngẫu nhiên thành dữ liệu và học từ discriminator, không cần encoder hay mục tiêu tái tạo. VAE cũng tạo dữ liệu; hàm mục tiêu dựa trên likelihood giúp huấn luyện ổn định hơn nhưng thường tạo ra hình ảnh mờ hơn.
  • U-Net: Có cấu trúc encoder-decoder tương tự nhưng ánh xạ đầu vào sang một mục tiêu khác, chẳng hạn mask phân đoạn, đồng thời đưa các kết nối tắt vòng qua nút thắt; trong autoencoder, các kết nối này sẽ cho phép mạng sao chép đầu vào.
  • Học tương phản: Học biểu diễn bằng cách so sánh các mẫu với nhau, vì vậy các đặc trưng nắm bắt những điểm phân biệt giữa hình ảnh và bỏ qua chi tiết ở cấp pixel mà loss tái tạo phải giữ lại.
  • Embedding: Mã do encoder tạo ra là một dạng embedding, và autoencoder là một trong nhiều cách để học embedding.

Autoencoder trong tạo ảnh#

Model khuếch tán tiềm ẩn như Stable Diffusion chạy quy trình khuếch tán bên trong không gian tiềm ẩn của autoencoder, rồi giải mã kết quả trở lại thành pixel ở bước cuối. Stable Diffusion 1.x sử dụng autoencoder được điều chuẩn KL, nén hình ảnh RGB 512×512 thành latent 64×64×4, ít hơn 48 lần số giá trị mà model khuếch tán phải xử lý ở mỗi bước khử nhiễu.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning