Giảm chiều dữ liệu với PCA. Trị riêng và vector riêng của ma trận

Mình hỏi là sách nào viết câu này hay bạn tự viết???

Này cho dễ

[DEAD LINK]

  1. 2 vector trên có trực giao không? KHÔNG

  2. Bạn có có kiếm được hệ số k1, k2 khác 0 nào để k1*V1 + k2*V2 = 0 không??? KHÔNG => Độc lập TT đấy, nhưng đâu có trực giao.

2 Likes

Cổ nhân có câu: “Tận tín thư, bất như vô thư” :smiley:
Mà câu khẳng định trên là dư thừa, đã đôi một trực giao thì hợp lại thành cơ sở được rồi. (*)

Thực ra cái người ta mong muốn là một orthonormal basis (vừa đôi một trực giao, vừa có norm bằng 1), chứ độc lập tuyến tính thì chưa đủ. Tại sao vậy? Hãy xem link.

https://www.khanacademy.org/math/linear-algebra/alternate-bases/orthonormal-basis/v/lin-alg-projections-onto-subspaces-with-orthonormal-bases

(*) Xét hệ v[i] i = 1..n khác vector(0) và đôi một trực giao, cùng phương trình ẩn a[i] sigma(a[i]*v[i]) = v(0).
Với k = 1…n bất kì, ta nhân hai vế với v[k] thì pt tương đương với |v[k]|^2*a[k] = 0 hay a[k] = 0, hay a[1] = a[2] = ... = a[n] = 0 là nghiệm duy nhất.

3 Likes

Mình cũng đã thử như bạn và thấy câu mình viết trên sai
“các vector riêng độc lập tuyến tính với nhau nghĩa là trực giao với nhau đôi 1 với nhau
với”
Nhưng sao bạn lại nói câu này đúng
“các vector riêng hoàn toàn độc lập tuyến tính (nghĩa là trực giao đôi một).”

2 câu trên cùng ý nghĩa mà.
Có 3 vector riêng x1, x2, x3
trực giao đôi 1 là
x1 tích vô hướng với x2 =0
x1 tích vô hướng với x3 =0
x2 tích vô hướng với x2 =0

độc lập tuyến tính
không tồn tài k1, k2, k3 không đồng thời =0 sao cho
k1v1 + k2v2 + k3v3 = 0

Câu đúng ra là các vector riêng độc lập tuyến tính với nhau và trực giao đôi 1 với nhau. Ma trận U được tạo thành k thành phần chính dùng để nhân với ma trận ảnh ban đầu là 1 hệ trực giao. Các vector cột độc lập tuyến tính VÀ trực giao đôi 1
Nhưng mình đọc bài trên link thấy họ nói "các vector riêng hoàn toàn độc lập tuyến tính (nghĩa là trực giao đôi một) nên mới thắc mắc

2 Likes

Xin lỗi bạn, mình không nói rõ. Câu này nó ko phải chân lý, nó chỉ là một kết luận riêng biện cho bộ vector riêng trong phép biến đổi của trang trên.

Bài toán trên đang tìm 1 tập sinh tối ưu từ ma trận ban đầu để biểu diễn dữ liệu.
Mục tiêu tối ưu của bài toán này là gì? Tập trực chuẩn (trực giao và đơn vị). Cách làm của nó là tìm tập riêng tối thiểu (không gian con riêng độc lập tuyến tính chứ không phải toàn bộ không gian con riêng). Tập này sẽ là tập cơ sở hay tập sinh. Nếu xử lý ma trận ban đầu thì sẽ được tập con đặc biệt không chỉ độc lập tuyến tính, mà còn trực giao => chuẩn hó độ lớn nữa là thành trực chuẩn.

Cái quote “các vector riêng hoàn toàn độc lập tuyến tính (nghĩa là trực giao đôi một)” là tác giả viết cho trường hợp này.

VD: Cho bạn 1 mớ dữ liệu không gian 3 chiều, bạn sẽ tìm ra tập sinh tối ưu là một hệ 3 trục tọa độ có độ lớn bằng 1.

Xử lý ma trận ban đầu ntn thì có thể đc kết quả trên thì bạn dở sách ra, các kiểu ma trận và tính chất của nó, trong đó sẽ có thằng đặc biệt đẻ ra không gian con riêng tối thiểu là bộ trực giao.

