Nền tảng AI

RNN và LSTM là gì trong Học sâu?

mm
Thêm Unite.AI vào các nguồn ưu tiên của bạn trên Google

Mạng nơ-ron hồi tiếp (RNNs) xử lý các chuỗi bằng cách cập nhật trạng thái ẩn theo thời gian. Long short-term memory (LSTM) là các mạng RNN có cổng, được thiết kế để bảo tồn và kiểm soát thông tin hiệu quả hơn so với một đơn vị hồi tiếp cơ bản.

RNN và LSTM từng thống trị nhiều nhiệm vụ ngôn ngữ, nhưng các chatbot lớn hiện đại chủ yếu dựa trên transformers. Các mô hình hồi tiếp vẫn hữu ích cho phát luồng, chuỗi thời gian, giọng nói, điều khiển và các hệ thống hạn chế tài nguyên, nơi trạng thái tăng dần và độ trễ thấp quan trọng.

Những điểm chính

  • RNN tái sử dụng cùng một tập tham số ở mỗi bước của chuỗi và truyền trạng thái ẩn về phía trước.
  • Huấn luyện qua thời gian có thể gây ra gradient biến mất hoặc bùng nổ.
  • LSTM bổ sung một trạng thái ô và các cổng nhập, quên và xuất.
  • Transformer xử lý các quan hệ dài hạn và huấn luyện song song khác nhau; không kiến trúc nào là tốt nhất cho mọi triển khai.
Unrolled recurrent neural network beside an LSTM cell showing input, forget, and output gates, plus a comparison with parallel transformer attention
RNN truyền trạng thái một cách tuần tự; LSTM điều chỉnh trạng thái đó bằng các cổng, trong khi transformer kết nối các vị trí thông qua cơ chế attention.

Cách hoạt động của RNN cơ bản

Tại bước t, một đơn vị hồi tiếp đơn giản kết hợp đầu vào hiện tại xₜ với trạng thái ẩn trước đó hₜ₋₁:

hₜ = activation(Wₓxₜ + Wₕhₜ₋₁ + b)

Trạng thái ẩn là một bản tóm tắt được học, được sử dụng cho bước tiếp theo và, tùy thuộc vào nhiệm vụ, là một đầu ra. Một sơ đồ “giãn ra” vẽ một bản sao cho mỗi bước thời gian, nhưng tất cả các bản sao chia sẻ cùng tham số. Đầu ra không chỉ đơn giản được sao chép lại làm đầu vào thô mới; quá trình hồi tiếp truyền trạng thái ẩn qua một phép biến đổi đã định.

Lan truyền ngược qua thời gian

RNN được huấn luyện bằng lan truyền ngược qua thời gian (BPTT). Chuỗi đã giãn ra tạo thành một đồ thị tính toán sâu, và lan truyền ngược tính toán cách mất mát phụ thuộc vào các tham số hồi tiếp chia sẻ.

Việc nhân lặp lại có thể làm gradient thu hẹp về zero hoặc tăng vô hạn. Gradient biến mất ngăn cản việc học các phụ thuộc dài; gradient bùng nổ tạo ra các cập nhật không ổn định. Cắt gradient giải quyết vấn đề gradient bùng nổ, trong khi các cơ chế cổng, khởi tạo, chuẩn hoá và cửa sổ huấn luyện ngắn hơn có thể giúp đỡ.

Bên trong một ô LSTM

LSTM duy trì một trạng thái ô cₜ bên cạnh trạng thái ẩn hₜ. Các cổng của nó là các bộ điều khiển học được, phụ thuộc vào dữ liệu:

  • Cổng quên (forget gate) kiểm soát mức độ giữ lại trạng thái ô trước.
  • Cổng nhập (input gate) kiểm soát mức độ ghi thông tin đề xuất.
  • Cổng xuất (output gate) kiểm soát mức độ thông tin ô đóng góp vào trạng thái ẩn.

Các đầu ra sigmoid nằm trong khoảng từ 0 đến 1 hoạt động như các cổng mềm, trong khi một ứng cử viên được biến đổi bằng hàm tanh cung cấp nội dung mới. Đường đi cộng dồn của trạng thái ô giúp gradient duy trì, nhưng LSTM không đảm bảo bộ nhớ vô hạn hay loại bỏ mọi vấn đề tối ưu hoá.

GRU và hồi tiếp hai chiều

Một đơn vị hồi tiếp có cổng (GRU) kết hợp các cơ chế cổng vào một ô hồi tiếp đơn giản hơn mà không có trạng thái ô riêng kiểu LSTM. GRU có thể huấn luyện nhanh hơn và đạt hiệu suất tương tự trong một số nhiệm vụ.

RNN hai chiều xử lý một chuỗi đã hoàn thành ở cả hai hướng và kết hợp các trạng thái. Nó có thể sử dụng ngữ cảnh tương lai cho việc gắn thẻ hoặc mã hoá, nhưng không phù hợp cho phát luồng nguyên nhân khi các đầu vào tương lai chưa có sẵn.

Mô hình chuỗi‑đến‑chuỗi

