Hàm Softplus là gì?
Hàm Softplus, \(f(x) = \ln(1 + e^x)\), là một xấp xỉ trơn và khả vi của hàm kích hoạt ReLU (rectified linear unit) thường dùng trong mạng nơ-ron. Khác với ReLU vốn có một góc gãy sắc nét tại gốc tọa độ, Softplus trơn ở mọi điểm và luôn dương ngặt. Công cụ này lập bảng các giá trị x, f(x) và đạo hàm bậc nhất trên khoảng bạn chọn, đồng thời vẽ cả hai đường cong để bạn dễ dàng quan sát dáng đặc trưng đi từ chữ S mềm mại chuyển dần sang đường dốc thẳng.
Cách sử dụng
Bạn cần nhập ba thông số: Giá trị ban đầu của x (hoành độ đầu tiên), Bước nhảy (khoảng cách giữa các điểm) và Số lần lặp (số dòng cần tạo). Ví dụ, giá trị ban đầu là -5, bước nhảy 0,1 và 101 lần lặp sẽ cho x chạy từ -5,0 đến +5,0. Kết quả là một bảng có thể cuộn cùng đồ thị của Softplus và đạo hàm của nó.
Giải thích công thức
Softplus được định nghĩa là
$$f(x) = \ln\!\left(1 + e^{x}\right)$$Đạo hàm của nó là
$$f'(x) = \frac{e^{x}}{1 + e^{x}} = \frac{1}{1 + e^{-x}}$$và đây chính xác là hàm sigmoid logistic. Khi x tăng lớn về phía dương, \(f(x)\) tiến dần đến \(x\) còn \(f'(x)\) tiến đến 1; khi x giảm sâu về phía âm, \(f(x)\) tiến về 0 và \(f'(x)\) cũng tiến về 0. Để tránh tràn số khi x lớn, công cụ sử dụng dạng ổn định về mặt số học
$$f(x) = \max(x, 0) + \ln\!\left(1 + e^{-|x|}\right)$$
Ví dụ minh họa
Tại \(x = 0\):
$$f(0) = \ln(2) = 0{,}693147 \qquad f'(0) = 0{,}5$$Tại \(x = 1\):
$$f(1) = \ln(1 + 2{,}718282) = 1{,}313262 \qquad f'(1) = \frac{1}{1 + e^{-1}} = 0{,}731059$$Tại \(x = -1\):
$$f(-1) = 0{,}313262 \qquad f'(-1) = 0{,}268941$$Lưu ý đẳng thức \(f(x) - f(-x) = x\), chẳng hạn \(1{,}313262 - 0{,}313262 = 1\).
Câu hỏi thường gặp
Tại sao nên dùng Softplus thay vì ReLU? Softplus trơn và có gradient khác 0 ở mọi điểm, điều này có thể hỗ trợ các thuật toán tối ưu dựa trên gradient, dù ReLU tính toán nhẹ và nhanh hơn.
Giá trị đầu ra có luôn dương không? Có. \(\ln(1 + e^x) > 0\) với mọi x hữu hạn, bởi vì \(1 + e^x > 1\).
Đạo hàm biểu diễn điều gì? Đó là độ dốc của đường cong Softplus và bằng đúng hàm sigmoid logistic, biến thiên đơn điệu từ 0 đến 1 với giá trị 0,5 tại \(x = 0\).