Mình không phải dân IT cũng ko phải nghiền toán hay nghiền học hành nên không giúp được bạn nhiều. Mình thấy chữ PCA chẳng hiểu nó là cái gì nên ghé qua thôi.

PS: Ý kiến cá nhân. Mình nghĩ học Toán ko nên đi theo sau những trang sách và câu chữ. Tiếp cận vấn đề rồi dùng trí tưởng tượng có lẽ sẽ tốt hơn. Đôi khi bạn phải nghĩ ra tiên đề, định lý của riêng mình dù chưa chứng minh được nó. Việc bạn làm tiếp theo là tìm trong sách, hoặc tự quẩy và “Ồ cái chết tiệt mình vừa nghĩ ra là có thật!!!”:smiley:

Updated: Uh, mình ko chắc nhưng học cái này ngoài animation và transform ra có thể ứng dụng mã hóa audio, video, nén dữ liệu, hình ảnh, data, data mining và có thể là data scientist được này. Hay phết!:innocent:

Updated1: Cắt nghĩa ra cái câu trên đứng 1 mình thì đúng là sai và gây hiểu lầm thật! Mình cũng lướt toàn bộ cái trang đó thấy nó hợp lý ở kết quả nhưng… Giờ nhìn lại thấy toét ở câu quote. :smiling_imp:

3 Likes

Vì sao phải chọn các vector riêng ứng với các giá trị riêng lớn nhất và nó liên quan như thế nào đến phương sai?
[spoiler]hì, mình đang hỏi về lí thuyết đằng sau nó.[/spoiler]

3 Likes

Làm người nghiên cứu, kỵ nhất là ko hiểu lý thuyết đằng sau mà nhảy ngay vào công thức và lên hỏi thế này! Anh khuyên @hell6w9rld nếu muốn tiếp tục con đường nghiên cứu thì nên chăm học lý thuyết, anh có post ở đây rồi, ít ra cũng đọc cái quyển đầu tiên nhé

Còn ở đây có lý thuyết về PCA
https://github.com/liyanghua/Principal-component-analysis-

4 Likes

Em cũng biết thế. Nhưng e đi thực tập thầy k cho tiếp cận theo hướng dưới lên. Mà từ trên xuống. K học hiểu lý thuyết hết cặn kẽ rồi mới qua ứng dụng. Mà trước hết cần hiểu tổng quan, các bước và làm cho nó chạy đã. Nếu cứ chăm chú lý thuyết đào sâu tiêu tiết thì k biết bh xong. Vì càng đâu vào nền lý thuyết bên sau thì càng ra nhiều vấn đề. Và đó k phải là cách tiếp cận tốt cho ng mới bắt đầu. Đó là cách khi đã nghiên cứu lâu dài. Trước tiên là phải chạy và hiểu tổng quan rồi mới đào sâu dần. Em đã tìm hiểu lý thuyết về pca trước khi vào các bước. Và câu trên trong link bài e cmt. Đúng là sai.

2 Likes

Học từ trên xuống thì ko những hổng lý thuyết mà còn hổng luôn cả keyword để có thể search, vì đây là mấy từ khóa bên xác suất thống kê, ma trận, nó rất cơ bản mà em với các bạn cứ cãi nhau!
Trước mắt em cứ làm theo thầy của em cho xong, nhưng song song đó phải chăm đọc lý thuyết, nhất là lý thuyết ma trận, sau đó tới xác suất!

4 Likes

E chỉ thấy nhập nhằng trong câu.
Các vector riêng hoàn toàn độc lập tuyến tính (nghĩa là trực giao đôi 1) trong bài trên :3. Đáng ra là các vector riêng độc lập tuyến tính và trực giao đôi 1 thì đúng hơn

3 Likes

Mình cũng vậy thôi, học tới biến đổi sơ cấp là hết bài :smiley: basis span sub eigen gì là tự tìm hiểu cả.

Thực ra trực giao thì phải độc lập tuyến tính chứ, vì trực giao đôi một thì hợp thành cơ sở được rồi.

4 Likes

Bạn đã thông suốt pca chưa. Mình còn mắc 1 chút ở pca cho toàn tập dữ liệu. M đã hiểu đến chỗ qua chuẩn hóa vector eigen. Nhưng mình mắc ở bước tính features , rút gọn chiều cho từng ảnh. Pca trên từng ảnh mình đã hiểu. Bạn hiểu r mình inbox hỏi mấy câu với :smiley:

