Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Tìm hiểu Activation Functions trong PyTorch
Trong phần này, sẽ cùng tìm hiểu về chức năng kích hoạt – một thành phần cực kỳ quan trọng trong mạng nơ-ron nhân tạo (neural nets). Chức năng kích hoạt không chỉ giúp mạng học được các đặc tính phi tuyến mà còn giúp tối ưu hóa và cải thiện hiệu suất của mô hình học sâu. Mình sẽ lần lượt tìm hiểu các khía cạnh sau:

Chức năng kích hoạt là gì và tại sao chúng quan trọng.Cách áp dụng chúng trong PyTorch.Tổng quan về các loại chức năng kích hoạt phổ biến:
- Binary Step (Bước nhị phân)
- Sigmoid
- Tanh (Hyperbolic Tangent)
- ReLU (Rectified Linear Unit)
- Leaky ReLU
- Softmax
Chi tiết về từng Activation Function trong PyTorch

Binary Step (Bước nhị phân)
Đây là chức năng kích hoạt cơ bản nhất, thường được dùng trong các hệ thống logic. Kết quả trả về chỉ là 0 hoặc 1, dựa trên ngưỡng xác định.
Tuy nhiên, do không có gradient (đạo hàm), chức năng này không được sử dụng phổ biến trong học sâu.
Sigmoid
Hàm Sigmoid nén đầu vào xuống khoảng giá trị giữa 0 và 1. Điều này giúp chuyển đổi kết quả thành xác suất.
output = torch.sigmoid(x) print(output) s = nn.Sigmoid() output = s(x) print(output)
Tanh (Hyperbolic Tangent)
Tương tự như Sigmoid, nhưng Tanh đưa kết quả vào khoảng từ -1 đến 1, giúp dữ liệu trung bình được đặt gần 0.
Bài viết này được đăng tại [free tuts .net]
output = torch.tanh(x) print(output) t = nn.Tanh() output = t(x) print(output)
ReLU (Rectified Linear Unit)
ReLU là hàm kích hoạt phổ biến nhất, đặc biệt trong các lớp ẩn của mạng nơ-ron. Hàm này giữ nguyên giá trị dương và thay các giá trị âm thành 0, giúp giảm vấn đề "vanishing gradient".
output = torch.relu(x) print(output) relu = nn.ReLU() output = relu(x) print(output)
Leaky ReLU
Một biến thể của ReLU, Leaky ReLU cho phép gradient có giá trị nhỏ đối với đầu vào âm thay vì thay thế bằng 0 hoàn toàn.
output = F.leaky_relu(x) print(output) lrelu = nn.LeakyReLU() output = lrelu(x) print(output)
Softmax
Hàm Softmax chuyển đổi đầu ra thành xác suất, đặc biệt hữu ích trong bài toán phân loại đa lớp. Kết quả tổng của tất cả xác suất sẽ là 1.
output = torch.softmax(x, dim=0) print(output) sm = nn.Softmax(dim=0) output = sm(x) print(output)

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng