Tìm hiểu Sigmoid Function và lịch sử hình thành của nó

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ó.

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.
Minh họa về dường cong chữ S của hàm Sigmoid Function.
Minh họa về dường cong chữ S của hàm Sigmoid Function.

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

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 07, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan

Callback Function là gì? Tổng quan về Callback Function

Nếu bạn đã học lập trình, chắc hẳn bạn biết thế nào là function. Nhưng bạn đã nghe đến Callback Function bao giờ chưa? Callback Function là một phần quan trọng của JavaScript. Một khi bạn hiểu rõ về , bạn sẽ thành thạo JavaScript hơn rất nhiều.  Mục lục1. Callback Function là gì?2. Tại […]

Softmax Function là gì? Tổng quan về Softmax Function

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ục1. Khái niệm Softmax Function2. Lịch sử hàm Softmax3. Tính chất của hàm Softmax4. Lợi ích […]
Tìm hiểu Sigmoid Function và lịch sử hình thành của nó

Tìm hiểu Sigmoid Function và lịch sử hình thành của nó

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ụcSigmoid Function là gì?Sigmoid Function dùng để làm gì?Lịch sử của Sigmoid FunctionHàm Sigmoid trước năm 1975Hàm Sigmoid sau năm 1975 Sigmoid Function là gì? Sigmoid […]
Function là gì? Những kiến thức cơ bản về Function trong lập trình

Function là gì? Những kiến thức cơ bản về Function trong lập trình

Bước vào thế giới lập trình, hẳn ai cũng sẽ thắc mắc Function là gì? Bài viết này sẽ giúp bạn làm rõ khái niệm này, đồng thời trình bày một số loại hàm cơ bản. Mục lụcFunction là gì?Các loại hàm trong lập trình1. Hàm Void2. Hàm yêu cầu giá trị đầu vào3. Hàm […]
Arrow Function trong ES6 – khi nào nên và không nên dùng?

Arrow Function trong ES6 – khi nào nên và không nên dùng?

Arrow Function là một trong những tính năng đặc biệt của ES6, nhưng vẫn chưa phổ biến với nhiều người. Bài viết này sẽ trình bày một số đặc điểm của Arrow Function và khi nào bạn nên hoặc không nên sử dụng nó. Mục lụcArrow Function trong ES6 có gì hay?Đặc điểm của Arrow […]

Inverse Function là gì? Tổng quan về hàm ngược

Inverse Function là một khái niệm trong toán học. Nó được sử dụng khá phổ biến trong lĩnh vực công nghệ thông tin, cụ thể là lập trình. Hôm nay hãy cùng Got It tìm hiểu về Inverse Function nhé. Tìm hiểu thêm: Function là gì? Mục lục1. Khái niệm Inverse Function2. Ví dụ về […]