- vừa được xem lúc

Sigmoid dưới góc nhìn xác suất

0 0 10

Người đăng: Tung Nguyen

Theo Viblo Asia

Trong các bài toán phân lớp (classification) sử dụng Deep Learning, phần không thể thiếu cho đầu ra chính là hàm sigmoid (cho 2 classes) hay softmax (biến thể của sigmoid cho nhiều classes). Mục đích của hàm sigmoid là cho ra output là một vector, trong đó tổng các phần tử bằng 1, biểu thị xác suất khả năng mà sample đang xét rơi vào từng class. Vậy tại sao sigmoid lại có thể biểu diễn xác suất, chúng ta cùng làm rõ trong bài viết này 😄.

1. Xác suất có điều kiện và Bayes

Xác suất có điều kiện (Conditional probability) là xác suất của một sự kiện A nào đó, biết rằng một sự kiện B đã xảy ra và được ký hiệu là P(AB)P(A|B). Trong Deep Learning, cụ thể là bài toán classification, ta cần phải đi tìm xác suất rơi vào một class nào đó với điều kiện đã biết là vector đặc trưng của đầu vào. Mô tả rõ hơn thì với bài toán cần phân loại n classes C1,C2,,CnC_1, C_2,\dots, C_n, mô hình nhận đầu vào (ảnh, text, âm thanh), các layers trong network sẽ trích xuất các đặc trưng của đầu vào và cho ra một vector embedding xx. Vector embedding này sẽ điều kiện để tính xác suất rơi vào class nào. Với cic_i là class thứ ii, ta có thể ký hiệu mô hình xác suất này là P(Cix)P(C_i|x).

Quay lại về phần lý thuyết xác suất, ta cần nhắc lại công thức Bayes, đây là một lý thuyết quan trọng trong machine learning. Trước hết ta cần định nghĩa một nhóm đầy đủ như sau: Nhóm các sự kiện A1,A2,,AnA_1, A_2,\dots,A_n trong đó n2n\geq2 tạo thành một nhóm đầy đủ nếu

  • AiA_iAjA_j xung khắc từng đôi ij\forall i\neq j hay ký hiệu là AiAj=VA_iA_j=V với VV là sự kiện bất khả
  • A1+A2++An=UA_1 + A_2 + \dots + A_n = U (Với UU là sự kiện tất yếu)

Ví dụ về một nhóm đầy đủ là gieo một con xúc sắc, thì 6 sự kiện ứng với mỗi sự xuất hiện của 1 mặt trên tổng số 6 mặt tạo thành một nhóm đầy đủ. Và dễ thấy tổng xác suất mỗi sự kiện xảy ra độc lập trong một nhóm đầy đủ bằng 1. Đối chiếu với bài toán classification, với CiC_i là sự kiện mô hình dự đoán đầu vào là class ii, ta có C1,C2,,CnC_1, C_2,\dots, C_n tạo thành một nhóm đầy đủ. Với nhóm đầy đủ và H là một sự kiện nào đó, ta có công thức xác suất đầy đủ như sau:

P(H)=i=inP(Ai)P(HAi)P(H) = \sum_{i=i}^nP(A_i)P(H|A_i)

Từ công thức trên và công thức nhân xác suất ta có công thức Bayes:

P(AiH)=P(Ai)P(HAi)i=1nP(Ai)P(HAi)P(A_i|H) = \frac{P(A_i)P(H|A_i)}{\sum_{i=1}^n P(A_i)P(H|A_i)}

2. Ước lượng hợp lý cực đại

