Chuyển tới nội dung chính

Autoencoder

NénNút thắtTái tạoTương tác thật

Autoencoder

Ép một ảnh qua nút thắt chỉ vài con số rồi dựng lại. Nút thắt càng hẹp, mạng càng phải chọn lọc thứ đáng giữ nhất.

Autoencoder là một mạng học cách tự chép lại chính đầu vào của nó, nhưng có một chỗ thắt lại ở giữa. Ảnh đi vào bị ép qua một lớp rất hẹp chỉ vài con số, rồi từ vài con số đó mạng phải dựng lại ảnh gốc cho giống nhất. Nếu lớp giữa mà rộng bằng đầu vào thì việc chép lại quá dễ, chẳng học được gì. Chính chỗ thắt hẹp mới thú vị: không đủ chỗ để nhớ từng điểm ảnh, mạng buộc phải giữ lại cái cốt lõi và bỏ đi chi tiết vụn vặt. Cái cốt lõi đó chính là một bản tóm tắt gọn của ảnh.

Ba phần ghép lại thành một đường ống. Bộ mã hóa (encoder) nén ảnh xuống một dãy ngắn gồm k con số. Chỗ hẹp nhất giữa đường ống là nút thắt (bottleneck), nơi cả ảnh chỉ còn được mô tả bằng đúng k số đó, gọi là mã nén. Bộ giải mã (decoder) nhận k số ấy và cố dựng lại ảnh ban đầu. Sim dưới đây dùng một bộ cơ sở trực giao cố định (biến đổi cosine) làm encoder và decoder, nên bạn thấy đúng hiệu ứng đó mà không cần huấn luyện gì: giữ k thành phần đầu tiên rồi dựng lại.

Thử ngay

Autoencoder · nén qua nút thắt rồi dựng lại
k = 4·tỉ lệ nén 4/64 (6.3%)·lỗi tái tạo 0.0892
Ảnh gốc✎ vẽ được
Ảnh gốc · bấm và kéo để vẽ
Mã nén · 4 số
c14.8
c20.0
c31.8
c4-1.5
Ảnh tái tạo
Tái tạo từ 4 số · lỗi 0.0892

Thử điều này:

  • Kéo Kích thước nút thắt về k bằng 1 hoặc 2: ảnh tái tạo chỉ còn là một vệt sáng mờ, và lỗi tái tạo ở góc phải nhảy lên cao.
  • Kéo k lên dần: chi tiết hiện trở lại, viền hình rõ hơn, và lỗi tái tạo giảm dần. Đôi khi tăng k một bước mà ảnh gần như không đổi, vì thành phần vừa thêm xấp xỉ 0 (trái tim mẫu đối xứng trái phải nên nhiều thành phần triệt tiêu); vẽ một hình lệch rồi thử lại sẽ thấy hầu như bước nào cũng đổi.
  • Nhìn cột Mã nén ở giữa: đó là toàn bộ những gì đi qua được nút thắt. Thêm một đơn vị k là thêm đúng một thanh, tức thêm một con số để mô tả ảnh.
  • Vẽ một hình mới bằng cách bấm và kéo trên ảnh gốc: hình càng nhiều nét nhỏ thì càng cần k lớn mới tái tạo sát, vì chi tiết nằm ở các thành phần sau.

Nút thắt buộc chọn lọc

Khi nút thắt hẹp hơn ảnh, không có cách nào nhét trọn 64 điểm ảnh vào k số nếu k nhỏ. Mạng phải quyết định giữ gì bỏ gì, và cái đáng giữ nhất là hình dạng chung, thứ giải thích được nhiều điểm ảnh cùng lúc. Chi tiết lẻ tẻ bị hy sinh trước. Tỉ lệ nén k/64 cho biết bạn đang ép mạnh tới đâu: k/64 càng nhỏ thì nén càng mạnh, tái tạo càng mờ, nhưng mã nén càng gọn.

Điều rút ra

Nút thắt hẹp buộc autoencoder bỏ chi tiết vụn và chỉ giữ lại cái cốt lõi giải thích được nhiều nhất, nên k càng nhỏ thì tái tạo càng mờ nhưng bản tóm tắt càng gọn.

Kiểm tra nhanh0/3 đúngchưa trả lời
  1. 1Vai trò của nút thắt (bottleneck) trong autoencoder là gì?
  2. 2Khi giảm k (thu hẹp nút thắt) trong sim, ảnh tái tạo và lỗi tái tạo thay đổi ra sao?
  3. 3Tỉ lệ nén k/64 trong sim cho biết điều gì?