Softmax Function là một khái niệm toán học. Nó được sử dụng phổ biến trong lĩnh vực công nghệ thông tin, cụ thể là Machine Learning (Học máy). Hãy cùng Got It tìm hiểu về Softmax Function nhé.
Mục lục
1. Khái niệm Softmax Function
Softmax Function dịch ra Tiếng Việt là hàm trung bình mũ. Hàm softmax tính toán xác suất xảy ra của một sự kiện. Nói một cách khái quát, hàm softmax sẽ tính khả năng xuất hiện của một class trong tổng số tất cả các class có thể xuất hiện. Sau đó, xác suất này sẽ được sử dụng để xác định class mục tiêu cho các input.
Cụ thể, hàm softmax biến vector k chiều có các giá trị thực bất kỳ thành vector k chiều có giá trị thực có tổng bằng 1. Giá trị nhập có thể dương, âm, bằng 0 hoặc lớn hơn 1, nhưng hàm softmax sẽ luôn biến chúng thành một giá trị nằm trong khoảng (0:1].
Như vậy, chúng có thể được gọi là “xác suất”. Nếu một trong các giá trị nhập rất nhỏ hoặc âm, hàm softmax biến chúng thành 1 xác suất nhỏ. Còn nếu một giá trị nhập lớn thì nó sẽ được chuyển thành một xác suất lớn. Nhưng xác suất luôn lớn hơn 0 và nhỏ hơn 1, hoặc bằng 1.
- Hàm Softmax được sử dụng trong mô hình hồi quy logistic phân loại.
- Trong xây dựng neural network (mạng thần kinh nhân tạo), hàm softmax được sử dụng trong nhiều lớp.
2. Lịch sử hàm Softmax
Hàm Softmax được sử dụng lần đầu trước cả sự xuất hiện của Machine Learning. Thực chất, nó được mượn từ cơ học vật lý và cơ học thống kê. Ở hai môn học này, hàm Softmax được biết đến với tên gọi phân phối Boltzmann và phân phối Gibbs. Nó được trình bày bởi nhà vật lý học và triết học người Úc Ludwig Boltzmann năm 1868.
3. Tính chất của hàm Softmax
Từ định nghĩa về hàm softmax, chúng ta có thể đoán được tính chất của nó. Dưới đây là một vài tính chất của hàm softmax:
- Xác suất sẽ luôn nằm trong khoảng (0:1].
- Tổng tất cả các xác suất bằng 1.
4. Lợi ích của Softmax Function
- Hàm softmax là tối ưu khi tính toán xác suất tối đa trong tham số mô hình.
- Tính chất của hàm softmax khiến hàm phù hợp với sự thông dịch xác suất, rất hữu ích trong Machine Learning (Học máy).
- Chuẩn hóa softmax là một cách để giảm thiểu ảnh hưởng của những giá trị cực trị hay dữ liệu ngoại lai trong dữ liệu mà không phải chỉnh sửa dữ liệu ban đầu.
5. Công thức hàm Softmax
Nguyên lý đằng sau hàm Softmax khá đơn giản. Với một vài số cho trước
- Tính hàm lũy thừa số e, với số mũ là những số đã cho
- Tính tổng các lũy thừa đó. Đó sẽ là mẫu số.
- Sử dụng lũy thừa của mỗi số là tử số
- Xác suất sẽ là tử số/mẫu số
Viết ngắn gọn lại, ta được công thức hàm Softmax:
Kí hiệu | Ý nghĩa |
---|---|
Giá trị vector nhập vào cho hàm softmax, (từ z0 đến zk) | |
Tất cả các giá trị z đều là giá trị vector nhập cho hàm softmax. Chúng có thể là bất cứ số thực nào, số dương, số âm hay số 0. Ví dụ một mạng thần kinh nhân tạo có thể có giá trị vector ra là (-0.62, 8.12, 2.53). Đây không phải là phân phối xác suất đúng. Đó là vì sao ta cần đến hàm softmax. | |
Hàm lũy thừa tiêu chuẩn được áp dụng cho mỗi giá trị nhập. Nó sẽ đưa ra một giá trị dương lớn hơn 0. Giá trị này sẽ rất nhỏ nếu giá trị nhập là âm, và rất lớn nếu giá trị nhập dương. Tuy nhiên, nó sẽ không cố định trong khoảng (0:1]. Đây là yêu cầu của một xác suất. | |
Dòng phía dưới của công thức là một cụm chuẩn hóa. Nó đảm bảo rằng tổng của các giá trị ra sẽ luôn bằng 1 và nằm trong khoảng (0:1]. Như vậy, sẽ xuất hiện phân phối xác suất chính xác. | |
Số class trong một phân loại nhiều class. |
6. Ví dụ
Giả sử ta có các số -1, 0, 3 và 5. Trước hết ta tính mẫu số:
Sau đó, chúng ta tính các tử số và xác suất:
Có thể thấy, x càng lớn thì xác suất của nó càng lớn. Ngoài ra, tổng các xác suất bằng 1, như đã nói ở trên.
7. Khai triển Softmax Function
Khi triển khai bằng ngôn ngữ Python, ta sử dụng Numpy, thư viện cho Python:
Còn đây là hình ảnh code khi triển khai Softmax Function bằng ngôn ngữ Julia:
Khi sử dụng ngôn ngữ R:
8. Ứng dụng của Softmax Function
Vì hàm softmax tính toán sự phân phối xác suất của một vector nên nó thường được sử dụng trong những phương thức phân loại đa lớp trong lĩnh vực Machine Learning, Deep Learning và Data Science (Khoa học dữ liệu). Softmax function tính toán xác suất của một lớp trên tổng số các lớp. Xác suất tính được sẽ giúp quyết định lớp chính xác cho một giá trị đầu vào. Softmax function được sử dụng nhiều nhất trong:
- Hồi quy logistic, hay còn gọi là hồi quy softmax.
- Mạng nơ-ron nhân tạo.
Got It hy vọng rằng với những thông tin trên đây, bạn đã hiểu rõ về Softmax Function hay hàm trung bình mũ. Chúc các bạn thành công trên con đường của mình.
Got It Vietnam – Tham khảo: DeepAI, Victor Zhou, Dataaspirant