Lda là gì
1. Giới thiệu
Trong hai nội dung bài viết trước, tôi đã trình làng về thuật toán bớt chiều dữ liệu được sử dụng thoáng rộng nhất - Principle Component Analysis (PCA). Như sẽ đề cập, PCA là một phương pháp thuộc nhiều loại unsupervised learning, có nghĩa là nó chỉ sử dụng những vector mô tả dữ liệu mà không cần sử dụng tới labels, trường hợp có, của dữ liệu. Trong câu hỏi classification, dạng điển hình nổi bật nhất của supervised learning, việc áp dụng labels sẽ mang lại tác dụng phân loại xuất sắc hơn.
Bạn đang xem: Lda là gì
Nhắc lại một lần nữa, PCA là cách thức giảm chiều dữ liệu sao để cho lượng tin tức về dữ liệu, bộc lộ ở tổng phương sai, được gìn giữ là nhiều nhất. Tuy nhiên, trong tương đối nhiều trường hợp, ta không buộc phải giữ lại lượng thông tin lớn số 1 mà chỉ cần giữ lại thông tin quan trọng cho riêng bài toán. Xét lấy ví dụ về câu hỏi phân lớp cùng với 2 classes được miêu tả trong Hình 1.

Hình 1: Chiếu tài liệu lên những đường thẳng không giống nhau. Có hai lớp tài liệu minh hoạ bởi các điểm màu xanh da trời và đỏ. Tài liệu được giảm số chiều về 1 bằng cách chiếu chúng lên các đường thẳng không giống nhau (d_1) với (d_2). Vào hai biện pháp chiều này, phương của (d_1) gần giống với phương của nguyên tố chính thứ nhất của dữ liệu, phương của (d_2) sát với nhân tố phụ của dữ liệu nếu sử dụng PCA. Lúc chiếu lên (d_1), những điểm màu đỏ và xanh bị chồng lấn lên nhau, để cho việc phân loại dữ liệu là không khả thi trên đường thẳng này. Ngược lại, khi được chiếu lên (d_2), dữ liệu của hai class được phân thành các các tương ứng bóc tách biệt nhau, khiến cho việc classification trở nên dễ dàng và đơn giản hơn và công dụng hơn. Những đường cong hình chuông thể hiện xấp xỉ phân bố phần trăm của dữ liệu hình chiếu trong những class.
Trong Hình 1, ta trả sử rằng dữ liệu được chiếu lên 1 con đường thẳng và mỗi điểm được thay mặt đại diện bởi hình chiếu của nó khởi hành thẳng kia. Như vậy, từ dữ liệu nhiều chiều, ta đã giảm nó về 1 chiều. Câu hỏi đặt ra là, đường thẳng cần có phương ra làm sao để hình chiếu của dữ liệu trên phố thẳng này giúp ích cho việc classification nhất? vấn đề classification dễ dàng và đơn giản nhất rất có thể được gọi là việc đào bới tìm kiếm ra một ngưỡng góp phân bóc tách hai class một cách đơn giản và đạt công dụng tốt nhất.
Xét hai tuyến phố thằng (d_1) với (d_2). Trong số ấy phương của (d_1) ngay gần với phương của thành phần chủ yếu nếu làm cho PCA, phương của (d_2) ngay sát với phương của thành phần phụ tìm kiếm được bằng PCA. Giả dụ ra làm bớt chiều tài liệu bằng PCA, ta đã thu được dữ liệu gần với những điểm được chiếu lên (d_1). Bây giờ việc phân bóc hai class trở nên tinh vi vì những điểm đại diện thay mặt cho nhì classes ck lấn lên nhau. Ngược lại, ví như ta chiếu dữ liệu lên con đường thẳng ngay sát với yếu tắc phụ tìm được bởi PCA, tức (d_2), những điểm hình chiếu nằm hoàn toàn về nhị phía không giống nhau của điểm màu sắc lục trên phố thẳng này. Với vấn đề classification, bài toán chiếu tài liệu lên (d_2) vì vậy sẽ sở hữu lại hiệu quả hơn. Câu hỏi phân loại một điểm dữ liệu mới vẫn được xác minh nhanh chóng bằng phương pháp so sánh hình chiếu của chính nó lên (d_2) với điểm greed color lục này.
Qua lấy ví dụ trên ta thấy, không phải bài toán giữ lại thông tin nhiều tuyệt nhất sẽ luôn luôn mang lại tác dụng tốt nhất. để ý rằng kết quả của so với trên đây không có nghĩa là thành phần phụ có lại tác dụng tốt hơn thành phần chính, nó chỉ là 1 trong trường hợp quánh biệt. Vấn đề chiếu dữ liệu lên mặt đường thẳng nào yêu cầu nhiều phân tích cụ thể hơn nữa. Cũng xin nói thêm, hai tuyến đường thằng (d_1) cùng (d_2) trên phía trên không vuông góc cùng với nhau, tôi chỉ lựa chọn ra hai hướng sát với những thành phần chủ yếu và phụ của tài liệu để minh hoạ. Nếu như khách hàng cần tìm hiểu thêm về nguyên tố chính/phụ, các bạn sẽ thấy bài 27 và bài xích 28 về Principal Component Analysis (Phân tích yếu tắc chính) có ích.
Linear Discriminant Analysis (LDA) được thành lập và hoạt động nhằm giải quyết vấn đề này. LDA là một phương thức giảm chiều tài liệu cho bài toán classification. LDA rất có thể được xem như là một phương thức giảm chiều tài liệu (dimensionality reduction), cùng cũng rất có thể được coi là một cách thức phân lớp (classification), và cũng hoàn toàn có thể được vận dụng đồng thời cho tất cả hai, tức sút chiều dữ liệu làm thế nào cho việc phân lớp công dụng nhất. Số chiều của dữ liệu mới là nhỏ dại hơn hoặc bằng (C-1) trong số đó (C) là con số classes. Trường đoản cú ‘Discriminant’ được gọi là những tin tức đặc trưng cho mỗi class, khiến cho nó không xẩy ra lẫn với các classes khác. Trường đoản cú ‘Linear’ được dùng vì giải pháp giảm chiều dữ liệu được thực hiện bởi một ma trận chiếu (projection matrix), là một trong phép thay đổi tuyến tính (linear transform).
Trong Mục 2 dưới đây, tôi sẽ trình diễn về trường phù hợp binary classification, tức bao gồm 2 classes. Mục 3 sẽ tổng thể lên cho trường phù hợp với nhiều classes rộng 2. Mục 4 sẽ sở hữu được các ví dụ cùng code Python mang lại LDA.
2. Linear Discriminant Analysis cho câu hỏi với 2 classes
2.1. Ý tưởng cơ bản
Mọi phương thức classification phần đa được ban đầu với bài toán binary classification, với LDA cũng chưa phải ngoại lệ.
Quay lại với Hinh 1, những đường hình chuông diễn tả đồ thị của những hàm tỷ lệ xác suất (probability density function - pdf) của tài liệu được chiếu xuống theo từng class. Phân phối chuẩn ở trên đây được áp dụng như là một trong đại diện, dữ liệu không tuyệt nhất thiết luôn luôn phải tuân theo phân phối chuẩn.
Độ rộng lớn của mỗi mặt đường hình chuông diễn tả độ lệch chuẩn của dữ liệu. Dữ liệu càng triệu tập thì độ lệch chuẩn chỉnh càng nhỏ, càng phân tán thì độ lệch chuẩn càng cao. Lúc được chiếu lên (d_1), dữ liệu của nhì classes bị phân tán thừa nhiều, làm cho chúng bị trộn lẫn vào nhau. Khi được chiếu lên (d_2), từng classes đều phải sở hữu độ lệch chuẩn chỉnh nhỏ, để cho dữ liệu vào từng class tập trung hơn, dẫn đến kết quả tốt hơn.
Tuy nhiên, vấn đề độ lệch chuẩn nhỏ dại trong từng class không đủ để đảm bảo độ Discriminant của dữ liệu. Xét những ví dụ vào Hình 2.

