close
Bước tới nội dung

ReLU

Bách khoa toàn thư mở Wikipedia
Hàm ReLU
Hàm ReLU

ReLU (viết tắt từ tiếng Anh Rectified Linear Unit, tạm dịch là hàm tuyến tính hiệu chỉnh) là một hàm kích hoạt phi tuyến thường được sử dụng trong mạng thần kinh nhân tạo.[1] Với một giá trị đầu vào, hàm ReLU trả lại chính giá trị đó nếu nó là số dương, và trả về 0 nếu giá trị đó là số âm.

ReLU và các biến thể của nó hiện là nhóm hàm kích hoạt được sử dụng phổ biến nhất trong học máy, đặc biệt trong các lĩnh vực như thị giác máy tính,[2][3] nhận dạng tiếng nói[4]xử lý ngôn ngữ tự nhiên.[5]

Lịch sử

[sửa | sửa mã nguồn]

Ý tưởng của ReLU xuất hiện từ khá sớm trong lịch sử nghiên cứu mạng thần kinh nhân tạo. Năm 1941, Alston Householder sử dụng một dạng hàm ngưỡng tuyến tính để mô tả hoạt động ổn định của mạng sợi thần kinh sinh học dưới dạng mô hình toán học trừu tượng.[6] Năm 1969, Kunihiko Fukushima tiếp tục áp dụng ý tưởng này trong bài toán trích xuất đặc trưng thị giác bằng mạng nhiều tầng gồm các phần tử ngưỡng tương tự. Công trình này sau đó phát triển thành mô hình Neocognitron, một tiền thân quan trọng của mạng thần kinh tích chập.[7]

Đến năm 2000, Hahnloser và cộng sự cho rằng dạng hàm này phản ánh hợp lý hơn mối liên hệ sinh học giữa cường độ dòng điện đầu vào và tần suất phát xung của neuron. Họ cũng chỉ ra rằng nó giúp mạng thần kinh hoạt động ổn định hơn trong một số điều kiện yếu hơn so với các hàm kích hoạt truyền thống.[8]

Tuy nhiên, trước năm 2010, phần lớn các mạng thần kinh vẫn chủ yếu sử dụng hàm sigmoidhàm hyperbol (tanh) thay vì ReLU. Nguyên nhân là vì các hàm này khả vi tại mọi điểm và phù hợp với thuật toán lan truyền ngược, mặc dù chúng thường gặp vấn đề gradient biến mất khi mạng có quá nhiều lớp.

Năm 2009, Jarrett và cộng sự chỉ ra rằng phép chỉnh lưu bằng ReLU là thành phần quan trọng trong mạng CNN dùng cho nhận dạng đối tượng. Đặc biệt, nó giúp lấy mẫu trung bình (average pooling) hoạt động hiệu quả hơn mà không làm triệt tiêu lẫn nhau giữa các đầu ra lân cận.[9] Năm 2010, Vinod Nair và Geoffrey Hinton tiếp tục cho thấy ReLU có thể được xem là một dạng xấp xỉ đơn giản của Softplus và cho kết quả tốt trong mô hình Restricted Boltzmann Machine.[10]

Sự khác biệt giữa hàng ReLU và hàm GELU
Sự khác biệt giữa hàng ReLU và hàm GELU, trong đó GELU không bị "cắt" về 0 với các giá trị âm.

Năm 2011, Glorot, Bordes và Yoshua Bengio chỉ ra rằng ReLU giúp giảm ảnh hưởng của hiện tượng gradient biến mất, giảm chi phí tính toán và tạo ra biểu diễn thưa (sparse representation), tức chỉ một phần nhỏ neuron được kích hoạt tại một thời điểm.[2] Thành công của AlexNet tại cuộc thi ImageNet năm 2012 khi sử dụng ReLU xuyên suốt đã khiến ReLU trở thành lựa chọn mặc định trong phần lớn các kiến trúc học sâu hiện đại.[3]

