1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng Cơ sở Toán trong Tin học PCA và LSA

67 437 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 9,29 MB

Nội dung

Bài giảng Lý thuyết Cơ sở Toán trong Tin học PCA và LSA. Bài giảng Lý thuyết Cơ sở Toán trong Tin học PCA và LSA. Bài giảng Lý thuyết Cơ sở Toán trong Tin học PCA và LSA. Bài giảng Lý thuyết Cơ sở Toán trong Tin học PCA và LSA . Bài giảng Lý thuyết Cơ sở Toán trong Tin học PCA và LSA

Trang 1

TOÁN CHO TIN H C Ọ

Phạm Nguyên Khang

BM Khoa học máy tính

pnkhang@cit.ctu.edu.vn

Trang 3

NG D NG TOÁN TRONG H C MÁY

Trang 4

ng d ng toán trong h c máy

• Hệ phương trình tuyến tính

• Bài toán bình phương nhỏ nhất

• Hồi quy tuyến tính

• Giảm chiều dữ liệu

Trang 5

• A khả đảo, nghiệm duy nhất x = A-1b

Làm thế nào nếu A không khả đảo (không tồn tại A-1 ) ví dụ: số phương trình nhiều hơn số biến ?

Giải pháp: Tìm x sao cho Ax “gần” với b nhất.

Tìm x sao cho ||Ax – b||2 nhỏ nhất

5

Trang 6

Bài toán bình ph ng nh nh t ươ ỏ ấ

• Tìm x sao cho f(x) = ||Ax - b||2  min

• Bài toán không có ràng buộc

• Ta có:

• Tìm gradient của x

• Cho gradient = 0 và giải hệ phương trình tìm x

6

Trang 7

Bài toán bình ph ng nh nh t ươ ỏ ấ

• Chú ý:

• Nếu các cột của A độc lập tuyến tính thì ATA khả đảo thì mới tồn tại nghiệm duy nhất:

(2)

• (2) là phương trình chuẩn của bài toán bình phương nhỏ nhất

• Điều gì sẽ xảy ra nếu các cột của A không độc lập tuyến tính ?

Tìm x có norm nhỏ nhất sao cho nhỏ nhất

• x như thế luôn tồn tại dù cho các cột của A không độc lập tuyến tính.

7

Trang 8

Bài toán bình ph ng nh nh t ươ ỏ ấ

• pseudo-inverse (giả nghịch đảo) hay còn gọi là nghịch đảo Moore-Pensore của ma trận A kích thước m x n,

ký hiệu A+ được định nghĩa như sau:

• Nếu A = VSUT (SVD của A)

• Thì A+ = VS+UT

• Trong đó S+ là ma trận nghịch đảo của S (lấy nghịch đảo các phần tử khác 0 của S ta được S+).

• Tính chất:

• Nếu m > n và A có hạng đầy đủ thì A+ = (ATA)-1AT

• Nếu m < n và A có hạng đầy đủ thì A+ = AT (AAT)-1

• Trong octave A+ được định nghĩa bằng hàm pinv(A)

• Áp dụng pseudo inverse để giải hệ phương trình tuyến tính

• X = A+b (trong octave: x = pinv(A)*b hay x = A\b)

8

Trang 9

H i quy tuy n tính ồ ế

• Xét bài toán dự báo giá nhà dựa trên diện tích đất ở

9

Trang 10

H i quy tuy n tính ồ ế

• Xét bài toán dự báo giá nhà dựa trên diện tích đất ở

?

10

Trang 14

H i quy tuy n tính (th c hành) ồ ế ự

• Thực hành:

• Thêm cột chứa toàn giá trị 1 vào bên trái ma trân X (có thể sử dụng hàm ones(m, n) và phép tạo ma trận)

• Áp dụng mô hình hồi quy tuyến tính tìm θ1 và θ0 (có thể sử dụng pinv hoặc phép chia ma trận trong octave ‘A \

b’, so sánh kết quả của các phương pháp)

Trang 15

H i quy tuy n tính (th c hành) ồ ế ự

• Vẽ đường thẳng hồi quy h(x) = θ1x + θ0 chồng lên tập dữ liệu

• Chú ý: lúc này ta đã thêm 1 cột vào X, nên khi vẽ ta lấy cột 2 mà vẽ.

plot(X(:,2), y, 'rx', 'MarkerSize', 10); %vẽ dữ liệu

Trang 16

H i quy tuy n tính (th c hành) ồ ế ự