Bài toán ước lượng tham số có thể phát biểu như sau: Cho biến ngẫu nhiên XX có luật phân phối xác suất đã biết nhưng chưa biết tham số θ\theta nào đó, ta phải xác định giá trị của θ\theta dựa trên các thông tin thu được từ mẫu quan sát x1,x2,,xnx_1, x_2,\dots, x_n của XX. Quá trình đi xác định một tham số θ\theta chưa biết được gọi là quá trình ước lượng tham số . Ước lượng hợp lý cực đại (Tiếng Anh: Maximum likelihood estimation, viết tắt: MLE) là một phương pháp ước tính các tham số của phân phối xác suất giả định, dựa trên một số dữ liệu quan sát. Điều này đạt được bằng cách tối đa hóa hàm hợp lý (likelihood) sao cho, theo mô hình thống kê giả định, dữ liệu quan sát là có xác suất xảy ra lớn nhất. Nguyên lý hợp lý nhất là tìm giá trị của θ\theta là hàm của quan sát (x1,,xn)(x_1,\dots,x_n) sao cho bảo đảm xác suất thu được quan sát đó là lớn nhất. Giả sử biến gốc XX có hàm mật độ f(x,θ)f(x, \theta), khi đó hàm hợp lý (likelihood) được định nghĩa như sau:

L(x,θ)=i=1nf(x,θ)L(x, \theta) = \prod_{i=1}^nf(x, \theta)

Nếu hàm likelihood đảm bảo điều kiện khả vi 2 lần , ta có điều kiện cần để có cực trị:

L(x,θ)θ=0\frac{\partial L(x, \theta)}{\partial\theta}=0

tương đương với

lnL(x,θ)θ=0\frac{\partial\ln L(x, \theta)}{\partial\theta}=0

Phương trình trên cũng được gọi là phương trình hợp lý nhất.

Note: Thực tế việc tìm ước lượng hợp lý nhất rất khó khăn do hàm likelihood không phải lúc nào cũng lồi và thường phi tuyến. Trong phạm vi bài viết mình sẽ không đề cập quá sâu phần này, các bạn có thể tìm hiểu thêm

3. Mô hình hồi quy tuyến tính dưới góc nhìn xác suất

Lý do đề cập đến hồi quy tuyến tính ở đây là để xem cách chúng ta có thể xem nó như một mô hình xác suất của dữ liệu và liệu chúng ta có thể áp dụng các ý tưởng tương tự vào việc phân loại hay không. Giả sử ta có mô hình tuyến tính sau

y(i)=θTx(i)+ϵ(i)y^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)}

Trong đó ϵ\epsilon là nhiễu và độc lập với xx. Theo Định lý giới hạn trung tâm (Định lý này là kết quả về sự hội tụ yếu của một dãy các biến ngẫu nhiên, theo đó tổng của các biến ngẫu nhiên độc lập và phân phối đồng nhất theo cùng một phân phối xác suất, sẽ hội tụ về một biến ngẫu nhiên nào đó) thì ϵ\epsilon tuân theo phân phối chuẩn. Ở đây ϵ\epsilon được dùng để biểu thị sự sai lệch giữa target và kết quả dự đoán của mô hình, và nó có hàm phân phối

P(ϵ(i))=12πσexp((ϵ(i))22σ2)P(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(\epsilon^{(i)})^2}{2\sigma^2})

P(y(i)x(i);θ)=12πσexp((y(i)θTx(i))22σ2)P(y^{(i)}|x^{(i)}; \theta)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})

Ta gọi đây là xác suất xảy ra y(i)y^{(i)} với điều kiện x(i)x^{(i)} được tham số hóa bởi θ\theta. Ở đây bộ trọng số θ\theta là biến ngẫu nhiên và được tối ưu trong quá trình mô hình học. Một cách tự nhiên, mục đích của quá trình học là tìm bộ tham số θ\theta sao cho với đặc trưng quan sát x(i)x^{(i)}, khả năng nó rơi vào target y(i)y^{(i)} là lớn nhất (Đến đây chúng ta đã thấy sự liên quan tới lý thuyết MLE ở bên trên rồi ha 😅). Tiếp theo ta định nghĩa hàm likelihood của θ\theta

L(θ)=L(θ;X,y^)=P(y^X;θ)L(\theta)=L(\theta; X, \hat{y}) = P(\hat{y}|X; \theta)

Theo phương trình hợp lý nhất ở phần trên, ta có

L(θ)=i=1nP(y(i)x(i);θ)L(\theta)=\prod_{i=1}^nP(y^{(i)}|x^{(i)}; \theta)

L(θ)=i=1n12πσexp((y(i)θTx(i))22σ2)L(\theta)=\prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})

