Biến mất Gradient là một thách thức phổ biến gặp phải trong quá trình đào tạo các mô hình trí tuệ nhân tạo (AI) sâu, đặc biệt là mạng nơ-ron sâu (NN) . Nó xảy ra trong quá trình truyền ngược , trong đó mô hình học bằng cách điều chỉnh các tham số bên trong (trọng số) dựa trên lỗi được tính toán. Gradient, biểu thị hướng và độ lớn của các điều chỉnh trọng số cần thiết để giảm thiểu lỗi, được tính toán cho từng lớp. Trong các mạng rất sâu, các gradient này có thể trở nên cực kỳ nhỏ khi chúng được truyền ngược từ lớp đầu ra đến các lớp ban đầu. Khi gradient trở nên cực kỳ nhỏ, các trọng số trong các lớp trước đó sẽ cập nhật rất chậm hoặc không cập nhật, về cơ bản là dừng quá trình học của các lớp đó.
Tầm quan trọng trong học sâu
Vấn đề Vanishing Gradient cản trở đáng kể việc đào tạo các mạng sâu, vốn rất cần thiết để giải quyết các tác vụ phức tạp trong các lĩnh vực như thị giác máy tính (CV) và xử lý ngôn ngữ tự nhiên (NLP) . Về mặt lý thuyết, các mạng sâu hơn có khả năng học các mẫu và hệ thống phân cấp phức tạp hơn của các tính năng. Tuy nhiên, nếu các lớp ban đầu không thể học hiệu quả do các gradient biến mất, thì mạng sẽ không nắm bắt được các tính năng cơ bản cấp thấp, hạn chế hiệu suất tổng thể của nó. Đây là một trở ngại lớn trong những ngày đầu của học sâu (DL) và đặc biệt ảnh hưởng đến một số kiến trúc nhất định như Mạng nơ-ron hồi quy đơn giản (RNN) khi xử lý các chuỗi dài.
Nguyên nhân và hậu quả
Có một số yếu tố góp phần làm mất đi độ dốc:
- Hàm kích hoạt: Một số hàm kích hoạt , như Sigmoid hoặc Tanh , có đạo hàm nhỏ hơn 1 trên hầu hết phạm vi của chúng. Trong quá trình truyền ngược, các đạo hàm nhỏ này được nhân lên trên nhiều lớp, khiến cho gradient giảm theo cấp số nhân.
- Kiến trúc sâu: Số lượng lớn các lớp trong mạng sâu làm trầm trọng thêm tác động của việc nhân nhiều lần các số nhỏ.
- Khởi tạo trọng số: Việc khởi tạo trọng số mô hình kém cũng có thể gây ra vấn đề.
Hậu quả chính là các lớp đầu của mạng học cực kỳ chậm hoặc ngừng học hoàn toàn. Điều này ngăn mô hình học các biểu diễn dữ liệu phức tạp và đạt được hiệu suất tốt, dẫn đến hội tụ kém trong quá trình đào tạo và có khả năng dẫn đến không khớp .
Chiến lược giảm thiểu
Các nhà nghiên cứu đã phát triển một số kỹ thuật để giải quyết vấn đề Độ dốc biến mất:
- ReLU và các biến thể: Sử dụng các hàm kích hoạt như ReLU (Đơn vị tuyến tính chỉnh lưu) và các biến thể của nó ( ReLU rò rỉ , GeLU ) có ích vì đạo hàm của chúng là 1 đối với các đầu vào dương, ngăn không cho độ dốc co lại ở các vùng đó.
- Residual Networks (ResNets): Các kiến trúc như ResNet giới thiệu "kết nối bỏ qua" cho phép gradient bỏ qua một số lớp trong quá trình truyền ngược, cung cấp đường dẫn ngắn hơn cho tín hiệu gradient. Khái niệm này là cơ bản trong nhiều CNN hiện đại.
- Cơ chế có cổng (LSTM/GRU): Đối với dữ liệu tuần tự, các kiến trúc như Bộ nhớ dài hạn ngắn (LSTM) và Đơn vị tuần hoàn có cổng (GRU) sử dụng cơ chế cổng để kiểm soát luồng thông tin và độ dốc, giúp chúng nắm bắt các phụ thuộc tầm xa tốt hơn so với RNN đơn giản.
- Chuẩn hóa hàng loạt: Áp dụng Chuẩn hóa hàng loạt giúp ổn định và tăng tốc quá trình đào tạo bằng cách chuẩn hóa các đầu vào của lớp, có thể gián tiếp làm giảm sự biến mất (và bùng nổ) của gradient.
- Cắt Gradient: Mặc dù chủ yếu được sử dụng cho Exploding Gradient , nhưng việc cắt cẩn thận đôi khi có thể giúp quản lý độ lớn của gradient.
- Khởi tạo cẩn thận: Sử dụng các lược đồ khởi tạo trọng số phức tạp ( Xavier/Glorot , He ) để đặt trọng số ban đầu trong phạm vi giúp giảm khả năng xảy ra tình trạng gradient biến mất hoặc bùng nổ trong giai đoạn đầu đào tạo.
Sự biến mất so với sự bùng nổ của gradient
Vanishing Gradient là vấn đề mà gradient trở nên cực kỳ nhỏ, cản trở việc học. Vấn đề ngược lại là Exploding Gradient , khi gradient trở nên quá lớn, dẫn đến quá trình đào tạo không ổn định và các bản cập nhật trọng số dao động lớn. Cả hai vấn đề đều liên quan đến những thách thức của việc đào tạo mạng lưới sâu bằng cách sử dụng tối ưu hóa dựa trên gradient . Các kỹ thuật như cắt gradient được sử dụng cụ thể để chống lại các gradient bùng nổ.
Ứng dụng trong thế giới thực
Việc giải quyết vấn đề gradient biến mất là rất quan trọng đối với sự thành công của nhiều ứng dụng AI:
- Dịch máy: Đào tạo các mô hình chuỗi-sang-chuỗi sâu, thường dựa trên Transformers hoặc LSTM, đòi hỏi phải nắm bắt các mối quan hệ phụ thuộc giữa các từ cách xa nhau trong một câu. Giảm thiểu các gradient biến mất cho phép các mô hình này học các mối quan hệ tầm xa, dẫn đến các bản dịch chính xác và mạch lạc hơn. Các nền tảng như Google Translate phụ thuộc rất nhiều vào các kiến trúc mạnh mẽ đối với vấn đề này.
- Phân tích hình ảnh y tế: CNN sâu được sử dụng cho các tác vụ như phát hiện khối u trong phân tích hình ảnh y tế (ví dụ, sử dụng các tập dữ liệu như Brain Tumor Detection ) cần nhiều lớp để tìm hiểu các tính năng phân cấp từ các lần quét phức tạp. Các kiến trúc như ResNet hoặc U-Net, kết hợp các kết nối bỏ qua hoặc các kỹ thuật bảo toàn gradient khác, cho phép đào tạo hiệu quả các mô hình sâu này để cải thiện độ chính xác của chẩn đoán. Các mô hình như Ultralytics YOLO tận dụng các kiến trúc học sâu hiện đại vốn kết hợp các giải pháp cho các vấn đề về gradient này cho các tác vụ như phát hiện và phân đoạn đối tượng.