• Kết quả

16

Trang 17

H i quy tuy n tính (đa bi n) ồ ế ế

• Trường hợp dữ liệu X có nhiều hơn một cột, ví dụ: dự báo giá nhà dựa trên diện tích và số phòng

17

Trang 18

H i quy tuy n tính (đa bi n) ồ ế ế

• Tổng quát, tập dữ liệu X có m phần tử và n thuộc tính, mô hình hồi quy tuyến tính trong trường hợp này:

18

h(x) = θ0 + θ1x1 +θ2x2 + + θnxn

Trang 19

H i quy tuy n tính (đa bi n) ồ ế ế

• Tổng quát, tập dữ liệu X có m phần tử và n thuộc tính, mô hình hồi quy tuyến tính trong trường hợp này:

• Tương tự trường hợp 1 biến

• Ma trận XTX có kích thước (n+1) x (n+1)

19

X Θ = y

Θ = ( XTX)−1XTy

Trang 20

H i quy tuy n tính (đa bi n) ồ ế ế

• Thực hành

• Tìm tham số theta của mô hình hồi quy tuyến tính cho tập dữ liệu (file: ex1data2.txt)

20

Θ = ( XTX)−1XTy

Trang 21

H i quy tuy n tính (đa bi n) ồ ế ế

• Khi n lớn, ma trận cần nghịch đảo XTX có kích thước lớn => nhiều thời gian hơn

• Giải pháp khi xử lý số liệu lớn: sử dụng phương pháp giảm gradient (gradient descent)

• Xem lại mô hình hồi quy tuyến tính:

Trang 22

H i quy tuy n tính (đa bi n) ồ ế ế

• Giải thuật giảm gradient (gradient descent)

• Giải thuật lặp tìm x để f(x) nhỏ nhất

1. Khởi tạo x ngẫu nhiên

2. Dịch chuyển x theo hướng ngược lại với hướng gradient (hướng của gradient là hướng làm tăng giá trị của f(x) Đi

ngược hướng với gradient sẽ làm giảm giá trị của x)

3. Lặp bước 2 cho đến khi hội tụ

• Gradient của hàm lỗi:

22

Trang 23

H i quy tuy n tính (đa bi n) ồ ế ế

• Giải thuật giảm gradient cho hồi quy tuyến tính

1. Khởi tạo ngẫu nhiên x=θ, f(x) =

2. for it = 1:max_it (f(x_moi)>f(x_cu): thoat)

3. end

4. return (θ)

