Trong các phần trước ta đã khám phá về phương pháp hồi quy tuyến đường tính để tham dự đoán cổng output liên tục, phần này ta sẽ tham khảo thêm một thuật toán nữa trong học tập có thống kê giám sát là hồi quy logistic (Logistic Regression) nhằm mục đích mục lắp phân một số loại dữ liệu.

Bạn đang xem: Logistic regression là gì

Mục lục3. Ước lượng tham số5. Phân loại nhiều nhóm1. Định nghĩa

Phương pháp hồi quy logistic là một mô hình hồi quy nhằm dự đoán giá trị đầu ra output rời rạc (discrete target variable) $y$ ứng với cùng 1 véc-tơ nguồn vào $mathbfx$. Bài toán này tương tự với chuyện phân loại những đầu vào $mathbfx$ vào những nhóm $y$ tương ứng.

Ví dụ, xem một bức hình ảnh có chứa một nhỏ mèo xuất xắc không. Thì tại chỗ này ta coi áp sạc ra $y=1$ ví như bước hình ảnh có một nhỏ mèo và $y=0$ ví như bức ảnh không tất cả con mèo nào. Đầu vào $mathbfx$ tại chỗ này sẽ là các px một bức hình ảnh đầu vào.


Classification with 2 groupsClassification with 2 groups

Để solo giản, thứ nhất ta sẽ cùng đi tìm kiếm hiểu mô hình và cách giải quyết và xử lý cho bài toán phân các loại nhị phân tức là $y=,1$. Tiếp đến ta không ngừng mở rộng cho trường hợp những nhóm sau.

2. Tế bào hình

Sử dụng phương thức thống kê ta có thể coi rằng tài năng một nguồn vào $mathbfx$ nằm vào một nhóm $y_0$ là tỷ lệ nhóm $y_0$ khi biết $mathbfx$: $p(y_0|mathbfx)$. Dựa vào công thức xác xuất hậu nghiệm ta có:

$$eginalignedp(y_0|mathbfx) &= dfracp(mathbfxp(mathbfx)cr &= dfracy_0)p(y_0)y_0)p(y_0) + p(mathbfxendaligned$$

Đặt:$$a=lndfracy_0)p(y_0)p(mathbfx$$

Ta có:$$p(y_0|mathbfx)=dfrac11+exp(-a)=sigma(a)$$

Hàm $sigma(a)$ tại đây được điện thoại tư vấn là hàm sigmoid (logistic sigmoid function). Hình trạng chữ S bị chặn 2 đầu của chính nó rất đặt biệt ở phần dạng triển lẵm đều ra và khôn xiết mượt.

Ở đây tôi không hội chứng minh, nhưng vận dụng thuyết bày bán chuẩn, ta rất có thể chỉ ra rằng:$$a = mathbfw^intercalmathbfx + w_0$$Đặt: $mathbfx_0=<1,…,1>$, ta có thể viết gọn gàng lại thành:$$a = mathbfw^intercalmathbfx$$

Công thức tính phần trăm lúc này:$$p(y_0|mathbfx)=dfrac11+exp(-a)=sigma(mathbfw^intercalmathbfx)$$

Trong đó, $mathbfx$ là trực thuộc tính đầu vào còn $mathbfw$ là trọng số tương ứng.

Lưu ý rằng cũng giống như phần hồi quy tuyến tính thì $mathbfx$ tại đây không độc nhất thiết là đầu vào thô của tập dữ liệu mà ta rất có thể sử dụng những hàm cơ phiên bản $phi(mathbfx)$ để tạo thành nó. Tuy nhiên, sinh sống đây làm cho gọn gàng tôi không viết $phi(mathbfx)$ như lần trước nữa.

Có công thức tính được phần trăm rồi thì ta rất có thể sử dụng một ngưỡng $epsilonin <0,1>$ để đưa ra quyết định nhóm tương ứng. Cố thể:$$egincasesmathbfxin y_0 & extif p(y_0|mathbfx)geepsiloncrmathbfxin y_1 & extif p(y_0|mathbfx)ví dụ mẫu mã phần xác suất, ta nên tối thiểu hoá có tác dụng lỗi sau:$$J(mathbfw)=-frac1msum_i=1^mBig(y^(i)logsigma^(i) + (1-y^(i))log(1-sigma^(i))Big)$$

Trong đó, $m$ là size của tập dữ liệu, $y^(i)$ lớp khớp ứng của dữ liệu thứ $i$ vào tập dữ liệu, $sigma^(i)=sigma(mathbfw^intercalmathbfx^(i))$ là phần trăm tương ứng lúc tính với quy mô cho tài liệu thứ $i$.

3. Ước lượng tham số

3.1. Phương thức GD

Để về tối ưu hàm $J(mathbfw)$ trên, ta lại thực hiện các phương thức Gradient Descent nhằm thực hiện. Ở đây, đạo hàm của hàm log trên có thể được tính như sau:$$eginalignedfracpartial J(mathbfw)partial w_j&=frac1msum_i=1^m(sigma_j^(i)-y_j^(i))mathbfx_j^(i)cr &=frac1msum_i=1^mig(sigma(mathbfw^intercalmathbfx_j^(i))-y_j^(i)ig)mathbfx_j^(i)cr &=frac1mmathbfX_j^intercalig(mathbfsigma_j-mathbfy_jig)endaligned$$

Ví dụ, theo phương pháp BGD, ta sẽ cập nhập tham số sau từng vòng lặp như sau:$$mathbfw=mathbfw-etafrac1mmathbfX^intercalig(mathbfsigma-mathbfyig)$$

3.2. Phương pháp Newton-Raphson

Phương pháp ở phía trên ta chỉ sử dụng đạo hàm hàng đầu cho phép GD quen thuộc thuộc, tuy vậy ở vấn đề này việc áp dụng đạo hàm bậc 2 mang tại tốc độ xuất sắc hơn.

$$mathbfw=mathbfw-mathbfH^-1 abla J(mathbfw)$$

Trong đó, $ abla J(mathbfw)$ là ma trận Jacobi của $J(mathbfw)$, còn $mathbfH$ là ma trận Hessian của $J(mathbfw)$. Tuyệt nói cách khác, $mathbfH$ là ma trận Jacobi của $ abla J(mathbfw)$.

Phương pháp này mang tên chính thức là Newton-Raphson. Cách thức này không chỉ là sử dụng riêng cho bài toán hồi quy logistic cơ mà còn rất có thể áp dụng cho cả các bài toán hồi quy con đường tính. Tuy nhiên, việc thực hiện với hồi quy đường tính không thực thụ phổ biến.

Xem thêm: Danh Ngôn Về Sự Lừa Dối Trong Tình Yêu, Status Dối Trá

Ta có:$$eginaligned abla J(mathbfw)&=frac1msum_i=1^m(sigma^(i)-y^(i))mathbfx^(i)cr &=frac1mmathbfX^Tig(mathbfsigma-mathbfyig)endaligned$$

Đạo hàm của hàm sigmoid:$$fracdsigmada=sigma(1-sigma)$$

Nên:$$eginalignedmathbfH&= abla abla J(mathbfw)cr &=frac1msum_i=1^mmathbfx^(i)mathbfx^(i)^intercalcr &=frac1msum_i=1^mmathbfX^TmathbfXendaligned$$

Thế vào công thức cập nhập thông số ta tất cả tham số sau các lần cập nhập là:$$mathbfw=(mathbfX^TmathbfX)^-1mathbfX^Tmathbfy$$

Như vậy, so với cách lấy đạo hàm bậc 1 thì biện pháp này tỏ ra đơn giản và cấp tốc hơn.

4. Lập trình

Dựa vào những phân tích phía trên ta thử lập trình với BGD coi sao. Trong bài viết này tôi chỉ nhằm cập cho tới đoạn mã bao gồm để thực hiện việc tối ưu, còn tổng thể mã nguồn bạn có thể xem bên trên viagrapricewww.com.

Tập tài liệu được áp dụng ở đây là dữ liệu bài xích tập vào khoá học ML của giáo sư Andrew Ng.


DatasetDataset

Kết trái thu được:$$egincasesw_0=-7.45017822 crw_1=0.06550395 crw_2=0.05898701endcases$$

Thử vẽ đường phân bóc tách với $epsilon=0.5$ ta sẽ được:
Decision Boundary with ϵ=0.5Decision Boundary with ϵ=0.5

5. Phân loại nhiều nhóm

Ở phần bên trên ta vừa phân tích cách thức phân nhiều loại 2 team $y=,1$, phụ thuộc vào đó ta rất có thể tổng quát tháo hoá cho việc phân một số loại K nhóm $y=1,..,K$. Về cơ phiên bản 2 có 2 phương thức chính là:

Dựa theo cách thức 2 nhómDựa theo mô hình xác suất những nhóm

Cụ thể ra sao, ta cùng xem cụ thể ngày phần dưới đây.

5.1. Dựa theo phương pháp 2 nhóm

Ta có thể sử dụng cách thức phân loại 2 nhóm nhằm phân loại nhiều nhóm bằng phương pháp tính xác xuất của tầng nhóm tương xứng rồi lựa chọn nhóm có phần trăm lớn độc nhất là đích:$$p(y_k|mathbfx)=max p(y_j|mathbfx)~~~,forall j=overline1,K$$

Đoạn ra quyết định nhóm dựa theo ngưỡng $epsilon$ vẫn trọn vẹn tương từ bỏ như vậy. Ví như $p(y_k|mathbfx)geepsilon$ thì $mathbfxin y_k$, còn không thì nó sẽ không còn thuộc nhóm $y_k$.

Phương pháp này khá dễ dàng và dễ dàng hiểu song việc thực thi hoàn toàn có thể rất tốn kém thời gian do ta nên tính xác suất của tương đối nhiều nhóm. Bởi vậy ta cùng xem 1 chiến thuật khác công dụng hơn như bên dưới đây.

5.2. Dựa theo mô hình xác suất những nhóm

Tương từ bỏ như phân một số loại 2 nhóm, ta rất có thể mở rộng ra thành các nhóm cùng với cùng phương pháp sử dụng công thức tỷ lệ hậu nghiệm và để được hàm softmax sau:$$eginalignedp(y_k|mathbfx)=p_k&=fracy_k)p(y_k)y_j)p(y_j)cr &=fracexp(a_k)sum_jexp(a_j)endaligned$$