Để dễ dàng hơn cho việc tối ưu, ta lấy logarithm hai vế (việc này okela vì hàm log là đơn điệu) để biến việc tối ưu hàm mũ thành tối ưu hàm đa thức. Do đó quá trình tối ưu MLE sử dụng hàm có tên gọi là log-likelihood.

l(θ)=logL(θ)l(\theta) = \log L(\theta)

=logi=1n12πσexp((y(i)θTx(i))22σ2)= \log\prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})

=i=1nlog12πσexp((y(i)θTx(i))22σ2)= \prod_{i=1}^n\log\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})

=nlog12πσ1σ212i=1n(y(i)θTx(i))2= n\log\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}\cdot\frac{1}{2}\sum_{i=1}^{n}(y^{(i)}-\theta^Tx^{(i)})^2

Cực đại hóa biểu thức trên tương đương với cực tiểu hóa biểu thức sau (để ý đây chính là công thức least-square)

12i=1n(y(i)θTx(i))2\frac{1}{2}\sum_{i=1}^{n}(y^{(i)}-\theta^Tx^{(i)})^2

4. Xây dựng công thức cho sigmoid

Ở phần 3. đã map một bộ dự đoán tuyến tính với nhiễu Gauss tới biến mục tiêu. Đối với bài toán binary classification, sẽ thật tuyệt nếu chúng ta có thể làm điều gì đó tương tự, tức là map một bộ dự đoán tuyến tính với một thứ gì đó tới xác suất thuộc một trong hai lớp và sử dụng MLE để giải thích cho thiết kế mô hình bằng việc nó tối đa hóa xác suất cho việc rơi vào 1 class nào đó của 1 đặc trưng quan sát.

Xét mô hình tuyến tính y=θTx(i)+ϵ(i)y=\theta^Tx^{(i)}+\epsilon^{(i)}, một tập các điểm dữ liệu thuộc 2 classes C1C_1C2C_2 tuân theo hai phân phối chuẩn có kỳ vọng μ1\mu_1μ2\mu_2, độ lệch chuẩn cùng bằng 1 (Ở đây mình chọn 1 cho thuận tiện việc biến đổi biểu thức, vì thực ra chọn σ\sigma bất kỳ thì kết quả cuối cùng vẫn ra một đa thức nhưng nhìn nó sẽ rối mắt không cần thiết). Ta cần phân loại xem với với vector đặc trưng xx, nó sẽ rơi vào class nào trong 2 classes C1C_1C2C_2. Theo công thức Bayes, ta có

P(C1x)=P(xC1)P(C1)P(xC1)P(C1)+P(xC2)P(C2)P(C_1|x) = \frac{P(x|C_1)P(C_1)}{P(x|C_1)P(C_1)+P(x|C_2)P(C_2)}

Chia cả tử và mẫu cho P(xC1)P(C1)P(x|C_1)P(C_1) ta có:

P(C1x)=11+P(xC2)P(C2)P(xC1)P(C1)P(C_1|x) = \frac{1}{1+\frac{P(x|C_2)P(C_2)}{P(x|C_1)P(C_1)}}

MÌnh sẽ để lại nó một chút, quay lại về các điểm dữ liệu tuân theo hai phân phối chuẩn vừa đề cập bên trên, kết hợp sử dụng ước lượng hợp lý cực đại, ta có

P(xC1)=N(μ11)exp((xμ1)22)P(x|C_1) = N(\mu_1|1) \sim \exp(-\frac{(x-\mu_1)^2}{2})

P(xC2)=N(μ21)exp((xμ2)22)P(x|C_2) = N(\mu_2|1) \sim \exp(-\frac{(x-\mu_2)^2}{2})

Chia P(XC2)P(X|C_2) cho P(XC1)P(X|C_1) ta được:

P(XC2)P(XC1)=exp((xμ1)2(xμ2)22)\frac{P(X|C_2)}{P(X|C_1)}=\exp(\frac{(x-\mu_1)^2-(x-\mu_2)^2}{2})

=exp((μ2μ1)x12(μ22μ12))=\exp((\mu_2-\mu_1)x-\frac{1}{2}(\mu_2^2-\mu_1^2))