23

) ( ,

), (

)()

) ( θ

J

Trang 24

H i quy tuy n tính (th c hành gi m gradient) ồ ế ự ả

• Chương trình chính kiểm tra giải thuật gradient_descent (tên file lr_gd.m)

%% Initialization

clear; close all; clc

%% Part 1: Loading data =======================

%%Part 3: Gradient descent ===================

fprintf('Running Gradient Descent \n')

X = [ones(m, 1), data(:,1)];

n = size(X, 1); % number of columns

theta = zeros(n, 1); % init theta

iterations = 1500; eta = 0.01;

compute_cost(X, y, theta)

% run gradient descent

theta = gradient_descent(X, y, theta, eta, iterations);

% print theta to screen fprintf('Theta found by gradient descent: ');

fprintf('%f %f \n', theta(1), theta(2));

% Plot the linear fit plot(X(:,2), y, ’rx’);

hold on;

plot(X(:,2), X*theta, '-') legend('Training data', 'Linear regression');

hold off;

24

Trang 25

H i quy tuy n tính (th c hành gi m gradient) ồ ế ự ả

• Viết hàm compute_cost (X, y, theta) trả về giá trị hàm lỗi tại vị trí theta (tên file

compute_cost.m)

• Nếu viết đúng khi chạy lr_gd ta sẽ thấy: ans = 32.073

function J = compute_cost(X, y, theta)

Trang 26

H i quy tuy n tính (th c hành gi m gradient) ồ ế ự ả

• Viết giải thuật gradient_descent (X, y, theta) tìm theta (tên file gradient_descent.m)

function [theta, J_history] = gradient_descent(X, y, init_theta, eta, T)

Viết code cập nhật θ tại đây

%Lưu giá trị của J sau mỗi bước lặp J_history(iter) = compute_cost(X, y, theta);

Trang 27

H i quy tuy n tính (th c hành gi m gradient) ồ ế ự ả

• Chương trình chính kiểm tra giải thuật gradient_descent (tên file lr_gd.m)

• Kết quả:

• Kiểm tra compute_cost:

ans = 32.073

• Kiểm tra theta:

Theta found by gradient descent: -3.630291 1.166362

Kết quả hơi khác 1 ít với phương pháp phương trình normal

Trang 28

H i quy tuy n tính (th c hành gi m gradient) ồ ế ự ả

• Đa biến:

• Áp dụng gradient descent tìm theta cho tập dữ liệu ex1data2.txt

• In giá trị hàm lỗi sau khi tìm được theta So sánh với phương pháp nghịch đảo ma trận.

28

Trang 29

H i quy tuy n tính (normalization) ồ ế

• Chuẩn hoá dữ liệu trước khi thực hiện hồi quy

• Với mỗi cột (thuộc tính) của X,

• Tìm giá trị trung bình mj và độ lệch chuẩn sj của nó.

• Chuẩn hoá dữ liệu: thay xj = (xj-mj)/sj.

• Các hàm cần thiết trong octave: mean, var, repmat

• Yêu cầu: viết hàm normalize(X) chuẩn hoá các cột của X và trả về giá trị đã chuẩn hoá

function R = normalize(X)

end

29

Trang 30

Gi m chi u d li u ả ề ữ ệ

• Tại sao giảm chiều ?

• Nén dữ liệu: giảm từ 2D sang 1D

30

Trang 31

Gi m chi u d li u ả ề ữ ệ

• Tại sao giảm chiều ?

• Nén dữ liệu: giảm từ 2D sang 1D

31

Trang 32

Gi m chi u d li u ả ề ữ ệ

• Tại sao giảm chiều ?

• Nén dữ liệu: giảm từ 3D sang 2D

32

Trang 33

Gi m chi u d li u (Quiz) ả ề ữ ệ

• Giả sử ta áp dụng phép giảm chiều lên tập dữ liệu m phần tử X = {x(1), x(2), …, x(m)}, trong đó x(i) ∈Rn Ta

thu được kết quả là tập dữ liệu Z

Trang 34

Gi m chi u d li u ả ề ữ ệ

• Hiển thị dữ liệu (visualization)

34

Trang 35

Gi m chi u d li u ả ề ữ ệ

• Hiển thị dữ liệu (visualization)

35

Trang 36

Gi m chi u d li u ả ề ữ ệ

• Hiển thị dữ liệu trên mặt phẳng 2D

36

Trang 37

Gi m chi u d li u (Quiz) ả ề ữ ệ

• Giả sử ta có tập dữ liệu X = {x(1), x(2), …, x(m)}, trong đó x(i) ∈Rn Để hiển thị tập dữ liệu này, ta áp dụng

phép giảm chiều và thu được tập Z = {z(1), z(2), …, z(m)} trong đó z(i) ∈Rk Các câu nào sao đây là đúng ?

Trang 38

Phân tích hành ph n chính (PCA) ầ

38

Trang 39

Phân tích hành ph n chính (PCA) ầ

39

Trang 40

Phân tích hành ph n chính (PCA) ầ

40

Trang 41

Phân tích hành ph n chính (PCA) ầ

41

Trang 42

Phân tích hành ph n chính (PCA) ầ

• PCA không phải hồi quy tuyến tính

42

Trang 44

• Tìm véc-tơ u sao cho lỗi của chiếu nhỏ nhất

• Hình chiếu của phần tử x(i) lên véc-tơ u.

• Nếu u được chuẩn hoá:

Trang 46

• Giải phương trình gradient = 0

• u là véc-tơ riêng (có norm = 1) của ma trận C

Trang 48

• v cũng là một véc-tơ riêng của C

• Cứ tiếp tục như thế, ta thu được các thành phần chính của X chính là các véc-tơ riêng của C

• Sắp xếp các giá trị riêng (và véc-tơ riêng tương ứng) theo thứ tự giảm dần

48

λ 1 ≥ λ 2 ≥ … ≥ λ n

Trang 49

• Giữ lại k cột của U => k thành phần chính

• Chiếu dữ liệu lên các thành phần chính

49

Z = XU reduce

z ( i) = U reduce T x ( i)

Trang 50

xjc) zj = ( ) u(j) T

xkd) zj = ( ) u(j) T

x

Trang 51

• Phục hồi dữ liệu gốc từ hình chiếu:

• Lỗi xấp xỉ trung bình Tổng phương sai của dữ liệu

Trang 52

• Chọn k sao cho:

• 99% phương sai được giữ lại