Sau đó, nhiều biến thể của ReLU được đề xuất nhằm khắc phục hiện tượng "ReLU chết" (dying ReLU), khi một neuron luôn cho đầu ra bằng 0 và không còn được cập nhật trong quá trình huấn luyện. Leaky ReLU cho phép gradient vẫn tồn tại ở miền âm;[4] PReLU biến hệ số này thành tham số có thể học được;[11] còn ELU thêm nhánh hàm mũ ở miền âm để đưa giá trị trung bình của kích hoạt gần về 0 hơn.[12] Về sau, các hàm như GELU, Swish và Mish tiếp tục được phát triển nhằm thay thế ReLU trong các mô hình lớn hơn, đặc biệt là các kiến trúc Transformer.[5]

Công thức

[sửa | sửa mã nguồn]

Hàm ReLU được định nghĩa như sau:

hay viết dưới dạng từng phần:

Điều này có nghĩa là ReLU giữ nguyên mọi giá trị dương và loại bỏ toàn bộ giá trị âm.

Đạo hàm của ReLU là:

Tại , hàm không khả vi. Trong thực tế, khi huấn luyện mạng thần kinh, giá trị đạo hàm tại điểm này thường được quy ước là 0 hoặc 1 để thuận tiện cho việc tính toán.[2]

Các biến thể của ReLU

[sửa | sửa mã nguồn]

Sau khi ReLU trở thành hàm kích hoạt mặc định trong phần lớn các mạng sâu, nhiều biến thể của nó được đề xuất nhằm khắc phục các nhược điểm như hiện tượng ReLU chết, bắt nguồn bởi đầu ra của ReLU không đối xứng quanh 0 và tính không khả vi tại gốc tọa độ.[1] Một số biến thể vẫn giữ dạng hàm từng đoạn của ReLU nhưng thay đổi độ dốc ở miền âm, trong khi các biến thể khác thay thế hoàn toàn bằng các hàm trơn hơn để cải thiện quá trình tối ưu hóa.

Tên Hàm số Đạo hàm Đặc điểm chính
ReLU[2] Hàm cơ bản, chi phí tính toán thấp và tạo ra biểu diễn thưa
Leaky ReLU[4] Cho phép gradient vẫn tồn tại ở miền âm, giúp giảm hiện tượng ReLU chết
PReLU[11] Tương tự Leaky ReLU nhưng hệ số được học cùng với các tham số khác của mạng
Softplus[13] Phiên bản khả vi mượt của ReLU
ELU[12] Cho phép đầu ra âm và đưa giá trị trung bình của kích hoạt gần về 0
GELU[5] Thay vì loại bỏ hoàn toàn giá trị âm như ReLU, GELU gán trọng số cho chúng theo xác suất Gaussian
Swish / SiLU[14] Hàm trơn, không đơn điệu và thường được dùng trong các kiến trúc Transformer hiện đại
Mish[15] Hàm không đơn điệu, có tính chất tự điều chuẩn (self-regularization)
Squareplus[16] Có tính chất gần với Softplus nhưng không cần dùng hàm mũ hay hàm logarit

Ứng dụng thực tế

[sửa | sửa mã nguồn]

ReLU là hàm kích hoạt phổ biến nhất trong học sâu hiện đại, đặc biệt trong thị giác máy tính, nhận dạng tiếng nói và xử lý ngôn ngữ tự nhiên.

Trong thị giác máy tính, ReLU được sử dụng rộng rãi trong các mạng CNN như AlexNet, VGGNetResNet. Việc thay thế sigmoid bằng ReLU giúp quá trình huấn luyện nhanh hơn và giảm đáng kể ảnh hưởng của gradient biến mất.[2][3]

Trong nhận dạng tiếng nói, ReLU được dùng trong các mạng sâu để xây dựng mô hình âm học (acoustic model) thay cho sigmoid truyền thống. Maas, Hannun và Andrew Ng cho thấy các hàm chỉnh lưu giúp cải thiện rõ rệt kết quả nhận dạng âm vị trong các hệ thống nhận dạng giọng nói sâu.[4]

