Just A Moment - Bài 10: Logistic Regression

Nâng cao vốn trường đoản cú vựng của bạn với English Vocabulary in Use từ bỏ Cambridge.

Bạn đang xem: Just a moment

Học các từ chúng ta cần giao tiếp một cách tự tin.


*

*

*

*

phát triển Phát triển từ điển API Tra cứu bằng phương pháp nháy đúp chuột các tiện ích tra cứu kiếm tài liệu cấp phép
ra mắt Giới thiệu tài năng truy cập Cambridge English Cambridge University Press và Assessment cai quản Sự chấp thuận bộ nhớ và Riêng bốn Corpus Các lao lý sử dụng
*

English (UK) English (US) Español Español (Latinoamérica) Русский Português Deutsch Français Italiano 中文 (简体) 正體中文 (繁體) Polski 한국어 Türkçe 日本語 tiếng Việt हिंदी
Tiếng Anh Từ điển Người học Tiếng Anh Anh Essential Tiếng Anh Mỹ Essential
Anh–Hà Lan Tiếng Hà Lan–Tiếng Anh Tiếng Anh–Tiếng Pháp Tiếng Pháp–Tiếng Anh Tiếng Anh–Tiếng Đức Tiếng Đức–Tiếng Anh Tiếng Anh–Tiếng Indonesia Tiếng Indonesia–Tiếng Anh Tiếng Anh–Tiếng Ý Tiếng Ý–Tiếng Anh Tiếng Anh–Tiếng Nhật Tiếng Nhật–Tiếng Anh Tiếng Anh–Tiếng na Uy Tiếng mãng cầu Uy–Tiếng Anh Tiếng Anh–Tiếng bố Lan Tiếng bố Lan–Tiếng Anh Tiếng Anh–Tiếng Bồ Đào Nha Tiếng Bồ Đào Nha–Tiếng Anh Tiếng Anh–Tiếng Tây Ban Nha Tiếng Tây Ban Nha–Tiếng Anh
Tiếng Anh–Tiếng Ả Rập Tiếng Anh–Tiếng Catalan Tiếng Anh–Tiếng Trung Quốc (Giản Thể) Tiếng Anh–Tiếng Trung Quốc (Phồn Thể) Tiếng Anh–Tiếng Séc Tiếng Anh–Tiếng Đan Mạch Tiếng Anh–Hindi Tiếng Anh–Tiếng Hàn Quốc Tiếng Anh–Tiếng Malay Tiếng Anh–Tiếng Nga Tiếng Anh–Tiếng Thái Tiếng Anh–Tiếng Thổ Nhĩ Kỳ Tiếng Anh–Tiếng Ukraina Tiếng Anh–Tiếng Việt
1. Giới thiệu 2. Hàm mất đuối và phương pháp tối ưu 3. Lấy ví dụ với Python 4. Một vài đặc thù của Logistic Regression

1. Giới thiệu

Nhắc lại hai mô hình tuyến tính

Hai quy mô tuyến tính (linear models) Linear Regression với Perceptron Learning Algorithm (PLA) chúng ta đã biết đều sở hữu chung một dạng:

trong đó (f()) được điện thoại tư vấn là activation function, với (mathbfx) được hiểu là dữ liệu mở rộng với (x_0 = 1) được cung ứng để thuận tiện cho bài toán tính toán. Với linear regression thì (f(s) = s), cùng với PLA thì (f(s) = extsgn(s)). Vào linear regression, tích vô hướng (mathbfw^Tmathbfx) được trực tiếp sử dụng để tham gia đoán đầu ra (y), nhiều loại này phù hợp nếu chúng ta cần dự kiến một quý hiếm thực của đầu ra không xẩy ra chặn trên cùng dưới. Trong PLA, cổng đầu ra chỉ nhận một trong các hai cực hiếm (1) hoặc (-1 ), cân xứng với những bài toán binary classification.

Trong bài bác này, tôi sẽ giới thiệu mô hình thứ tía với một activation khác, được sử dụng cho các bài toán flexible hơn. Vào dạng này, đầu ra hoàn toàn có thể được diễn đạt dưới dạng tỷ lệ (probability). Ví dụ: phần trăm thi đỗ giả dụ biết thời hạn ôn thi, phần trăm ngày mai có mưa dựa trên những tin tức đo được trong thời gian ngày hôm nay,… quy mô mới này của chúng ta có tên là logistic regression. Quy mô này tương tự với linear regression sinh sống khía cạnh cổng output là số thực, và giống với PLA nghỉ ngơi việc áp ra output bị chặn (trong đoạn (<0, 1>)). Tuy nhiên trong tên tất cả chứa trường đoản cú regression, logistic regression thường xuyên được sử dụng nhiều hơn nữa cho những bài toán classification.

Một ví dụ như nhỏ

Tôi xin được áp dụng một lấy một ví dụ trên Wikipedia:

Một nhóm 20 sinh viên dành thời gian trong khoảng từ 0 mang đến 6 giờ cho vấn đề ôn thi. Thời hạn ôn thi này ảnh hưởng đến xác suất sinh viên thừa qua kỳ thi như vậy nào?

Kết trái thu được như sau:

Hours Pass Hours Pass
.5 0 2.75 1
.75 0 3 0
1 0 3.25 1
1.25 0 3.5 0
1.5 0 4 1
1.75 0 4.25 1
1.75 1 4.5 1
2 0 4.75 1
2.25 1 5 1
2.5 0 5.5 1

Mặc mặc dù có một chút bất công khi học 3.5 giờ đồng hồ thì trượt, còn học 1.75 giờ đồng hồ thì lại đỗ, nhìn chung, học càng các thì khả năng đỗ càng cao. PLA không thể áp dụng được cho vấn đề này vày không thể nói một bạn học bao nhiêu giờ thì 100% trượt tốt đỗ, và thực tế là dữ liệu này cũng ko linearly separable (điệu kiện nhằm PLA rất có thể làm việc). để ý rằng các điểm red color và xanh được vẽ ở hai tung độ khác biệt để luôn thể cho vấn đề minh họa. Những điểm này được vẽ cần sử dụng cả dữ liệu đầu vào (mathbfx) và áp sạc ra (y). Khi ta nói linearly seperable là lúc ta chỉ dùng dữ liệu đầu vào (mathbfx).

Chúng ta biểu diễn những điểm này trên đồ gia dụng thị để xem rõ hơn:


*

Nhận thấy rằng cả linear regression cùng PLA phần nhiều không cân xứng với vấn đề này, họ cần một quy mô flexible hơn.

Mô hình Logistic Regression

Đầu ra dự đoán của:

Linear Regression: PLA:

Đầu ra dự kiến của logistic regression thường được viết phổ biến dưới dạng:

Trong kia ( heta) được điện thoại tư vấn là logistic function. Một trong những activation cho mô hình tuyến tính được mang đến trong hình bên dưới đây:


*

Đường color vàng biểu diễn linear regression. Đường này không bị chặn cần không tương xứng cho bài toán này. Bao gồm một trick nhỏ tuổi để chuyển nó về dạng bị chặn: cắt phần nhỏ tuổi hơn 0 bằng cách cho chúng bằng 0, cắt các phần nhiều hơn 1 bằng phương pháp cho chúng bởi 1. Tiếp nối lấy điểm trên tuyến đường thẳng này có tung độ bởi 0.5 có tác dụng điểm phân chia hai class, đó cũng không phải là 1 trong lựa lựa chọn tốt. Mang sử có thêm vài bạn sinh viên tiêu biểu ôn tập đến 20 giờ và, tất nhiên, thi đỗ. Lúc áp dụng quy mô linear regression như hình tiếp sau đây và lấy mốc 0.5 nhằm phân lớp, toàn thể sinh viên thi trượt vẫn được dự đoán là trượt, nhưng tương đối nhiều sinh viên thi đỗ cũng khá được dự đoán là trượt (nếu ta coi điểm x màu xanh lục là ngưỡng cứng để đưa ra kết luận). Rõ ràng đây là một mô hình không tốt. Anh chàng sinh viên tiêu biểu này vẫn kéo theo rất nhiều người khác bị trượt.
*

Đường red color (chỉ không giống với activation function của PLA ở trong phần hai class là 0 với 1 thay vày -1 với 1) cũng ở trong dạng ngưỡng cứng (hard threshold). PLA không vận động trong việc này vì dữ liệu đã mang đến không linearly separable.

Các đường màu xanh da trời lam và xanh lục phù hợp với việc của họ hơn. Chúng có một vài ba tính chất quan trọng đặc biệt sau:

Là hàm số liên tiếp nhận giá trị thực, bị chặn trong tầm ((0, 1)). Ví như coi điểm bao gồm tung độ là một nửa làm điểm phân loại thì các điểm càng xa đặc điểm này về phía bên trái có mức giá trị càng sát 0. Ngược lại, các điểm càng xa điểm này về phía phải có mức giá trị càng sát 1. Điều này khớp với thừa nhận xét rằng học càng những thì phần trăm đỗ càng tốt và ngược lại. Mượt (smooth) nên có đạo hàm phần đông nơi, hoàn toàn có thể được lợi trong câu hỏi tối ưu.

Sigmoid function