2 Likes

Bạn xem link bên khanacademy :slight_smile:

Ngay sau bước trải phẳng thì hai bước sau chính là tính ma trận cov. Nhưng AA* mới đúng là ma trận cov theo định nghĩa vì chuẩn hóa theo dòng mà, chứ A*A thì có ý nghĩa gì nhỉ? :pensive:

2 Likes

PCA có 2 cách tiếp cận

  1. PCA cho từng ảnh, thì ma trận dùng để giảm chiều dữ liệu (ghép từ k vector eigen thành phần chính) cho từng ảnh được tìm trực tiếp trên từng ảnh đó
  2. PCA cho cả tập dữ liệu thì các vector eigen dùng để giảm chiều dữ liệu (không ghép như cách 1 mà để riêng) cho từng ảnh được tính tư cả tập dữ liệu

Về cơ bản A(T)A và AA(T) cho cùng eigen value và eigen vector. Nhưng AA(T) cho cỡ ma trận hiệp phương sai lớn hơn A(T)A nhiều. Nên người ta tính eigen vector cho AA(T) thông qua A(T)A có cỡ nhỏ hơn nhiều
PCA trên từng ảnh , nếu ảnh gốc k đưa về cùng cỡ thì không dùng được AA(T) mà chỉ dùng A(T)A. Do đến bước nhân ma trận giảm chiều với ma trận ảnh gốc không nhân được do cột ma trận này k bằng hàng ma trận kia (phép chiếu)
Còn PCA trên cả tập thì người ta dùng A(T)A hay AA(T) cũng được nhưng ng ta tính eigen cho A(T)A vì lý do mình nói trên từ đó thông qua eigen vector của A(T)A tính cho AA(T)
Cụ thể hơn

A là vector cột, mỗi 1 cột là 1 ảnh (có thể có cách theo dòng nhưng mình tìm hiểu thấy theo cột cả)
Các ảnh trong tập huấn luyên có M ảnh. Mỗi ảnh NXN
Khi chuyển về vector thì có cỡ N^2 x 1
AA(T) = N^2 x M nhân cho M x N^2 ra matrix cov là N^2 x N^2 nên người ta mới dùng A(T)A rồi quay lai tính cho AA(T) vì A(T)A chỉ có cỡ M x M mà thôi

Mình đang mắc chỗ này

Cách giảm chiều vector ảnh gốc ban đâu N^2 x 1 về K x 1
ở hình vuông màu xanh thì mình hiêu cách tính
Nhưng ở hình vuông màu đỏ mình k hiểu công thức này làm gì
Nếu tính theo công thức ở hình vuông màu đỏ thì cho ra vector N^2 x 1 bằng cỡ ảnh gốc rồi

1 Like

Hai cách viết như nhau. Cách viết thứ 2 được xác định khi công nhận tập vector riêng là quy chiếu (không gian để biểu diễn).

Để giải thik cách viết thứ 2 (màu đỏ) từ đâu mà ra.

Hình như có gì sai sai
Theo công thức này
[DEAD LINK]

Ví dụ như sau

Còn theo công thức này
[DEAD LINK]

thì ví dụ như thế này
[DEAD LINK]

Mà mình thấy PCA trên tập ảnh thì có thể chọn k thành phần chính giữ lại tương đương eigenvector cuối cùng có k chiều. Còn PCA trên từng ảnh thì không.

1 Like

Bạn lại tính lộn về không gian cũ nên mới thế.

Chuyển sang hệ quy chiếu mới (Không gian mới) nó đơn giản là:

[DEAD LINK]
Đến đây được rồi, chính là biểu diễn trong không gian mới.

Hay viết gọn
[DEAD LINK]

Mình chẳng biết PCA gì gì, mình chỉ comment về toán.

công thức còn sum mà bạn

[dead link]

là sao nhỉ

1 Like

Mình không hiêu đoạn này
Sau khi nhân w1u1 được 1 vecor x chẳng hạn
w2u2 được vector y
x + y = 1 vector có 3 thành phần mà

1 Like

Bạn đừng lùa theo và test công thức nữa. Bạn dành time hiểu toán tuyến tính đi!
Bây giờ mình phải đi đã

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?