Các RNN mã hoá‑giải mã ánh xạ một chuỗi sang chuỗi khác. Cơ chế attention được giới thiệu để cho phép bộ giải mã tham khảo các trạng thái mã hoá khác nhau thay vì dựa vào một vector cố định. Nhánh nghiên cứu này đã dẫn đến kiến trúc transformer, thay thế hồi tiếp bằng các khối dựa trên attention.

RNN so với transformer

Transformer xử lý các vị trí huấn luyện song song và tạo các đường attention ngắn giữa các token cách xa nhau. RNN xử lý trạng thái một cách tuần tự, hạn chế khả năng song song nhưng cung cấp trạng thái hồi tiếp kích thước cố định trong quá trình phát luồng. Khi suy luận, transformer có thể cần một bộ nhớ đệm key‑value ngày càng lớn, trong khi RNN nén lịch sử vào trạng thái ẩn và có thể mất chi tiết.

Lựa chọn dựa trên độ dài chuỗi, quy mô dữ liệu, phần cứng, độ trễ, bộ nhớ và liệu nhiệm vụ là offline hay streaming. Các kiến trúc lai và không gian trạng thái cung cấp các cân bằng bổ sung.

Các trường hợp sử dụng hiện tại

RNN và LSTM vẫn có liên quan đến dự báo, phát hiện bất thường, xử lý cảm biến, thành phần giọng nói, viết tay, điều khiển nhúng và mô hình hoá chuỗi độ trễ thấp. Chúng không phải là giải thích mặc định cho các mô hình ngôn ngữ lớn hiện nay hay các chatbot AI.

Hồi tiếp, cổng và bộ nhớ chuỗi

Mạng nơ‑ron hồi tiếp xử lý một chuỗi bằng cách kết hợp đầu vào hiện tại với trạng thái ẩn được mang từ các bước trước. Các trọng số chia sẻ cho phép độ dài chuỗi biến đổi, và việc giãn ra (unrolling) hiển thị tính toán qua thời gian để huấn luyện. RNN cơ bản có thể biểu diễn phụ thuộc thời gian nhưng gradient nhân lặp lại qua các chuỗi dài thường biến mất hoặc bùng nổ. Lan truyền ngược cắt ngắn (truncated backpropagation) giới hạn bộ nhớ và tính toán, trong khi cắt gradient kiểm soát các cập nhật cực đoan. Trạng thái ẩn là một bản tóm tắt được học, không phải là lưu trữ trung thực của mọi token trước.

LSTM bổ sung một trạng thái ô và các cổng nhập, quên và xuất để điều chỉnh việc ghi, giữ và hiển thị thông tin. Các đơn vị hồi tiếp có cổng (GRU) sử dụng cấu trúc đặt lại và cập nhật đơn giản hơn. Các biến thể hai chiều sử dụng ngữ cảnh tương lai và do đó không thể phát luồng nguyên nhân mà không có độ trễ. Các mô hình hồi tiếp xếp chồng, dư thừa và được tăng cường attention tăng khả năng. Việc đệm (padding) và mặt nạ (mask) phải ngăn các phần tử chuỗi giả tạo ảnh hưởng tới trạng thái hoặc loss, và trạng thái nên được đặt lại tại các ranh giới chuỗi thực để tránh rò rỉ giữa các ví dụ.

Huấn luyện, so sánh và phục vụ có trạng thái

RNN và LSTM vẫn hữu ích cho phát luồng, các mô hình gọn nhẹ trên thiết bị, chuỗi thời gian và các khối lượng công việc mà trạng thái tuần tự hiệu quả. Transformer song song hoá việc huấn luyện và mô hình hoá các tương tác dài hạn khác nhau nhưng có thể yêu cầu bộ nhớ và bộ đệm lớn hơn. So sánh các kiến trúc dựa trên độ chính xác, độ trễ, thông lượng, bộ nhớ, năng lượng và hiệu năng khi độ dài chuỗi thay đổi. Đánh giá dự báo với các phân tách thời gian trượt, ngôn ngữ với các chỉ số nhận thức chuỗi, và phát hiện bất thường với các đo lường mức sự kiện. Kiểm tra lỗi sau các khoảng trống dài, thay đổi chế độ, mẫu thiếu và ranh giới chuỗi đột ngột.

Triển khai có trạng thái phải gắn trạng thái ẩn với phiên đúng, hết hạn, mã hoá nếu nhạy cảm và đặt lại sau lỗi hoặc thay đổi mô hình. Các sự kiện không theo thứ tự hoặc trùng lặp có thể làm hỏng trạng thái; cần bao gồm dấu thời gian, số thứ tự chuỗi và tính idempotent. Giám sát tuổi trạng thái, độ dài chuỗi, thiếu dữ liệu, độ trượt đầu ra và độ trễ. Việc lượng tử hoá cần xác thực nhạy cảm với các cổng vì những thay đổi số nhỏ có thể tích lũy theo thời gian. Bộ nhớ RNN cho phép ngữ cảnh, nhưng cũng có thể giữ thông tin riêng tư hoặc lỗi thời, vì vậy việc lưu trữ và kiểm soát người dùng phải được đưa vào thiết kế.

