Khám phá cách hàm kích hoạt GELU tăng cường các mô hình transformer như GPT-4, tăng cường luồng gradient, tính ổn định và hiệu quả.
Đơn vị Tuyến tính Sai số Gauss (GELU) là một hàm kích hoạt được áp dụng rộng rãi và đã trở thành nền tảng trong các kiến trúc mạng nơ-ron (NN) hiện đại, đặc biệt là các kiến trúc liên quan đến Transformers . Không giống như các hàm truyền thống áp đặt ngưỡng cứng cho đầu vào, GELU cung cấp một quá trình chuyển đổi mượt mà hơn, không đơn điệu. Đặc điểm độc đáo này cho phép nó cân nhắc đầu vào theo độ lớn của chúng, thu hẹp khoảng cách hiệu quả giữa các kỹ thuật phi tuyến tính xác định và chính quy ngẫu nhiên. Việc sử dụng rộng rãi trong các mô hình chính như chuỗi GPT và BERT làm nổi bật khả năng giúp các hệ thống học các mẫu phức tạp trong các tập dữ liệu lớn.
Về cơ bản, GELU đóng vai trò là người gác cổng cho luồng thông tin đi qua mô hình học sâu (DL) . Trong khi các hàm cũ hơn như Rectified Linear Unit (ReLU) loại bỏ đáng kể các giá trị âm bằng cách đặt chúng về 0, GELU lại có cách tiếp cận tinh tế hơn. Nó nhân giá trị đầu vào với hàm phân phối tích lũy (CDF) của phân phối chuẩn Gauss.
Quá trình này có nghĩa là việc kích hoạt sẽ loại bỏ thông tin một cách có xác suất khi đầu vào giảm, nhưng theo một đường cong mượt mà thay vì một góc nhọn. Độ mượt mà này cải thiện luồng thông tin trong quá trình lan truyền ngược , giúp giảm thiểu vấn đề gradient biến mất có thể cản trở việc huấn luyện các mạng sâu. Bằng cách kết hợp các đặc tính của phân phối chuẩn Gauss, GELU giới thiệu một dạng độ cong cho phép mô hình nắm bắt tốt hơn các mối quan hệ dữ liệu phức tạp so với các phương án tuyến tính.
Để hiểu được vị trí của GELU, cần phải phân biệt nó với các hàm kích hoạt phổ biến khác có trong thuật ngữ AI .
GELU là một phần không thể thiếu của một số ứng dụng tiên tiến nhất trong trí tuệ nhân tạo (AI) .
Việc tích hợp GELU vào một mô hình tùy chỉnh rất đơn giản khi sử dụng các nền tảng hiện đại như PyTorch hoặc TensorFlow . Ví dụ sau đây minh họa cách khởi tạo một lớp GELU trong một PyTorch thành phần mô hình.
import torch
import torch.nn as nn
# Define a sample input tensor (batch_size=1, features=5)
input_data = torch.tensor([[-3.0, -1.0, 0.0, 1.0, 3.0]])
# Initialize the GELU activation function
gelu_layer = nn.GELU()
# Apply GELU to the input data
output = gelu_layer(input_data)
# Output demonstrates the smooth suppression of negative values
print(f"Input: {input_data}")
print(f"Output: {output}")
Đoạn trích này sử dụng torch.nn.GELU, được ghi lại trong
chính thức PyTorch API GELU, để chuyển đổi dữ liệu đầu vào. Lưu ý cách các giá trị âm bị loại bỏ nhưng không bị cắt cứng về 0, duy trì luồng gradient mượt mà cần thiết cho việc huấn luyện mạnh mẽ
học máy (ML) mô hình. Để đọc thêm về nền tảng toán học, bài báo nghiên cứu ban đầu, "Đơn vị tuyến tính lỗi Gauss (GELU)", cung cấp bối cảnh lý thuyết toàn diện.