• Nếu ma trận C được tính bằng:

• C: ma trận phương sai – hiệp phương sai

• Tổng variance = trace(C) = tổng các giá trị riêng của C

Trang 53

PCA (Gi i thu t) ả ậ

• Giải thuật tính PCA

• Quy tâm các hàng của X

• Tính mean theo hàng, thay thế các hàng của X = nó trừ cho mean

• Tính ma trận phương sai – hiệp phương sai:

• Tìm các giá trị riêng và véc-tơ riêng của C => U và Λ

Trang 55

PCA (Quiz)

• Giả sử ta chạy PCA và giữ lại k = n thành phần chính (không giảm chiều) Các câu nào bên dưới đúng ?

a) Ureduce có kích thước n x n

b) Với mọi x, xapprox = x.

c) Phần trăm phương sai được giữ lại là 100%

Trang 56

PCA (Quiz)

• Khi nào nên sử dụng PCA, chọn tất cả các câu đúng ?

a) Nén dữ liệu để ít tốn bộ nhớ/không gian lưu trữ

b) Giảm chiều dữ liệu đầu vào để tăng tốc các giải thuật máy học

c) Thay vì sử dụng hồi quy, ta sử dụng PCA

d) Để hiển thị dữ liệu nhiều chiều (chọn k = 2 hoặc k = 3)

56

Trang 57

Z = project_data(X, U, k); %chiếu dữ liệu

Z(1,:) %hiển thị phần tử đầu tiên

X_rec = recover_data(Z, U, k); %phục hồi dữ liệu

X_rec(1:, ) %hiển thị phần tử đầu tiên

57

Trang 58

PCA (Th c hành) ự

• Bài 1: dữ liệu 2D

• Cài đặt giải thuật PCA (tên file: pca.m)

• function [U, L] = pca(X)

• %U: các véc-tơ riêng

Trang 60

PCA (Th c hành) ự

• Bài 1: dữ liệu 2D

• Phục hồi dữ liệu gốc (tên file: recover_data.m)

• function X_rec = recover_data(Z, U, k)

• %U: các véc-tơ riêng: n x n

Trang 61

Phân tích ng nghĩa ti m n ữ ề ẩ

• Latent semantic analysis (LSA)

• Kỹ thuật thống kê xử lý dữ liệu văn bản: trích thông tin về mối quan hệ (ngữ nghĩa) giữa các từ trong tập văn bản

• Văn bản được biểu diễn bằng ma trận Term x Document

• Mục tiêu: giảm chiều và chiếu dữ liệu sang không gian chủ đề, giải quyết vấn đề đồng nghĩa (dựa trên đồng xuất

hiện)

61

D Term/word

Document

Z Document

W Term/word

Topic

Trang 62

Singular value decomposition

• Tách giá trị kỳ dị (SVD) của ma trận là một phép toán phân rã ma trận A thành tích 3 ma trận U.S.VT

• U, V là các ma trận trực giao: UTU = I, VTV

• S là ma trận đường chéo, các phần tử nằm trên đường chéo của S gọi là các giá trị kỳ dị (singular)

VT S

=

62

Trang 63

Singular value decomposition

• Mối quan hệ của giá trị kỳ dị (singular values) và giá trị riêng (eigenvalues)

• Giá trị riêng của ATA = bình phương của giá trị kỳ dị của A

• Thành phần phải của A (V) là véc-tơ riêng của ATA

• Thành phần trái của A (U) là véc-tơ riêng của AAT

Trang 64

Phân tích ng nghĩa ti m n ữ ề ẩ

• Độ tương tự (similarity) giữa các Terms

• Độ tương tự (similarity) giữa các Documents

Doc

Doc

Trang 66

Phân tích ng nghĩa ti m n ữ ề ẩ

• Giải thuật LSA

• Độ tương tự giữa các terms:

• Độ tương tự giữa các documents

• Hình chiếu của terms

• Hình chiếu của documents

Trang 67

Phân tích ng nghĩa ti m n ữ ề ẩ

• Giải thuật LSA

• Chiếu document mới lên không gian ngữ nghĩa :

• Ta có:

• Hình chiếu của document mới:

• Tương tự hình chiếu của term mới lên không gian ngữ nghĩa:

67

D = U * S*VT

UT * D = UT * U * S*VT = S*VT

V * S = DT * U

Znew = Dnew T * Ured

Wnew = Dnew* Vred

Ngày đăng: 17/02/2019, 10:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w