Ví dụ thực tế: LSTM cho chuỗi cảm biến phát luồng

Một tiện ích sử dụng LSTM để dự báo tải ngắn hạn từ các đo lường gần đây, lịch và thời tiết. Các chuỗi được xây dựng theo thứ tự thời gian chặt chẽ; trạng thái ẩn được đặt lại tại các ranh giới nguồn cấp, và padding được che mặt. Các baseline theo mùa đơn giản và gradient‑boosted được so sánh với LSTM qua các cửa sổ trượt. Các thử nghiệm bao gồm các khoảng thời gian thiếu, thời tiết trễ, ngày lễ, mất điện và độ dài chuỗi vượt quá mức huấn luyện thông thường.

Dịch vụ phát luồng gắn trạng thái với một nguồn cấp, loại bỏ các bản sao không theo thứ tự và hết hạn trạng thái sau các khoảng trống dài hoặc cập nhật mô hình. Một dự báo thống kê an toàn thay thế đầu ra khi cảm biến hoặc trạng thái không hợp lệ. Việc suy luận lượng tử được kiểm tra trên các chuỗi dài để phát hiện độ trượt tích lũy. Giám sát theo dõi tuổi trạng thái, thiếu dữ liệu, độ trễ, độ lệch và lỗi khoảng thời gian. Mô hình chỉ được huấn luyện lại sau khi lưới điện thay đổi và kết quả đánh giá cho thấy các quan hệ thời gian đã học không còn tổng quát.

Bằng chứng triển khai và sẵn sàng vận hành

Một quyết định sản xuất cần nhiều hơn một buổi trình diễn thành công. Xác định người dùng mục tiêu, môi trường hoạt động, đầu vào, đầu ra, các phụ thuộc, người sở hữu và hậu quả của mỗi lỗi quan trọng. Thiết lập một baseline có thể tái tạo và một bộ đánh giá có phiên bản trước khi tinh chỉnh. Kiểm tra các trường hợp thường, điều kiện biên, đầu vào sai dạng hoặc thiếu, sự dịch chuyển phân phối, mất kết nối phụ thuộc, lạm dụng, và các nhóm hoặc môi trường có khả năng bị bỏ qua. Đo lường chất lượng nhiệm vụ cùng với hiệu chuẩn hoặc độ không chắc, độ trễ, thông lượng, chi phí tài nguyên, khả năng tiếp cận, quyền riêng tư và bảo mật. Ghi lại mọi biến đổi và ngưỡng để người đánh giá độc lập có thể tái tạo kết quả và phân biệt bằng chứng với một nguyên mẫu hấp dẫn.

Trước khi ra mắt, chỉ định quyền trách nhiệm cho việc phát hành, ngoại lệ, thay đổi, quay lại và ngừng sử dụng. Sử dụng triển khai theo giai đoạn, duy trì một phương án dự phòng an toàn và xác minh giám sát bằng các lỗi được chèn có chủ đích. Dữ liệu đo lường vận hành nên tiết lộ chất lượng đầu vào, hành vi đầu ra, phiên bản mô hình hoặc quy tắc, tình trạng phụ thuộc, can thiệp của con người và kết quả đã xác nhận mà không thu thập dữ liệu nhạy cảm không cần thiết. Xác định ngưỡng cảnh báo và người chịu trách nhiệm phản hồi, sau đó xem xét bằng chứng thực tế sau khi triển khai thay vì giả định hiệu năng offline sẽ kéo dài. Đánh giá lại mỗi khi nguồn dữ liệu, người dùng, mô hình, nhà cung cấp, chính sách, phần cứng hoặc mục tiêu thay đổi. Một hệ thống được duy trì cũng cần có tài liệu khôi phục, học hỏi từ sự cố, quy trình xóa và lưu trữ, và một điểm rõ ràng khi nó nên bị vô hiệu hoá hoặc thay thế.

Câu hỏi thường gặp

LSTM luôn tốt hơn một RNN cơ bản không?

Không. Cơ chế cổng giúp giải quyết nhiều vấn đề phụ thuộc dài nhưng lại tăng tính toán và số lượng tham số. Một RNN cơ bản có thể đủ cho các chuỗi ngắn, đơn giản, và một kiến trúc khác có thể tốt hơn cho ngữ cảnh rất dài.

LSTM có thể xử lý lịch sử không giới hạn không?

Không. Trạng thái của nó có khả năng lưu trữ hữu hạn, gradient và dữ liệu huấn luyện đặt ra giới hạn, và các chi tiết liên quan có thể bị ghi đè. Hiệu năng trong ngữ cảnh dài phải được đo lường thay vì suy đoán từ tên kiến trúc.

Tài liệu tham khảo chính

Blogger và lập trình viên với chuyên môn về Machine Learning và Deep Learning topics. Daniel hy vọng giúp đỡ người khác sử dụng sức mạnh của AI cho lợi ích xã hội.