0
0
Lập trình
Admin Team
Admin Teamtechmely

Phân Tích Chi Tiết LSTM: Giữ Thông Tin Lâu Dài So Với RNN và Công Thức Toán Học

Đăng vào 1 tháng trước

• 5 phút đọc

Chào mừng bạn đã quay trở lại với hành trình khám phá trí tuệ nhân tạo! Nếu bạn đã theo dõi bài viết trước về LSTM - Bí Quyết Giữ Thông Tin Lâu Dài Hiệu Quả, bạn sẽ biết rằng LSTM vượt trội hơn RNN nhờ vào cell statecác cổng điều khiển. Nhưng bạn có bao giờ thắc mắc làm thế nào mà cell state có thể duy trì thông tin qua các chuỗi dài? Hãy cùng khám phá các lý do tại sao hiện tượng gradient không bị biến mất trong bài viết hôm nay. Chúng ta sẽ cùng “đào sâu” vào những điểm nổi bật sau đây:

  • Cơ chế lưu trữ thông tin thông qua các cổng Forget, Input và Output.
  • So sánh chi tiết giữa LSTM và RNN từ góc nhìn toán học.
  • Phân tích từng công thức – giúp bạn hiểu cách thức mà LSTM học từ dữ liệu!

Kiến Trúc của LSTM

Cell State: "Siêu Năng Lực" Giữ Thông Tin Dài Hạn

  • Forget Gate: Đây là cổng có nhiệm vụ loại bỏ những thông tin không cần thiết. Nó giúp mô hình tập trung vào dữ liệu quan trọng hơn. Hàm sigmoid sẽ “quét” qua thông tin cũ và chỉ giữ lại phần cần thiết.

    Ví dụ, khi xử lý câu "Tôi thích ăn táo vì chúng...", nếu mô hình đã xác định đối tượng chính là "táo", thì Forget Gate sẽ đánh giá và giảm trọng số của cụm từ "Tôi thích", loại bỏ thông tin không cần thiết để tập trung vào ý chính của câu.

  • Input Gate: Cổng này có trách nhiệm kiểm soát và quy định thông tin mới cần được đưa vào cell state. Hàm sigmoid đánh giá mức độ quan trọng của dữ liệu mới, kết hợp với hàm tanh giúp xác định các giá trị ứng cử, đảm bảo rằng chỉ những thông tin thiết yếu mới được lưu trữ.

Bạn có thể thấy cell state hoạt động như một bộ lọc thông minh qua công thức sau:

C_t = \underbrace{f_t \odot C_{t-1}}_{\text{Quên có chọn lọc}} + \underbrace{i_t \odot \tilde{C}t}{\text{Thêm thông tin tinh gọn}}

LSTM So Với RNN: Cuộc Đua Gradient

Vấn Đề Của RNN
Recurrent Neural Networks (RNN) thường gặp phải những vấn đề lớn liên quan đến gradient trong quá trình lan truyền ngược (backpropagation through time - BPTT):

  1. Hidden State Trong RNN:
    Hidden state được tính toán theo công thức sau:

h_t = \tanh(W \cdot [h_{t-1}, x_t] + b)

Trong đó:

  • h_t là hidden state tại thời điểm t.
  • W là ma trận trọng số.
  • x_t là đầu vào tại thời điểm t.
  • b là bias.
  1. Vấn Đề Gradient Vanishing:
    Gradient phụ thuộc vào tích ma trận \prod_{k=1}^{t} \frac{\partial h_k}{\partial h_{k-1}}. Khi số bước thời gian t tăng lên, nếu các phần tử trong ma trận có giá trị nhỏ hơn 1, gradient sẽ bị suy giảm theo hàm mũ, dẫn đến hiện tượng vanishing gradient. Điều này khiến các trạng thái ban đầu của chuỗi dữ liệu gần như không ảnh hưởng đến đầu ra cuối cùng.

LSTM Cải Thiện Chức Năng Này Ra Sao?