Với $a_j=logBig(p(mathbfx|y_j)p(y_j)Big)=mathbfw_j^intercalmathbfx$. Trong đó, $mathbfw_j$ là trọng số khớp ứng với nhóm $j$, còn $mathbfx$ là nguồn vào dữ liệu. Tập những $mathbfw_j$ sẽ tiến hành gom lại bởi một ma trận trọng số $mathbfW$ với mỗi cột tương ứng với trọng số của nhóm tương ứng.

Ở đây, ta đang mã hoá các nhóm của ta thành một véc-to one-hot với phần tử ở chỉ số nhóm tương xứng bằng 1 với các thành phần khác bởi 0. Ví dụ: $y_1=<1,0,…,0>, y_3=<0,0,1,0,…,0>$. Tập hợp những véc-tơ này lại ta sẽ sở hữu được một ma trận chéo $mathbfY$ với mỗi cột tương ứng với cùng một nhóm. Ví dụ, ma trận sau trình diễn cho tập 3 nhóm:$$mathbfY=eginbmatrix1 & 0 và 0 cr0 & 1 và 0 cr0 & 0 & 1endbmatrix$$

Như vậy, ta có thể tính phần trăm hợp toàn tập với trả sử những tập dữ liệu là độc lập đôi một:$$eginalignedp(mathbfY|mathbfW)&=prod_i=1^mprod_k=1^Kp(y_k|mathbfx_i)^Y_ikcr &=prod_i=1^mprod_k=1^Kp_ik^Y_ikendaligned$$

Trong đó, $p_ik=p_k(mathbfx_i)$. Lấy log ta được hàm lỗi:$$J(mathbfW)=-sum_i=1^msum_k=1^KY_iklog p_ik$$

Như vậy, ta có thể thấy đấy là công thức tổng quát của hàm lỗi vào trường thích hợp 2 nhóm. Công thức này còn có tên gọi là cross-entropy error function.

Việc tối ưu hàm lỗi này cũng giống như như trường vừa lòng 2 nhóm bằng phương pháp lấy đạo hàm:$$ abla_w_jJ(mathbfW)=sum_i=1^mig(p_ij-Y_ijig)mathbfx_i$$

cross-entropy là phương pháp đo độ giống như giữ 2 phân phối tỷ lệ với nhau. Ví như 2 phần phối càng như thể nhau thì cross-entropy của chúng càng nhỏ. Vậy nên để tìm mô hình gần với quy mô thực của tập dữ liệu, ta chỉ việc tối thiểu hoá cross-entropy của nó.

6. Over-fitting

Tương từ như phần hồi quy đường tính, ta hoàn toàn có thể xử lý overfitting bằng phương pháp thêm thông số chính quy hoá mang lại hàm lỗi:$$J(mathbfw)=-frac1msum_i=1^mBig(y^(i)logsigma^(i) + (1-y^(i))log(1-sigma^(i))Big)+lambdafrac1mmathbfw^intercalmathbfw$$

Đạo hàm bây giờ sẽ là:$$fracpartial J(mathbfw)partial w_j=frac1mmathbfX_j^intercalig(mathbfsigma_j-mathbfy_jig)+lambdafrac1mw_j$$

7. Kết luận

Bài viết lần này sẽ tổng kết lại phương thức phân nhiều loại logistic regression phụ thuộc cách tính phần trăm của mỗi nhóm. Phương này khá đơn giản nhưng cho hiệu quả rất khả quan với được áp dụng không hề ít trong cuộc sống.

Với phân loại nhị phân (2 nhóm), ta có cách tính xác suất:$$p(y_0|mathbfx)=dfrac11+exp(-a)=sigma(mathbfw^intercalmathbfx)$$

Hàm lỗi tương ứng:$$J(mathbfw)=-frac1msum_i=1^mBig(y^(i)logsigma^(i) + (1-y^(i))log(1-sigma^(i))Big)+lambdafrac1mmathbfw^intercalmathbfw$$

Có đạo hàm:$$fracpartial J(mathbfw)partial w_j=frac1mmathbfX_j^intercalig(mathbfsigma_j-mathbfy_jig)+lambdafrac1mw_j$$

Trong thực tế, ta liên tục phải phân nhiều loại nhiều nhóm. Bài toán này hoàn toàn có thể áp dụng bằng cách lấy team có phần trăm lớn tuyệt nhất hoặc áp dụng softmax nhằm tính xác suất:$$p(y_k|mathbfx)=p_k=fracexp(a_k)sum_jexp(a_j)$$Với $a_j=mathbfw_j^intercalmathbfx$, trong các số đó véc-tơ $mathbfw_j$ là trọng số tương xứng với mỗi nhóm.