Giới thiệuMục tiêu ν Cung cấp kiến thức cơ bản về quá trình học tự động/dạy cho máy học ν Học có giám sát supervised learning, học không giám sát unsupervised learning ν Bài toán: Phân l
Trang 1Bài giảng
NGUYÊN LÝ MÁY HỌC
Phạm Nguyên Khang
Trang 2Giới thiệu
Mục tiêu
ν Cung cấp kiến thức cơ bản về quá trình học tự động/dạy cho máy học
ν Học có giám sát (supervised learning), học không giám sát (unsupervised learning)
ν Bài toán: Phân lớp (classification), Hồi quy (regression), Gom cụm (clustering)
ν Ứng dụng: nhận dạng chữ viết tay, phân loại văn bản
Trang 3Giới thiệu
Chương 0
ν Tại sao phải học Nguyên lý máy học ?
ν Như thế nào là một định nghĩa đúng về máy học ?
Trang 4Giới thiệu
Chương 2
ν Máy học véc-tơ hỗ trợ - SVM (chương 3 giáo trình NLMH)
ν Mô hình hoá bài toán SVM
ν SVM cho bài toán nhiều lớp
Chương 3
ν Đánh giá hiệu quả giải thuật học có giám sát (chương 4 giáo trình NLMH)
ν Nghi thức kiểm tra
ν Tiêu chí đánh giá hiệu quả giải thuật
Trang 5Giới thiệu
Chương 5
ν Học không giám sát (chương 5 giáo trình NLMH)
ν Bài toán gom cụm
ν Giải thuật k-means
ν Bài toán ước lượng mật độ xác suất
ν Kỹ thuật cực đại hoá kỳ vọng (EM)
Trang 6Tài liệu tham khảo
λ Đỗ Thanh Nghị, Phạm Nguyên Khang, Giáo trình Nguyên lý máy học, NXB Đại học
Trang 8Nguyên lý máy học
Chương 0
Phạm Nguyên Khang pnkhang@cit.ctu.edu.vn
Trang 9Tại sao phải học NLMH
• Tiến bộ gần đây trong giải thuật và tin học lý thuyết
• Dữ liệu ngày càng nhiều hơn, nhất là dữ liệu trực tuyến
• Năng lực tính toán của máy tính ngày càng phát triển (phần cứng)
• Đất dụng võ dành cho dân máy học
– Khai khoáng dữ liệu (data mining): sử dụng dữ liệu quá khứ để
dự đoán tương lai è cải thiện quá trình quyết định
• Thông tin y khoa è kiến thức y khoa
– Ứng dụng phần mềm mà ta không thể lập trình thủ công
• Xe tự hành
• Nhận dạng tiếng nói
– Chương trình tự tuỳ biến
• Chương trình đọc tin tức có thể học để biết được sự quan tâm của người dùng
Trang 10Nhiệm vụ tiêu biểu của DM
Trang 11Nhiệm vụ tiêu biểu của DM
• Các luật được học từ dữ liệu trên là:
• If Other_Delinquent-Accounts > 2 and
Number-Delinquent-Billing-Cycles > 1 then
Trang 12Nhiệm vụ tiêu biểu của DM
Trang 15Vấn đề khó lập trình thủ công
• Chương trình ALVINN có thể tự lái xe với tốc
độ 70mph (112.654 km/h) trên đường cao tốc
Trang 16Phần mềm tự tuỳ biến cho người dùng
• Phần mềm tự thay đổi điều chỉnh giao diện tuỳ theo người dùng
• Trang web tự đề nghị nội dung cho người đọc
• Trang web bán hàng tự đề nghị mặt hàng cho người mua
• …
Trang 17Các môn học khác có liên quan
• Trí tuệ nhân tạo
• Phương pháp Bayes
• Lý thuyết độ phức tạp tính toán
• Lý thuyết điều khiển
• Lý thuyết thông tin
• Triết học
• Tâm lý học và thần kinh học (neurobiology)
• Thống kê
• …
Trang 18Học là gì ?
• Học (Mitchel)= Cải thiện tác vụ (task) nào đó bằng kinh nghiệm
– Cải thiện tác vụ T,
– Với độ đo hiệu quả P
Trang 19• Biểu diễn nó như thế nào ?
• Giải thuật nào để học ?
Trang 20Kiểu dạy/huấn luyện
• Trực tiếp hay gián tiếp ?
• Có thầy hay không có thầy ?
• Vấn đề: việc huấn luyện có phải là kinh nghiệm
có thể biểu diễn được của mục tiêu hiệu quả ?
Trang 21Chọn hàm mục tiêu
• Lựa chọn nước đi: Bàn cờ à Nước đi ??
• V: Bàn cờ à R ?? Lượng giá bàn cờ
• …
Trang 22Dự báo giá đất dựa trên diện tích
• Tác vụ T: ???
• Độ đo hiệu quả P: ???
• Kinh nghiệm E: ???
Mảnh đất có dt 2500 ft 2 sẽ có giá bằng báo
Trang 23Ví dụ khác
• Nhiệm vụ:
• Độ do hiệu quả:
• Kinh nghiệm:
Trang 24Phân loại học máy
Trang 25NGUYÊN LÝ MÁY HỌC
(Học có giám sát)
Phạm Nguyên Khang
pnkhang@cit.ctu.edu.vn
Trang 26Nội dung trình bày
• Ví dụ
– Bài toán dự báo giá nhà dựa vào diện tích
– Hồi quy tuyến tính
• Biểu diễn hàm dự báo
• Giải thuật tìm tham số cho hàm dự báo – Bài toán phân lớp và hồi quy logistic
– Bài tập
Trang 27Ví dụ
• Dự báo giá nhà dựa vào diện tích
Trang 28Ví dụ
• Dự báo giá nhà dựa vào diện tích
Trang 29Quy ước
• Biến đầu vào (input variables)/đặc trưng
(features), kí hiệu: x(i)
• Biến đầu ra (output variable)/biến mục tiêu, kí hiệu y(i)
• Mẫu huấn luyện (training example)
– kí hiệu (x (i) , y (i) )
• Tập huấn luyện X = {(x(i), y(i))}, i = 1 m
Trang 30Định nghĩa
luyện {(x (i) , y (i) )}
• Tìm hàm h: X à Y sao
cho h(x) dự báo được y
từ x
giả thiết (hypothesis)
• Y liên tục: hồi quy
(regression)
• Y rời rạc: phân lớp
(classification)
Trang 31Hồi quy tuyến tính
• Ví dụ: bài toán dự báo giá nhà
– 2 biến đầu vào/thuộc tính: diện tích, số phòng
ngủ
– 1 biến đầu ra: giá nhà
Trang 32Hồi quy tuyến tính
• Thiết lập bài toán
– Xác định thuộc tính:
• Dự báo cái gì ?
• Dựa trên cái gì ?
• Biểu diễn giả thiết (hàm dự báo) h
– Ví dụ h là một hàm tuyến tính 2 biến, h(x1, x2) có dạng:
• Trong đó, θ0, θ1, θ2 là các tham số cần mà ta phải tìm trong qua trình “dạy cho máy học” hay còn gọi là qua trình huấn luyện
Trang 33Hồi quy tuyến tính
• Dạy cho máy học/huấn luyện như thế nào ?
huấn luyện (training error) nhỏ nhất
– Trong ví dụ trên, ta phải tìm h sao cho h(x) gần
với y nhất
– Hàm chi phí/hàm lỗi (cost function/error function)
Trang 34Giải thuật LMS
• LMS (Least mean square): bình phương trung bình nhỏ nhất
– Khởi tạo ngẫu nhiên θ
nhỏ hơn J(θ)
– α: tốc độ học
Trang 35Giải thuật LMS
• Tính đạo hàm riêng theo từng tham số:
Trang 36Giải thuật LMS
nhật:
Trang 37
Ví dụ
• Dự báo giá đất dựa vào diện tích
Trang 38Bài toán phân lớp và hồi quy logistic
• Bài toán phân lớp:
– giống như bài toán hồi quy, ngoài trừ y có giá trị rời rạc
– Ví dụ bài toán 2 lớp:
• 0: lớp âm
• 1: lớp dương
– Ta có thể giải bài toán phân lớp này bằng giải
thuật hồi quy tuyến tính như trên Tuy nhiên, vì y chỉ có thể có giá trị là 0 hoặc 1, nên không cần
thiết phải định nghĩa h có nhiều giá trị
Trang 39Hồi quy logistic
• Thay đổi hàm h như sau:
Trong đó
Hàm logistic hay hàm sigmoid
Trang 40Hồi quy logistic
• Đạo hàm của g(z)
Trang 41Hồi quy logistic
• Tìm tham số như thế nào với hàm hồi quy
logistic ?
• Bỏ qua các công thức phức tạp, ta thu được luật cập nhật tham số y hệ như trường hợp hồi quy tuyến tính !
• Tuy nhiên cần phải chú ý rằng: hàm h(x) trong trường hợp này là hàm logistic
Trang 42Bài tập
• Cho tập dữ liệu
– Biểu diễn tập dữ liệu lên
mặt phẳng toạ độ Oxy
giá trị khởi tạo (0, 0.5),
Trang 43CẢM ƠN
Trang 44NGUYÊN LÝ MÁY HỌC
(Mạng nơ-ron nhân tạo)
Phạm Nguyên Khang
pnkhang@cit.ctu.edu.vn
Trang 45Nội dung trình bày
• Giới thiệu
• Mô hình nơ-ron McCulloch & Pitts
• Mô hình perceptron đa tầng (MLP)
• Một số vấn đề cần chú ý khi huấn luyện mạng nơ-ron
• Bài tập
Trang 47Giới thiệu
• Lịch sử
– 1943, McCulloch & Pitts đưa ra mô hình nơ-ron đầu tiên
Trang 48Mô hình nơ-ron McCulloch & Pitts
• Nơ-ron: đơn vị tính toán cơ bản/đơn vị của tất
Trang 49Mô hình nơ-ron McCulloch & Pitts
Trang 50Kiến trúc mạng
• Mạng truyền thẳng (forward)
• Mạng hồi tiếp (feedback)
Trang 51Mô hình perceptron đa tầng
• Mô hình perceptron
McCulloch&Pitts
• n đầu vào, 1 ngưỡng, 1 đầu ra
f g
Trang 53Mô hình perceptron
• n +1 đầu vào, 1 đầu ra
• Đầu vào giả x0 luôn có giá trị 1, w0 = θ
• Hàm mạng tuyến tính
f g
∑
Trang 54Mô hình perceptron
• Ý nghĩa hình học
siêu phẳng trong không gian n chiều
Trang 55Huấn luyện perceptron
• Huấn luyện:
– Dạy cho perceptron
– Tìm kiếm n tham số: w0, w1, w2, …, wn sao cho đầu ra của nơ-ron phù hợp với giá trị mong muốn của tất cả dữ liệu học nhất
• Về mặt hình học:
– Tìm siêu phẳng tách dữ liệu thành 2 lớp sao cho mỗi lớp
về 1 phía của siêu phẳng này
• Dữ liệu đầu vào:
– Tập các mẫu huấn luyện
– Mỗi mấu huấn luyện gồm:
• véc-tơ đặc trưng x và nhãn y
• Tham số:
Trang 56Huấn luyện perceptron
• Trường hợp dữ liệu khả tách tuyến tính
giá trị đầu ra
nhật lại các trọng số theo công thức:
– Giải thuật: xem giáo trình trang 29
Trang 57Huấn luyện perceptron
• Trường hợp dữ liệu không khả tách tuyến tính
• Tối = lỗi (trên tập học) nhỏ nhất có thể
∑
Trang 58Huấn luyện perceptron
Trang 59Huấn luyện perceptron
• Giải thuật:
– Lặp cho đến khi điều kiện
∂E
i=1 m
∑
Trang 60Huấn luyện perceptron
Trang 62Mạng nơ-ron đa tầng (MLP)
• Huấn luyện mạng MLP:
• Định nghĩa hàm lỗi: bình phương sai khác giữa đầu ra
và đầu ra mong muốn
• Tính toán lỗi
• Lan truyền lỗi từ đầu ra ngược trở về đầu vào để cập nhật các trọng số w Trọng số được cập nhật dựa trên gradient của hàm lỗi
Trang 64Mạng nơ-ron đa tầng (MLP)
• Xét các nơ-ron ở tầng đầu ra:
• Để cập nhật được các trọng số ta cần
tính đạo hàm riêng của E theo nó
• Áp dụng quy tắc chuỗi để tính đạo hàm ta
được (xem giáo trình trang 41, công thức 2.17 – 2.20):
Trang 66Mạng nơ-ron đa tầng (MLP)
• Giải thuật:
• Với mỗi mẫu huấn luyện, tính đầu ra o
• Tính đạo hàm riêng của E theo từng trọng số w
• Cập nhật trọng số theo đạo hàm riêng này (chú ý dấu trừ vì đi ngược hướng của gradient)
• Bài tập 7 trang 48
Trang 67CẢM ƠN
Trang 68NGUYÊN LÝ MÁY HỌC
(Máy học véc-tơ hỗ trợ - SVM)
Phạm Nguyên Khang pnkhang@cit.ctu.edu.vn
Trang 69Nội dung trình bày
• Giới thiệu
• SVM cho bài toán phân lớp
• Giải thuật SVM
• SVM cho bài toán đa lớp
• SVM cho bài toán hồi quy (xem giáo trình)
• SVM cho bài toán phát hiện phần tử cá biệt (xem giáo trình)
• Proximal SVM
• Bài tập
Trang 70Giới thiệu
SVM được Vapnik nghiên cứu từ những năm
1965
1990
máy học, nhận dạng và khai mỏ dữ liệu
phân loại văn bản, phân loại bệnh ung thư,
method)
Trang 71SVM cho bài toán phân lớp
x1
x2
w0 1x1 2x2
Lớp dương (+1)
(–1)
A B
C
• Bài toán phân lớp nhị
phân (hai chiều)
Trang 72SVM cho bài toán phân lớp
• Bài toán phân lớp nhị
(–1)
A B
C
Trang 73SVM cho bài toán phân lớp
• Tìm đường biên như
thế nào để an toàn ?
– Trực quan: tìm
liệu thành hai phía,
(–1)
Trang 74SVM cho bài toán phân lớp
x1
x2
w0 1x1 2x2
Lớp dương (+1)
Trang 75SVM cho bài toán phân lớp
Trang 76SVM cho bài toán phân lớp
Trang 77SVM cho bài toán phân lớp
• Trường hợp dữ liệu không khả tách tuyến tính:
– Bài toán: tìm w, b sao cho lề lớn nhất và lỗi huấn luyện nhỏ nhất
Trang 78SVM cho bài toán phân lớp
• Giải bài toán quy hoạch toàn phương
Trang 80lý được dữ liệu phi tuyến
Kernel function:
K(Xi, Xj): hàm nhân được định nghĩa trong không gian gốc = tích
vô hướng trong không gian trung gian (feature space)
Trang 81SVM và phương pháp hàm nhân
• SVM tuyến tính trong không gian gốc
• SVM tuyến tính trong không gian trung gian
Trang 82SVM và phương pháp hàm nhân
• Một số hàm nhân thông dụng:
– Tuyến tính: K(u, v) = u.v
– Đa thức bậc d: K(u, v) = (u.v + c) d
– Radial Basis Function (RBF):
• Cài đặt trong libSVM:
• -s svm_type (default 0): 0 (phân lớp), 2 (1 lớp), 3 (hồi quy)
• -t kernel_type (default 2): 0 (tuyến tính), 1 (đa thức), 2
(RBF)
• -d degree (default 3): bậc của hàm nhân đa thức
• -g gamma (default 1/#attr): tham số γ của hàm nhân RBF
• -c cost (default 1) : hằng số c
Trang 83SVM cho bài toán đa lớp
!
1 chống lại tất cả
Trang 84Proximal SVM
• Do Fung và Mangasarian đề xuất
• Thay đổi hai siêu phẳng hỗ trợ
• Thay đổi độ lớn của lề
• Bài toán quy hoạch toàn phương à bài toán giải hệ phương trình tuyến tính
Trang 85Proximal SVM
x1
x2
Lớp dương (+1)
Trang 87Proximal SVM
phần tử mxm
– Xây dựng ma trận H = D[A -e]
– Tính u = c(I – H(1/c + H’H) -1 H’)e
– Tính w = A’Du
– Tính b = -e’Du
Trang 88Proximal SVM
• Tham khảo thêm:
– http://research.cs.wisc.edu/dmi/svm/psvm/
Trang 89CẢM ƠN
Trang 90NGUYÊN LÝ MÁY HỌC (Đánh giá hiệu quả giải thuật học
có giám sát)
Phạm Nguyên Khang pnkhang@cit.ctu.edu.vn
Trang 91Nội dung trình bày
• Giới thiệu
• Nghi thức kiểm tra
• Đo hiệu quả giải thuật
Trang 92Giới thiệu
• 2 tiêu chí chính:
– Thời gian
• Thời gian huấn luyện
• Thời gian phân lớp
Trang 93Nghi thức kiểm tra
• Train – Test
• Hold out
• K-fold
Trang 94Đo hiệu quả phân lớp/dự báo
• Bài toán phân lớp
• Lớp dương và lớp âm
• Dùng giải thuật phân lớp đã huấn luyện xong PHÂN LỚP tập kiểm tra (test ), Thiết lập ma trân phân lớp (confusion matrix):
Dự báo à Dự báo Dương Dự báo Âm
Trang 95Đo hiệu quả phân lớp/dự báo
Trang 96Đo hiệu quả phân lớp/dự báo
• Tường hợp nhiều hơn 2 lớp
Dự báo lớp 2
Trang 97Đo hiệu quả dự báo (hồi quy)
• Tính toán giá trị dự báo cho các phần tử trong tập test è pi
• Tính lỗi so với giá trị mong muốn yi
• Lỗi thường dùng: MSE (mean squared error)
Trang 98CẢM ƠN
Trang 99NGUYÊN LÝ MÁY HỌC
(Học không giám sát)
Phạm Nguyên Khang
pnkhang@cit.ctu.edu.vn
Trang 100Nội dung trình bày
• Giới thiệu
• Bài toán gom nhóm dữ liệu
• Giải thuật k-means
• Đo hiệu quả giải thuật k-means
• Bản đồ tự tổ chức (SOM): đọc giáo trình
• Bài toán ước lượng hàm mật độ xác suất
• Kỹ thuật cực đại hoá kỳ vọng (Expectation
Maximization)
Trang 101Giới thiệu
– Tìm hiểu “bản chất của dữ liệu” dựa trên “thể hiện
– Hiểu được cấu trúc của dữ liệu
– Bài toán gom nhóm (gom cụm/phân cụm/phân nhóm,
…): clustering problem
– Ước lượng hàm mật độ xác suất (density function
Trang 102Bài toán gom nhóm dữ liệu
xác định trong giải thuật
!
!
Trang 103Giải thuật k-means
• Do MacQueen đề xuất năm 1967
• Giải thuật đơn giản, hiệu quả để giải bài toán gom nhóm
• Tham số đầu vào: số nhóm k
• Ý tưởng:
khoảng cách tử các phần tử trong nhóm đến tâm của nhóm nhỏ nhất
Trang 104Giải thuật k-means
• Phân hoạch (partition)
– Phân m phần tử của X vào k nhóm S1, S2, …, Sksao cho mỗi phần tử chỉ thuộc vào 1 nhóm
• Tìm một phân hoạch tối ưu (tổng khoảng cách nhỏ nhất) đòi hỏi phải liệt kê gần như tất cả
các phân hoạch có thể => NP-hard
k nhóm
Trang 105Giải thuật k-means
• Giải thuật k-means
được nữa
• Khởi tạo phân hoạch
nhất
Trang 106Giải thuật k-means
• Cải tiến phân hoạch
– Từ phân hoạch S = {S1, S2, …, Sk}, tìm 1 phân
hoạch khác tốt hơn phân hoạch này
– Gọi µ1, µ2, …, µk là tâm của các nhóm S1, S2, …,
∑
Trang 107Giải thuật k-means
• Tìm S, µ bằng phương pháp lặp
– Cố định S, tìm µ
– Cố định µ tính lại S
• Với S cố định, tìm µ bằng cách giải phương
trình đạo hàm riêng của J theo µ
∑
Trang 108Giải thuật k-means
• Giải thuật k-means
– Repeat
– Until hội tụ hoặc số lần lặp đủ lớn
• Giải thuật chi tiết: giáo trình trang 85
Trang 109Giải thuật k-means
• áp dụng kết quả của các phương pháp phân tích khác
• Thử các giá trị k khác nhau => giá trị tốt nhất
– Khởi động tâm µ:
• Thực hiện k-means nhiều lần với các tâm µ khác nhau
=> giữ lại kết quả tốt nhất
Trang 110Giải thuật k-means
• Đánh giá kết quả của k-means:
khoảng cách từ các phần tử đến tâm của nhóm
∑
Trang 111CẢM ƠN