Long Short-Term Memory (LSTM) được thiết kế để đối phó với vấn đề vanishing gradient bằng cách sử dụng cell state thay vì chỉ dựa vào hidden state như RNN.

  1. Gradient Chủ Yếu Truyền Qua Cell State:
    \frac{\partial C_t}{\partial C_{t-1}} = f_t + (\text{đạo hàm các thành phần khác})

    Ở đây, f_t là gate kiểm soát mức độ thông tin được giữ lại từ trạng thái trước đó.

  2. Giữ Gradient Không Đổi Khi Cần Thiết:
    Khi f_t ≈ 1 (tức là khi LSTM cần giữ thông tin lâu dài), gradient gần như không thay đổi theo thời gian. Điều này giúp tránh hiện tượng vanishing gradient, cho phép LSTM ghi nhớ thông tin từ các bước thời gian xa hơn so với RNN.

Giải Mã Toán Học

1. Các Thành Phần Cốt Lõi Của Một Cell LSTM

  • Forget Gate (f_t): Quyết định loại bỏ những thông tin không cần thiết từ cell state.
  • Input Gate (i_t): Quyết định thông tin mới nào sẽ được lưu trữ.
  • Output Gate (o_t): Quyết định thông tin nào sẽ được xuất ra làm hidden state cho bước tiếp theo.
  • Cell State (C_t): Bộ nhớ dài hạn (được cập nhật tại mỗi bước thời gian).
  • Hidden State (h_t): Bộ nhớ ngắn hạn (được suy ra từ cell state).

2. Các Phương Trình Toán Học

Tại mỗi bước thời gian t, với đầu vào x_t và các trạng thái trước đó h_{t-1} cũng như C_{t-1}, LSTM tính toán như sau:

Bước 1: Forget Gate

f_t = σ(W_f ⋅ [h_{t-1}, x_t] + b_f)

Mục đích: Quyết định bao nhiêu phần của C_{t-1} cần bị loại bỏ.

Đầu vào: Kết hợp trạng thái ẩn trước đó và đầu vào hiện tại.

Trọng số: W_f (trọng số của Forget Gate), b_f (bias).

Hàm kích hoạt: Hàm sigmoid cho ra giá trị từ 0 (loại bỏ) đến 1 (giữ lại).

Bước 2: Input Gate & Candidate Cell State

i_t = σ(W_i ⋅ [h_{t-1}, x_t] + b_i), C~t = tanh(W_C ⋅ [h{t-1}, x_t] + b_C)

Mục đích: Quyết định lượng thông tin từ C~_t sẽ được thêm vào C_t, đồng thời tạo ra giá trị đề xuất cho Cell State.

Bước 3: Update Cell State

C_t = f_t ⊙ C_{t-1} + i_t ⊙ C~_t

Mục đích: Kết hợp thông tin cũ C_{t-1} với thông tin mới C~_t.

Bước 4: Output Gate & Hidden State

o_t = σ(W_o ⋅ [h_{t-1}, x_t] + b_o)

h_t = o_t ⊙ tanh(C_t)

Kết Luận

Thông qua bài viết này, chúng ta đã cùng nhau khám phá sâu sắc cách hoạt động của LSTM, từ cơ chế cổng tinh vi đến cách thức duy trì thông tin dài hạn một cách hiệu quả. Hiểu rõ cách LSTM quản lý thông tin qua các bước thời gian không chỉ giúp bạn tiếp cận gần hơn với cách các mô hình deep learning xử lý dữ liệu chuỗi mà còn mở ra cơ hội tìm hiểu sâu hơn về các kiến trúc tiên tiến trong lĩnh vực xử lý ngôn ngữ tự nhiên.

Nếu bạn muốn tiếp tục hành trình khám phá và tìm hiểu thêm về các mô hình như LSTM, đừng bỏ lỡ bài viết tiếp theo về Word2vec – công cụ tuyệt vời giúp chuyển đổi từ ngữ thành các vector số học, là nền tảng cho sự phát triển của các mô hình NLP hiện đại như Transformers. Hẹn gặp lại bạn trong những bài viết tiếp theo về thế giới của NLP và Deep Learning!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào