

Siri của Apple và Alexa của Amazon có một điểm chung ngoài việc là trợ lý cá nhân, cả hai đều sử dụng Mạng nơ-ron hồi quy (Recurrent Neural Networks - RNN) để hiểu tiếng người và tạo ra câu trả lời. Không chỉ vậy, hầu như mọi công ty công nghệ hiện nay đều đang sử dụng RNN. Để giải thích RNN một cách đơn giản nhất, DataFlair mang đến bài viết mới nhất về RNN thông qua các thảo luận với các nhà khoa học dữ liệu và chuyên gia máy học.
Trong bài này, chúng ta sẽ thảo luận về loại thuật toán học máy quan trọng nhất - Mạng nơ-ron hồi quy (RNN). Loại thuật toán này giúp ích nhiều nhất khi bạn dịch từ ngôn ngữ này sang ngôn ngữ khác. Chúng ta sẽ cùng tìm hiểu bối cảnh, cách hoạt động và các ứng dụng đa dạng của RNN.
Mạng nơ-ron hồi quy là một loại Mạng nơ-ron mà trong đó tồn tại sự kết nối giữa các nút dọc theo một chuỗi thời gian. Kết nối này tạo thành một đồ thị có hướng. "Thời gian" ở đây có nghĩa là dữ liệu biến đổi theo thời gian.
Ví dụ về RNN: Dữ liệu chuỗi thời gian bao gồm giá cổ phiếu thay đổi theo thời gian, các chỉ số cảm biến, hồ sơ y tế, v.v. Các mạng nơ-ron hồi quy này sử dụng trạng thái nội bộ hoặc bộ nhớ (memory) để xử lý chuỗi dữ liệu đầu vào. Đầu vào hiện tại phụ thuộc vào đầu vào trước đó, do đó có một sự liên kết giữa các chuỗi đầu vào. Vì vậy, chúng ta sử dụng chúng trong các lĩnh vực như xử lý ngôn ngữ tự nhiên (NLP) và nhận dạng giọng nói.
Các mạng nơ-ron truyền thống thiếu khả năng giải quyết các đầu vào tương lai dựa trên những gì đã xảy ra trong quá khứ. Ví dụ, một mạng nơ-ron truyền thống không thể dự đoán từ tiếp theo trong một câu dựa trên các từ trước đó. Tuy nhiên, RNN chắc chắn có thể làm được điều này. Đúng như tên gọi "hồi quy" (recurrent), chúng thực thi trong các vòng lặp, cho phép thông tin được lưu giữ lại (persist).
Khi được trải phẳng (unfolded), RNN có thể được coi là các bản sao của cùng một mạng lưới, trong đó mỗi bản sao sẽ chuyển thông tin sang trạng thái tiếp theo. Điều này cho phép chúng ta mô hình hóa một chuỗi hoặc một chuỗi các vectơ.

Trong các mạng nơ-ron truyền thống, có một lớp ẩn với các bộ trọng số (weights) và độ lệch (biases) riêng. Các lớp này độc lập với nhau, nghĩa là chúng không ghi nhớ đầu ra trước đó.
RNN thực hiện các bước sau để khắc phục điều này:
Công thức tính toán:

Mạng nhận một bước thời gian của đầu vào. Chúng ta tính toán trạng thái hiện tại thông qua đầu vào hiện tại và trạng thái trước đó. Sau đó, $h_t$ trở thành $h_{t-1}$ cho bước tiếp theo. Sau khi hoàn thành tất cả các bước, bước cuối cùng là tính toán đầu ra. Cuối cùng, chúng ta tính toán lỗi (error) bằng cách so sánh đầu ra thực tế với đầu ra dự đoán. Lỗi này được lan truyền ngược (backpropagated) để điều chỉnh trọng số và tạo ra kết quả tốt hơn.
Dưới đây là một số ứng dụng tuyệt vời của RNN:
Mạng nơ-ron hồi quy (RNN) được sử dụng cho dữ liệu có tính chuỗi. Điều này có nghĩa là chúng cực kỳ mạnh mẽ khi làm việc với văn bản, giọng nói hoặc dữ liệu chuỗi thời gian. Không giống như mạng nơ-ron thông thường, RNN có bộ nhớ. Chúng nhớ những gì đã học trước đó và sử dụng nó để hiểu những gì tiếp theo.
Mặc dù RNN rất mạnh mẽ, chúng có thể chậm và đôi khi gặp khó khăn với các chuỗi dài (vấn đề biến mất gradient). Để khắc phục điều này, các phiên bản nâng cao như LSTM (Long Short-Term Memory) và GRU (Gated Recurrent Units) đã được ra đời. RNN chính là công nghệ đứng sau các ứng dụng hàng ngày như chatbot, trợ lý ảo và hệ thống gợi ý âm nhạc.