Trong số các hàm số gồm 3 tính chất nói trên thì hàm sigmoid:được sử dụng nhiều nhất, bởi nó bị chặn trong vòng ((0, 1)). Thêm nữa:Đặc biệt rộng nữa:<egineqnarraysigma’(s) &=& frace^-s(1 + e^-s)^2 ewline&=& frac11 + e^-s frace^-s1 + e^-s ewline&=& sigma(s)(1 - sigma(s))endeqnarray>Công thức đạo hàm đơn giản dễ dàng thế này góp hàm số này được thực hiện rộng rãi. Ở phần sau, tôi sẽ lý giải việc người ta vẫn tìm ra hàm số đặc trưng này như thế nào.

Ngoài ra, hàm tanh cũng giỏi được sử dụng: < exttanh(s) = frace^s - e^-se^s + e^-s>

Hàm số này dìm giá trị trong vòng ((-1, 1)) nhưng có thể dễ dàng chuyển nó về khoảng tầm ((0, 1)). Bạn đọc có thể chứng minh được:< exttanh(s) = 2sigma(2s) - 1>

2. Hàm mất đuối và cách thức tối ưu

Xây dựng hàm mất mát

Với mô hình như trên (các activation màu xanh da trời lam với lục), ta rất có thể giả sử rằng xác suất để một điểm dữ liệu (mathbfx) lâm vào tình thế class một là (f(mathbfw^Tmathbfx)) và lâm vào cảnh class 0 là (1 - f(mathbfw^Tmathbfx)). Với quy mô được giả sử như vậy, với các điểm dữ liệu training (đã biết đầu ra (y)), ta có thể viết như sau:

<egineqnarrayP(y_i = 1 | mathbfx_i; mathbfw) &=& &f(mathbfw^Tmathbfx_i) ~~(1) ewline
P(y_i = 0 | mathbfx_i; mathbfw) &=& 1 - &f(mathbfw^Tmathbfx_i) ~~(2) ewlineendeqnarray>trong kia ( P(y_i = 1 | mathbfx_i; mathbfw)) được gọi là phần trăm xảy ra sự kiện cổng output (y_i = 1) khi biết tham số mô hình (mathbfw) và dữ liệu đầu vào (mathbfx_i). Bạn đọc có thể xem thêm Xác suất tất cả điều kiện. Mục tiêu của bọn họ là tìm các hệ số (mathbfw) làm thế nào cho (f(mathbfw^Tmathbfx_i)) càng gần với cùng một càng giỏi với các điểm dữ liệu thuộc class 1 và càng ngay gần với 0 càng xuất sắc với đông đảo điểm thuộc class 0.

Xem thêm: Hệ số nhiệt độ tốc độ phản ứng g là 2 hệ số nhiệt phản ứng ch

Ký hiệu (z_i = f(mathbfw^Tmathbfx_i)) với viết gộp lại nhì biểu thức bên trên ta có:

Biểu thức này là tương tự với nhị biểu thức ((1)) với ((2)) sinh sống trên vày khi (y_i=1), phần thứ hai của vế đề nghị sẽ triệt tiêu, lúc (y_i = 0), phần trước tiên sẽ bị triệt tiêu! bọn họ muốn quy mô gần với dữ liệu đã mang đến nhất, tức tỷ lệ này đạt giá trị cao nhất.

Xét cục bộ training mix với (mathbfX = in mathbbR^d imes N) cùng (mathbfy = ), bọn họ cần tìm kiếm (mathbfw) nhằm biểu thức tiếp sau đây đạt giá trị mập nhất:ở đây, ta cũng ký hiệu (mathbfX, y) như các biến đột nhiên (random variables). Nói biện pháp khác:

Bài toán tra cứu tham số để mô hình gần với dữ liệu nhất bên trên đây mang tên gọi chung là câu hỏi maximum likelihood estimation với hàm số phía đằng sau (argmax) được call là likelihood function. Khi thao tác với những bài toán Machine Learning sử dụng các mô hình xác suất thống kê, chúng ta sẽ chạm chán lại những bài toán thuộc dạng này, hoặc maximum a posteriori estimation, hết sức nhiều. Tôi đang dành 1 bài bác khác để nói đến hai dạng vấn đề này.

Giả sử thêm rằng những điểm dữ liệu được xuất hiện một phương pháp ngẫu nhiên độc lập với nhau (independent), ta hoàn toàn có thể viết:<egineqnarrayP(mathbfy|mathbfX; mathbfw) &=& prod_i=1^N P(y_i| mathbfx_i; mathbfw) ewline&=& prod_i=1^N z_i^y_i(1 - z_i)^1- y_iendeqnarray>với (prod) là cam kết hiệu của tích. Các bạn đọc có thể muốn tìm hiểu thêm về Độc lập thống kê.