Hình 2: khoảng cách giữa những kỳ vọng với tổng các phương sai tác động tới độ discriminant của dữ liệu. A) khoảng cách giữa nhị kỳ vọng là khủng nhưng phương sai trong những class cũng lớn, để cho hai phân phối ông xã lấn lên nhau (phần màu xám). B) Phương sai cho mỗi class là rất nhỏ tuổi nhưng nhị kỳ vọng quá ngay gần nhau, khiến cho khó riêng biệt 2 class. C) lúc phương không nên đủ nhỏ tuổi và khoảng cách giữa nhì kỳ vọng đủ lớn, ta thấy rằng tài liệu discriminant hơn.
Hình 2a) giống như với tài liệu khi chiếu lên (d_1) nghỉ ngơi Hình 1. Cả hai class đông đảo quá phân tán khiến cho tỉ lệ ông xã lấn (phần diện tích màu xám) là lớn, tức tài liệu chưa đích thực discriminative.
Hình 2b) là trường phù hợp khi độ lệch chuẩn chỉnh của hai class phần đa nhỏ, tức dữ liệu triệu tập hơn. Tuy nhiên, vụ việc với trường vừa lòng này là khoảng cách giữa nhì class, được đo bằng khoảng cách giữa nhị kỳ vọng (m_1) cùng (m_2), là vượt nhỏ, để cho phần ông chồng lấn cũng chỉ chiếm môt tỉ lệ lớn, và tất nhiên, cũng không xuất sắc cho classification.
Xem thêm: Hội Hâm Mộ Game Of Thrones Season 7 Tập 5, Game Of Thrones
Hình 2c) là trường đúng theo khi nhì độ lệch chuẩn là nhỏ tuổi và khoảng cách giữa nhì kỳ vọng là lớn, phần kháng lấn nhỏ không xứng đáng kể.
Có thể nhiều người đang tự hỏi, độ lệch chuẩn chỉnh và khoảng cách giữa nhì kỳ vọng thay mặt đại diện cho các tiêu chí gì:
Như vẫn nói, độ lệch chuẩn nhỏ tuổi thể hiện tại việc dữ liệu ít phân tán. Điều này có nghĩa là dữ liệu trong những class có xu hướng giống nhau. Nhị phương không nên (s_1^2, s_2^2) còn gọi là các within-class variances.
Khoảng phương pháp giữa những kỳ vọng là lớn chứng minh rằng nhì classes nằm xa nhau, tức dữ liệu giữa các classes là khác biệt nhiều. Bình phương khoảng cách giữa nhì kỳ vọng ((m_1 - m_2)^2) có cách gọi khác là between-class variance.
Hai classes được điện thoại tư vấn là discriminative giả dụ hai class đó biện pháp xa nhau (between-class variance lớn) cùng dữ liệu trong mỗi class có xu hướng giống nhau (within-class variance nhỏ). Linear Discriminant Analysis là thuật toán đi tìm một phép chiếu sao cho tỉ lệ thân between-class variance và within-class variance lớn nhất có thể.
2.2. Tạo hàm mục tiêu
Giả sử rằng bao gồm (N) điểm dữ liệu (mathbfx_1, mathbfx_2, dots, mathbfx_N) trong đó (N_1
2.3. Nghiệm của vấn đề tối ưu
Nghiệm (mathbfw) của ((7)) đang là nghiệm của phương trình đạo hàm hàm mục tiêu bằng 0. Sử dụng chain rule cho đạo hàm hàm nhiều trở thành và cách làm ( abla_mathbfwmathbfw mathbfAmathbfw = 2mathbfAw) nếu (mathbfA) là 1 trong những ma trận đối xứng, ta có:
<egineqnarray abla_mathbfw J(mathbfw) &=& frac1(mathbfw^TmathbfS_Wmathbfw)^2 left(2mathbfS_B mathbfw (mathbfw^TmathbfS_Wmathbfw) - 2mathbfw^TmathbfS_Bmathbfw^TmathbfS_W mathbfw ight) = mathbf0& (8) ewlineLeftrightarrow mathbfS_Bmathbfw &=& fracmathbfw^TmathbfS_B mathbfwmathbfw^TmathbfS_WmathbfwmathbfS_Wmathbfw& (9) ewlinemathbfS_W^-1mathbfS_B mathbfw &=& J(mathbfw)mathbfw và (10)endeqnarray>
Lưu ý: vào ((10)), ta sẽ giả sử rằng ma trận (mathbfS_W) là khả nghịch. Điều này không luôn luôn luôn đúng, nhưng tất cả một trick nhỏ tuổi là ta rất có thể xấp xỉ (mathbfS_W) bởi vì ( armathbfS_W approx mathbfS_W + lambdamathbfI) với (lambda) là một số thực dương nhỏ. Ma trận new này là khả nghịch vày trị riêng nhỏ tuổi nhất của nó bằng với trị riêng nhỏ nhất của (mathbfS_W) cùng với (lambda) tức không nhỏ tuổi hơn (lambda > 0). Điều này được suy ra từ các việc (mathbfS_W) là 1 trong ma trận nửa xác định dương. Từ đó suy ra (armathbfS_W) là một ma trận xác minh dương vày mọi trị riêng của nó là thực dương, và bởi vì thế, nó khả nghịch. Khi tính toán, ta có thể sử dụng nghịch đảo của (armathbfS_W).
Kỹ thuật này được thực hiện rất đôi khi ta cần thực hiện nghịch hòn đảo của một ma trận nửa xác minh dương và không biết nó có thực sự là khẳng định dương hay không.
Quay quay trở lại với ((10)), bởi vì (J(mathbfw)) là một vài vô hướng, ta suy ra (mathbfw) phải là 1 trong vector riêng rẽ của (mathbfS_W^-1mathbfS_B) ứng với một trị riêng như thế nào đó. Rộng nữa, giá trị của trị riêng này bởi với (J(mathbfw)). Vậy, để hàm phương châm là lớn nhất thì (J(mathbfw)) đó là trị riêng lớn nhất của (mathbfS_W^-1mathbfS_B). Vệt bằng xẩy ra khi (mathbfw) là vector riêng ứng với trị riêng lớn số 1 đó. Các bạn đọc rất có thể hiểu phần này hơn lúc xem cách lập trình sẵn trên Python ngơi nghỉ Mục 4.
Từ rất có thể thấy ngay lập tức rằng giả dụ (mathbfw) là nghiệm của ((7)) thì (kmathbfw) cũng chính là nghiệm với (k) là số thực khác không bất kỳ. Vậy ta rất có thể chọn (mathbfw) làm thế nào để cho ((mathbfm_1 - mathbfm_2)^Tmathbfw = J(mathbfw) = L =) trị riêng lớn nhất của (mathbfS_W^-1mathbfS_B) . Lúc đó, cố kỉnh định nghĩa của (mathbfS_B) sống ((5)) vào ((10)) ta có:
Biểu thức ((11)) còn được biết như là Fisher’s linear discriminant, được đặt theo thương hiệu nhà công nghệ Ronald Fisher.
3. Linear Discriminant Analysis đến multi-class classification problems
3.1. Thành lập hàm mất mát
Trong mục này, chúng ta sẽ xem xét trường hợp tổng thể khi có khá nhiều hơn 2 classes. đưa sử rằng chiều của tài liệu (D) lớn hơn số lượng classes (C).
Giả sử rằng chiều mà chúng ta muốn sút về là (D’
(mathbfX_k, mathbfY_k = mathbfW^TmathbfX_k) thứu tự là ma trận dữ liệu của class (k) trong ko gian ban đầu và không khí mới với số chiều nhỏ hơn.
(mathbfm_k = frac1N_ksum_n in mathcalC_kmathbfx_k in mathbbR^D) là vector mong muốn của class (k) trong không gian ban đầu.
(mathbfe_k = frac1N_ksum_n in mathcalC_k mathbfy_n = mathbfW^Tmathbfm_k in mathbbR^D’) là vector kỳ vọng của class (k) trong không khí mới.
(mathbfm) là vector hy vọng của toàn cục dữ liệu trong ko gian ban đầu và (mathbfe) là vector kỳ vọng trong không khí mới.
Một trong số những cách tạo hàm phương châm cho multi-class LDA được minh họa vào Hình 3.
Chuyên mục: Tin Tức