Sigmoid Function là một khái niệm quen thuộc trong Deep Learning. Bài viết sẽ trình bày sơ bộ về Sigmoid Function và lịch sử hình thành của nó.
Mục lục
Sigmoid Function là gì?
Sigmoid Function (Hàm Sigmoid) còn được gọi là đường cong Sigmoid. Đây là một hàm toán học có đặc trưng là đường cong hình chữ S. Nó thể hiện cho sự biến đổi các giá trị giữa phạm vi 0 và 1. Nó là một trong những hàm kích hoạt (activation function) phi tuyến tính được sử dụng rộng rãi nhất.
Có một số hàm Sigmoid phổ biến, chẳng hạn như: hàm Sigmoid logistic, hàm tiếp tuyến hyperbol và hàm ArcTan. Trong máy học (machine learning), thuật ngữ Sigmoid Function thường được dùng để chỉ hàm Sigmoid logistic, còn được gọi là hàm logistic.
Sigmoid Function dùng để làm gì?
Tất cả các hàm Sigmoid đều có một đặc điểm chung. Chúng có thể chuyển những con số đầu vào thành một phạm vi nhỏ nhất định. Cụ thể, các con số đầu vào sẽ chuyển thành từ 0 đến 1 hoặc -1 và 1. Nghĩa là, Hàm Sigmoid dùng để chuyển một giá trị thực thành một giá trị kiểu xác suất.
Hàm Sigmoid sẽ nhận đầu vào (input) và thực hiện những công việc sau:
- Nếu biến đầu vào âm, hàm Sigmoid sẽ chuyển gần như tất cả thành một số gần với 0.
- Với gần như tất cả đầu vào dương, hàm Sigmoid sẽ biến đầu vào thành một số gần với 1.
- Trường hợp đầu vào tương đối gần 0, hàm Sigmoid sẽ chúng thành số bất kỳ từ 0 đến 1.
Lịch sử của Sigmoid Function
Khái niệm Sigmoid Function không hề mới, mà nó đã được hình thành từ rất lâu. Ta có thể chia lịch sử của Hàm Sigmoid ra làm hai giai đoạn như sau:
Hàm Sigmoid trước năm 1975
Năm 1798, Thomas Robert Malthus đã xuất bản một cuốn sách tên là “An Essay on the Principle of Population” (Một bài luận về Nguyên tắc Dân số). Ông là một giáo sĩ và nhà kinh tế học người Anh. Cuốn sách của ông khẳng định rằng dân số đang tăng theo một tiến trình hình học. Điều này nghĩa là cứ mỗi 25 năm thì dân số lại tăng gấp đôi. Trong khi đó, nguồn cung cấp lương thực lại tăng lên theo số học. Ông cho rằng sự khác biệt giữa hai con số này là do nạn đói đang lang rộng.
Cuối những năm 1830, nhà toán học người Bỉ Pierre François Verhulst đã thử nghiệm những cách khác nhau để mô hình hóa sự gia tăng dân số. Verhulst muốn giải thích rằng dân số không tăng theo cấp số nhân mãi, mà nó có giới hạn. Ông chọn hàm logistic để mô hình hóa sự chậm lại của tốc độ tăng trưởng dân số.
Hàm Sigmoid tiếp tục được sử dụng trong các thế kỷ tiếp theo. Nhiều nhà sinh học và khoa học khác dùng nó như một công cụ tiêu chuẩn để mô hình hóa sự tăng trưởng dân số.
Hàm Sigmoid sau năm 1975
Năm 1943, Warren McCulloch và Walter Pitts đã phát triển mô hình mạng nơ-ron nhân tạo sử dụng ngưỡng cứng (hard cutoff) làm hàm kích hoạt. Cụ thể, nơ-ron xuất ra 1 hoặc 0 tùy vào việc đầu vào cao hơn hay thấp hơn ngưỡng.
Năm 1972, Hugh Wilson và Jack Cowan đã tìm cách mô hình hóa các nơ-ron sinh học bằng phép tính. Họ dùng hàm Sigmoid logistic để mô hình hóa sự kích họat của một tế bào thần kinh. Trong đó, một nơ-ron sẽ gửi tín hiệu đến nơ-ron khác nếu nó nhận được tín hiệu lớn hơn điện thế kích hoạt. Mô hình này được gọi là mô hình Wilson – Cowan.
Từ những năm 1970 và 1980 trở đi, một số nhà nghiên cứu bắt đầu sử dụng các hàm Sigmoid trong các công thức của mạng nơ-ron nhân tạo, lấy cảm hứng từ các mạng nơ-ron sinh học. Năm 1998, Yann LeCun đã chọn hàm tiếp tuyến hyperbol làm hàm kích hoạt trong mạng LeNet nổi tiếng của mình. Đây là mạng đầu tiên có thể nhận dạng các chữ số viết tay ở mức độ chính xác thực tế.
Những năm gần đây, mạng nơ-ron nhân tạo đã bỏ hàm Sigmoid để chuyển sang dùng hàm ReLU. Lý do là vì tất cả các biến thể của hàm Sigmoid đều được thiết kế cho việc tính toán. Trong khi đó, hàm ReLU có độ phi tuyến tính cần thiết để tận dụng độ sâu của mạng. Hàm ReLU cũng tính toán rất nhanh.
Tóm lại, Sigmoid Function đã có một quá trình hình thành và phát triển khá lâu. Hy vọng, qua bài viết này, bạn đã hiểu thêm nhiều điều về Sigmoid Function.
Got It Vietnam – Tham khảo: DeepAI.org