Đặt (μ2μ1)x12(μ22μ12)=α(x)(\mu_2-\mu_1)x-\frac{1}{2}(\mu_2^2-\mu_1^2)=-\alpha(x), ta thu được

P(C1x)=11+exp(α(x))=σα(x)P(C_1|x) = \frac{1}{1+\exp(-\alpha(x))} = \sigma\circ\alpha(x)

Trong đó σ:R(0,1)\sigma: R\to (0,1) được gọi là hàm sigmoid và α:RdR\alpha: R^d\to R được cho bởi công thức

α(x)=logP(xC1)P(C1)P(xC2)P(C2)=logP(C1,x)P(C2,x)\alpha(x)=\log\frac{P(x|C_1)P(C_1)}{P(x|C_2)P(C_2)}=\log\frac{P(C_1, x)}{P(C_2, x)}

Vậy là công thức hàm sigmoid đã xuất hiện =))). Trong trường hợp tổng quát cho nhiều class C1,,CnC_1,\dots, C_n, ta có

P(Ckx)=P(xCk)P(Ck)j=1nP(xCj)P(Cj)=exp(αk(x))j=1nexp(αj(x))P(C_k|x)=\frac{P(x|C_k)P(C_k)}{\sum_{j=1}^{n}P(x|C_j)P(C_j)}=\frac{\exp(\alpha_k(x))}{\sum_{j=1}^{n}\exp(\alpha_j(x))}

Đây chính là công thức của hàm softmax!

Tài liệu tham khảo

  1. Tống Đình Quỳ. Giáo trình xác suất thống kê. NXB Bách Khoa Hà Nội
  2. C. M. Bishop. Pattern recognition and machine learning. Springer, 2006.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Hành trình AI của một sinh viên tồi

Mình ngồi gõ những dòng này vào lúc 2h sáng (chính xác là 2h 2 phút), quả là một đêm khó ngủ. Có lẽ vì lúc chiều đã uống cốc nâu đá mà giờ mắt mình tỉnh như sáo, cũng có thể là vì những trăn trở về lý thuyết chồng chất ánh xạ mình đọc ban sáng khiến không tài nào chợp mắt được hoặc cũng có thể do mì

0 0 131

- vừa được xem lúc

[Deep Learning] Key Information Extraction from document using Graph Convolution Network - Bài toán trích rút thông tin từ hóa đơn với Graph Convolution Network

Các nội dung sẽ được đề cập trong bài blog lần này. . Tổng quan về GNN, GCN. Bài toán Key Information Extraction, trích rút thông tin trong văn bản từ ảnh.

0 0 204

- vừa được xem lúc

Tìm hiểu về YOLO trong bài toán real-time object detection

1.Yolo là gì. . Họ các mô hình RCNN ( Region-Based Convolutional Neural Networks) để giải quyết các bài toán về định vị và nhận diện vật thể.

0 0 272

- vừa được xem lúc

Encoding categorical features in Machine learning

Khi tiếp cận với một bài toán machine learning, khả năng cao là chúng ta sẽ phải đối mặt với dữ liệu dạng phân loại (categorical data). Khác với các dữ liệu dạng số, máy tính sẽ không thể hiểu và làm việc trực tiếp với categorical variable.

0 0 244

- vừa được xem lúc

TF Lite with Android Mobile

Như các bạn đã biết việc đưa ứng dụng đến với người sử dụng thực tế là một thành công lớn trong Machine Learning.Việc làm AI nó không chỉ dừng lại ở mức nghiên cứu, tìm ra giải pháp, chứng minh một giải pháp mới,... mà quan trọng là đưa được những nghiên cứu đó vào ứng dụng thực tế, được sử dụng để

0 0 55

- vừa được xem lúc

Xây dựng hệ thống Real-time Multi-person Tracking với YOLOv3 và DeepSORT

Trong bài này chúng ta sẽ xây dựng một hệ thống sử dụng YOLOv3 kết hợp với DeepSORT để tracking được các đối tượng trên camera, YOLO là một thuật toán deep learning ra đời vào tháng 5 năm 2016 và nó nhanh chóng trở nên phổ biến vì nó quá nhanh so với thuật toán deep learning trước đó, sử dụng YOLO t

0 0 303