Trong xử lý ngôn ngữ tự nhiên, các biến thể như GELU và SwiGLU hiện là lựa chọn phổ biến trong các mô hình Transformer. GELU được sử dụng trong BERT, còn nhiều phiên bản GPTLLaMA sử dụng các biến thể khác của ReLU để cải thiện khả năng biểu diễn và hiệu quả huấn luyện.[5]

Tham khảo

[sửa | sửa mã nguồn]
  1. 1 2 Rasamoelina, Andrinandrasana David; Adjailia, Fouzia; Sinčák, Peter (tháng 1 năm 2020). "A Review of Activation Function for Artificial Neural Network". 2020 IEEE 18th World Symposium on Applied Machine Intelligence and Informatics (SAMI). tr. 281–286. doi:10.1109/SAMI48414.2020.9108717.
  2. 1 2 3 4 5 Glorot, Xavier; Bordes, Antoine; Bengio, Yoshua (ngày 14 tháng 6 năm 2011). "Deep Sparse Rectifier Neural Networks". Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics. tr. 315–323.
  3. 1 2 3 Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E. (2017). "ImageNet classification with deep convolutional neural networks". Communications of the ACM. Quyển 60 số 6. tr. 84–90. doi:10.1145/3065386.
  4. 1 2 3 4 Maas, Andrew L.; Hannun, Awni Y.; Ng, Andrew Y. (2013). Rectifier Nonlinearities Improve Neural Network Acoustic Models. Quyển 28. JMLR Workshop and Conference Proceedings. tr. 3–11.
  5. 1 2 3 4 Hendrycks, Dan; Gimpel, Kevin (2016). "Gaussian Error Linear Units (GELUs)". arXiv:1606.08415.
  6. Householder, Alston S. (ngày 1 tháng 6 năm 1941). "A theory of steady-state activity in nerve-fiber networks: I. Definitions and preliminary lemmas". The Bulletin of Mathematical Biophysics. Quyển 3 số 2. tr. 63–69. doi:10.1007/BF02478220.
  7. Fukushima, Kunihiko (tháng 10 năm 1969). "Visual Feature Extraction by a Multilayered Network of Analog Threshold Elements". IEEE Transactions on Systems Science and Cybernetics. Quyển 5 số 4. tr. 322–333. doi:10.1109/TSSC.1969.300225.
  8. Hahnloser, Richard H. R.; Sarpeshkar, Rahul; Mahowald, Misha A.; Douglas, Rodney J.; Seung, H. Sebastian (tháng 6 năm 2000). "Digital selection and analogue amplification coexist in a cortex-inspired silicon circuit". Nature. Quyển 405 số 6789. tr. 947–951. doi:10.1038/35016072.
  9. Jarrett, Kevin; Kavukcuoglu, Koray; Ranzato, Marc'Aurelio; LeCun, Yann (tháng 9 năm 2009). "What is the best multi-stage architecture for object recognition?". 2009 IEEE 12th International Conference on Computer Vision. tr. 2146–2153. doi:10.1109/ICCV.2009.5459469.
  10. Nair, Vinod; Hinton, Geoffrey (2010). "Rectified Linear Units Improve Restricted Boltzmann Machines". ICML.
  11. 1 2 He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2015). "Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification". arXiv:1502.01852.
  12. 1 2 Clevert, Djork-Arné; Unterthiner, Thomas; Hochreiter, Sepp (2015). "Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)". arXiv:1511.07289.
  13. Dugas, Charles; Bengio, Yoshua; Bélisle, François; Nadeau, Claude; Garcia, René (2000). "Incorporating second-order functional knowledge for better option pricing". Advances in Neural Information Processing Systems. Quyển 13.
  14. Ramachandran, Prajit; Zoph, Barret; Le, Quoc V. (2017). "Searching for Activation Functions". arXiv:1710.05941.
  15. Misra, Diganta (2019). "Mish: A Self Regularized Non-Monotonic Activation Function". arXiv:1908.08681.
  16. Barron, Jonathan T. (2021). "Squareplus: A Softplus-Like Algebraic Rectifier". arXiv:2112.11687.