Làm sáng tỏ softmax

Apr 15 2023
Làm cách nào để lấy hàm softmax từ các yêu cầu thiết kế nhiệm vụ phân loại?
Một cách tiếp cận phổ biến để phân loại nhiều lớp là lấy một bộ phân loại nhị phân riêng cho mỗi lớp. Mỗi bộ phân loại chịu trách nhiệm nhận ra lớp liên quan của chính nó.
Ảnh của Ramakant Sharda trên Bapt

Một cách tiếp cận phổ biến để phân loại nhiều lớp là lấy một bộ phân loại nhị phân riêng cho mỗi lớp.

Mỗi bộ phân loại chịu trách nhiệm nhận ra lớp liên quan của chính nó.

Đầu tiên, hãy xem xét các lựa chọn thiết kế đằng sau việc xây dựng một bộ phân loại nhị phân duy nhất. Trong phần tiếp theo, chúng tôi sẽ mở rộng thiết kế cho một tập hợp các bộ phân loại nhị phân.

Để bắt đầu, hãy lấy một phương trình tuyến tính lấy một vectơ các đặc điểm x và trả về một đầu ra y là tổng trọng số của các đặc điểm đầu vào và các tham số của nó. Đầu ra y là một số thực sẽ được ánh xạ tới một quyết định: Đầu vào x có đại diện cho một đối tượng thuộc về một lớp mà tôi phải phát hiện không ? Lựa chọn đơn giản nhất là trả về thông báo ' my class' khi y nhận giá trị dương và giữ bộ phân loại không hoạt động khi y âm.

Bộ phân loại nhị phân —Phiên bản beta

Nhưng sau đó chúng tôi sẽ bỏ lỡ thông tin về độ không chắc chắn/độ tin cậy của đầu ra của bộ phân loại. Chúng tôi cũng có thể trả về giá trị thô của đầu ra bộ phân loại y làm thước đo độ tin cậy của bộ phân loại trong kết quả . Tuy nhiên, phạm vi từ -∞ đến +∞ sẽ không thuận tiện cho việc giải thích, so sánh và xử lý hậu kỳ.

Yêu cầu thiết kế №1: đầu ra dưới dạng xác suất

Thay vào đó, tốt hơn là trả về một giá trị trong phạm vi giới hạn nghiêm ngặt có thể được hiểu là xác suất p mà đầu vào x đại diện cho đối tượng thuộc ' lớp của tôi '.

Do đó, câu hỏi đặt ra là làm thế nào để chiếu y ở một giá trị p có thể được diễn giải một cách lỏng lẻo như một xác suất?

Lúc đầu, giá trị này phải thuộc phạm vi <0,1>. Tiếp theo, 0,5 sẽ là bước ngoặt của quyết định. Cuối cùng, các giá trị lớn hơn 0,5 sẽ có lợi cho việc phát hiện tích cực một lớp.

Từ góc độ toán học, chúng tôi tìm kiếm một hàm liên tục φ :

sao cho 0 tiếp đất ở 0,5 , +∞ được chiếu ở 1 và -∞ ở 0 .

Bộ phân loại nhị phân - thiết kế cải tiến

Trong trường hợp này, cách dễ dàng là kỹ thuật nghịch đảo: bắt đầu từ p và quay lại y . Xác suất của lớp p có thể dễ dàng được dự đoán từ khoảng <0,1> tại < 0 , +∞) bằng cách sử dụng tỷ lệ chênh lệch:

Ánh xạ tiếp theo sẽ chuyển các giá trị thu được thành (-∞, +∞) . Sự lựa chọn rõ ràng là hàm logarit.

Sau đó, hai đầu gặp nhau ở đây. Chúng tôi bắt đầu từ khoảng < 0 , 1 > và đạt đến khoảng (-∞,+∞) , được giả định lúc đầu được trả về bởi y :

Hiện tại, cơ số B của logarit vẫn chưa được xác định.

Các bước tiếp theo là hoàn nguyên mối quan hệ về p = φ ( y ) mong muốn :

Cuối cùng, chúng tôi đi đến công thức mong muốn:

Bây giờ, chúng ta phải quyết định về giá trị của B . Chúng ta hãy xem biểu đồ hiển thị các biến thể của hàm φ đối với các giá trị khác nhau của B .

Cái nhỏ nhất dường như là B=2.71 . Thật ngạc nhiên, một giá trị tương tự có ký hiệu riêng là e và được gọi là cơ số tự nhiên. Do đó, đối với logarit cơ số tự nhiên, công thức cuối cùng có dạng sau:

Chúc mừng!

Chúng tôi vừa khám phá lại chức năng sigmoid nổi tiếng .