Trực tiếp tối ưu hàm số này theo (mathbfw) xem qua không 1-1 giản! rộng nữa, lúc (N) lớn, tích của (N) số nhỏ tuổi hơn 1 hoàn toàn có thể dẫn tới không nên số trong đo lường và tính toán (numerial error) vị tích là một số trong những quá nhỏ. Một cách thức thường được thực hiện đó là đem logarit thoải mái và tự nhiên (cơ số (e)) của likelihood function vươn lên là phép nhân thành phép cộng và để tránh bài toán số thừa nhỏ. Tiếp đến lấy ngược lốt để được một hàm cùng coi nó là hàm mất mát. Bây giờ bài toán tìm giá bán trị lớn số 1 (maximum likelihood) trở thành bài toán tìm giá bán trị nhỏ dại nhất của hàm mất mát (hàm này còn gọi là negative log likelihood):<egineqnarrayJ(mathbfw) = -log P(mathbfy|mathbfX; mathbfw) ewline= -sum_i=1^N(y_i log z_i + (1-y_i) log (1 - z_i))endeqnarray>với chú ý rằng (z_i) là 1 trong những hàm số của (mathbfw). độc giả tạm lưu giữ biểu thức vế phải mang tên gọi là cross entropy, hay được sử dụng để đo khoảng cách thân hai trưng bày (distributions). Trong bài toán đang xét, một cung cấp là dữ liệu được cho, với tỷ lệ chỉ là 0 hoặc 1; phân phối còn sót lại được tính theo quy mô logistic regression. Khoảng cách thân hai phân phối nhỏ tuổi đồng nghĩa với bài toán (có vẻ minh bạch là) hai triển lẵm đó khôn xiết gần nhau. Tính chất ví dụ của hàm số này sẽ được đề cập trong một bài xích khác cơ mà tầm đặc biệt quan trọng của khoảng cách giữa hai bày bán là béo hơn.

Chú ý: vào machine learning, logarit thập phân ít được dùng, vày vậy (log) thường xuyên được dùng làm ký hiệu logarit tự nhiên.

Tối ưu hàm mất mát

Chúng ta lại sử dụng phương pháp Stochastic Gradient Descent (SGD) ở chỗ này (Bạn hiểu được khuyến khích phát âm SGD trước khi đọc phần này) . Hàm mất mát với có một điểm tài liệu ((mathbfx_i, y_i)) là:

Với đạo hàm:<egineqnarrayfracpartial J(mathbfw; mathbfx_i, y_i)partial mathbfw &=& -(fracy_iz_i - frac1- y_i1 - z_i ) fracpartial z_ipartial mathbfw ewline&=& fracz_i - y_iz_i(1 - z_i) fracpartial z_ipartial mathbfw ~~~~~~ (3)endeqnarray>

Để mang đến biểu thức này trở cần gọn với đẹp hơn, chúng ta sẽ tìm hàm (z = f(mathbfw^Tmathbfx)) sao cho mẫu số bị triệt tiêu. Nếu để (s = mathbfw^Tmathbfx), bọn họ sẽ có:Một biện pháp trực quan liêu nhất, ta vẫn tìm hàm số (z = f(s)) sao cho:để triệt tiêu chủng loại số trong biểu thức ((3)). Chúng ta cùng khởi động một chút với phương trình vi phân đơn giản này. Phương trình ((4)) tương đương với:<egineqnarray&fracpartial zz(1-z) &=& partial s ewlineLeftrightarrow & (frac1z + frac11 - z)partial z &=&partial s ewlineLeftrightarrow & log z - log(1 - z) &=& s ewlineLeftrightarrow và log fracz1 - z &=& s ewlineLeftrightarrow & fracz1 - z &=& e^s ewlineLeftrightarrow & z &=& e^s (1 - z) ewlineLeftrightarrow & z = frace^s1 +e^s &=&frac11 + e^-s = sigma(s)endeqnarray>Đến đây, tôi hy vọng chúng ta đã đọc hàm số sigmoid được tạo thành ra như vậy nào.

Chú ý: Trong câu hỏi giải phương trình vi phân sinh sống trên, tôi đã bỏ lỡ hằng số khi rước nguyên hàm hai vế. Tuy vậy, câu hỏi này không tác động nhiều tới kết quả.

Công thức update cho logistic sigmoid regression

Tới đây, bạn đọc rất có thể kiểm tra rằng:Qúa đẹp!

Và công thức update (theo thuật toán SGD) cho logistic regression là: Khá đơn giản! Và, như thường lệ, họ sẽ tất cả vài lấy ví dụ với Python.

3. Lấy ví dụ như với Python

Ví dụ với dữ liệu 1 chiều

Quay trở lại với lấy ví dụ nêu ở phần Giới thiệu. Trước tiên ta cần khai báo vài ba thư viện và dữ liệu:

Leave a Reply

Your email address will not be published. Required fields are marked *

x