Hàm tanh là gì?
Tang hyperbolic, ký hiệu \(\tanh(x)\), là một hàm trơn có dạng chữ S (dạng sigmoid) và xác định với mọi số thực x. Nó được định nghĩa bằng tỉ số giữa hiệu và tổng của hai hàm mũ \(e^x\) và \(e^{-x}\). Giá trị đầu ra luôn nằm hoàn toàn trong khoảng từ -1 đến 1, và đây là một hàm lẻ, tức là \(\tanh(-x) = -\tanh(x)\). Trong học máy, tanh là một hàm kích hoạt phổ biến cho nơ-ron vì nó có tâm tại 0, điều này thường giúp quá trình huấn luyện dựa trên gradient hội tụ nhanh hơn so với hàm sigmoid chạy từ 0 đến 1.
Cách sử dụng máy tính này
Bạn chỉ cần nhập một số thực bất kỳ cho x, công cụ sẽ trả về ngay \(\tanh(x)\) cùng hai đạo hàm tùy chọn rất hữu ích trong giải tích, vật lý và lan truyền ngược (back-propagation). Công cụ chấp nhận số âm, số thập phân và cả những giá trị có độ lớn rất lớn. Với x dương lớn, giá trị sẽ tiến dần (bão hòa) về +1; với x âm lớn, giá trị bão hòa về -1.
Giải thích công thức
Định nghĩa cốt lõi là
$$\tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}$$Mẫu số luôn lớn hơn hoặc bằng 2, nên không bao giờ xảy ra phép chia cho 0. Đạo hàm bậc một tuân theo một đẳng thức rất gọn:
$$f'(x) = 1 - \tanh^{2}(x)$$còn được viết là \(\operatorname{sech}^{2}(x)\). Lấy đạo hàm thêm một lần nữa, ta được đạo hàm bậc hai
$$f''(x) = -2\,\tanh(x)\left(1 - \tanh^{2}(x)\right)$$Để đảm bảo độ ổn định số học khi \(|x|\) rất lớn, công cụ sử dụng nội bộ một cách viết lại theo dạng mũ của \(-2x\) nhằm tránh tràn số.
Ví dụ minh họa (x = 0,5)
Với \(e^{0,5} = 1{,}6487212707\) và \(e^{-0,5} = 0{,}6065306597\), ta có
$$\tanh(0{,}5) = \frac{1{,}0421906110}{2{,}2552519304} = 0{,}4621171573$$Đạo hàm bậc một là
$$1 - 0{,}4621171573^{2} = 0{,}7864477623$$và đạo hàm bậc hai là
$$-2 \times 0{,}4621171573 \times 0{,}7864477623 = -0{,}7269989018$$Câu hỏi thường gặp
Miền giá trị của tanh là gì? Đó là khoảng mở (-1, 1); hàm tiến rất gần nhưng không bao giờ đạt được hai giá trị biên này.
tanh(0) bằng bao nhiêu? Bằng đúng 0, với \(f'(0) = 1\) và \(f''(0) = 0\).
Vì sao nên dùng tanh thay cho sigmoid? tanh có tâm tại 0 (giá trị đầu ra đối xứng quanh 0), điều này có thể giúp mạng nơ-ron học nhanh hơn, trong khi sigmoid logistic chỉ cho ra các giá trị dương trong khoảng 0 đến 1.