Câu hỏi dành cho bạn là : e có thực sự là sự lựa chọn tốt nhất? Điều gì sẽ xảy ra nếu chúng ta chọn một giá trị khác? Liệu chúng ta có đánh mất cách diễn giải theo xác suất?

Cũng xem xét điều này : tại sao không sử dụng một số mối quan hệ phi tuyến tính giữa y x ? Nhớ lại rằng để suy ra φ , chúng ta chỉ giả sử rằng giá trị của y nằm trong khoảng (-∞,+∞) .

Khi xử lý nhiều lớp (giả sử M ), chúng tôi chỉ định cho mỗi lớp bộ phân loại nhị phân của riêng nó.

Nếu các bộ phân loại hoạt động độc lập, có thể xảy ra trường hợp tất cả các xác suất được trả về không cộng lại bằng 1 , điều này khiến cho việc giải thích xác suất đầu ra của chúng bị thiếu sót. Đây là một thách thức để giải quyết ngay bây giờ.

Yêu cầu thiết kế №2: tổng kết thành một

Tất cả các phân loại có cùng x . Trình phân loại thứ i tính toán y_i . Một lần nữa chúng tôi muốn tạo một phép chiếu của y_i tại p_i , nhưng lần này đồng bộ với tất cả các bộ phân loại khác , do đó

Sự đồng bộ giữa các bộ phân loại là về thỏa thuận chung về cách chiếu y_i được tính toán độc lập tại p_i . Đối với một phân loại duy nhất, tỷ lệ chênh lệch liên quan đến xác suất của hai đầu ra: ' lớp của tôi ' với xác suất p so với ' không phải lớp của tôi ' với xác suất 1-p . Giá trị của y càng cao thì đầu ra ' my class ' càng có nhiều khả năng xảy ra . Bây giờ, thay vì đầu ra ' not my class ', chúng ta nên cụ thể hơn và giới thiệu đầu ra ' your class '. Do đó, phiên bản tổng quát hơn sẽ là: ' my class ' với xác suất p_kso với ' lớp của bạn ' với xác suất p_l . Và đầu ra của tôi y_k càng cao hơn đầu ra của bạn y_l , ' lớp của tôi ' càng có nhiều khả năng hơn ' lớp của bạn '.

Yêu cầu thiết kế №3: mối tương quan giữa các xác suất

Đây là phiên bản cập nhật của phương trình (1):

Lưu ý rằng yêu cầu này là phiên bản mở rộng của yêu cầu thiết kế №1.

Nhiệm vụ là lấy cả hai yêu cầu thiết kế №2 và №3, được biểu diễn bằng phương trình (2) và (3), và rút ra công thức cho hàm Φ _i như vậy :

Chúng tôi đã đưa ra quyết định sử dụng logarit cơ số tự nhiên e , vì vậy hãy sử dụng nó cho phần còn lại của chúng tôi:

Để sử dụng thông tin có trong phương trình (2), chúng tôi áp dụng tổng cho cả hai bên:

và rút ra các phần tử không thay đổi theo k trước các dấu tổng. Lưu ý rằng, theo phương trình (2), tổng của tất cả các xác suất bằng 1 :

Cuối cùng, chúng tôi đến chức năng sau:

có thể được viết lại cho i thay vì l như:

Xin chúc mừng một lần nữa!

Bằng cách này, cuối cùng chúng tôi đã khám phá lại chức năng softmax được biết đến rộng rãi .

suy nghĩ cuối cùng

Tôi hy vọng bạn đánh giá cao rằng chúng tôi đã tìm đường đến chức năng softmax một cách rõ ràng. Chúng tôi đã không dùng đến những điều mặc khải, những phép loại suy lỏng lẻo từ khoa học vật lý, hoặc các cơ quan có thẩm quyền theo những cân nhắc của chúng tôi. Trong bài viết này, hàm softmax là kết quả của một dòng lập luận bắt nguồn từ các yêu cầu tự nhiên đặt ra cho các vấn đề nhiều lớp .

Ý định của tôi là mang đến cho bạn cảm giác mạnh mẽ hơn về nguồn gốc của hàm softmax trong việc giải quyết các vấn đề về học máy.

Tôi khuyên bạn nên kiểm tra một cách tiếp cận rất đầy cảm hứng khác để tạo ra hàm sigmoid được thực hiện trên blog Will Wolf .

Cuối cùng, hãy tự cân nhắc liệu tất cả những điều này có thể đạt được theo cách khác hay không: sử dụng các bộ phân loại hoạt động độc lập, chuẩn hóa tất cả p_i sau đó, sau đó thay thế p_i bằng các giá trị chuẩn hóa.

Người giới thiệu

[1] Gabriel Furnieres : Hàm Sigmoid và SoftMax trong 5 phút . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9

[2] Will Wolf : Lấy Softmax từ Nguyên tắc đầu tiên .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/