Nhậpmôn họcmáy Trình bày PGS TS Nguyễn Hữu Quỳnh Email quynhnh@tlu edu vn ITF Information Technology Faculty Thuyloi University Bài giảng được dựa trên giáo trình machine learning cơ bản và có tham kh[.]
Trang 2Thông tin môn học
• Trang web: https://piazza.com/class/k63hdmr4h043hf
• Các ngành học: CNTT, Kinh tế, Điện tử
• Điều kiện: Đã học các môn học xác suất thống kê, đại số tuyến tính
• Có kỹ năng lập trình cơ bản Python/R/Matlab
Trang 3Mục tiêu môn học
• Trang bị cho sinh viên một số ứng dụng và khái niệm về máy học
• Trang bị một số phương pháp học máy cơ bản
• Kỹ năng thực hành thuật toán học máy trên Python
Trang 4Tài liệu tham khảo
Machinelearningcoban.com
Trang 5Bài tập
• Sinh viên cần hoàn thành 50% số điểm của khối lượng bài tập để nhận được điểm đạt
• Sinh viên phải hoàn thành 4 bài tập bất kỳ trong số các bài tập được giao
• Nộp bài tập theo thời khóa biểu của môn học
Trang 6Ngôn ngữ lập trình python
Trang 7Hỏi & Đáp
• Đặt các câu hỏi liên quan đến môn học trên Piazza
• Website: https://piazza.com/class/k63hdmr4h043hf
Trang 8Giới thiệu máy học
• Machine Learning nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư
Trang 9Giới thiệu máy học
• Machine Learning nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư
• Một số ví dụ:
• Xe tự hành của Google,
Trang 10Giới thiệu máy học
• Hệ thống tự tag khuôn mặt trong ảnh của Facebook,
Trang 11Giới thiệu máy học
• Trợ lý ảo Siri của Apple,
Trang 12Giới thiệu máy học
• Hệ thống gợi ý sản phẩm của Amazon,
Trang 13Giới thiệu máy học
• Hệ thống gợi ý phim của Netflix,
Trang 14Giới thiệu máy học
• Máy chơi cờ vây AlphaGo của Google DeepMind,
Trang 15Giới thiệu máy học
• Nhận dạng chữ viết tay,
Trang 16Giới thiệu máy học
• Machine Learning có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể
Trang 17Phân nhóm các thuật toán học máy
• Phân nhóm dựa trên phương thức học:
Trang 18Supervised Learning (Học có giám sát)
• Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine Learning
• Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu
mới (new input) dựa trên các cặp (data, label) đã biết từ trước
• Với tập ví dụ huấn luyện:
• Cần trả lời:
• Một căn phòng có: x1 m 2 , x2 phòng ngủ sẽ có giá bao nhiêu?
Diện tích (Data)
Số phòng ngủ
Giá tiền (Label)
Trang 19Supervised Learning (Học có giám sát)
• Một tập hợp biến đầu vào X={x1,x2,…,xN} và một tập hợp nhãn tương ứng
Y={y1,y2,…,yN}
• Các cặp dữ liệu biết trước (xi,yi)∈X×Y được gọi là tập training data
• Từ tập traing data, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y:
yi≈f(xi), ∀i=1,2,…,N
• Mục đích là xấp xỉ hàm số f thật tốt để khi có một dữ liệu x mới, chúng ta có thể tính được nhãn y=f(x)
Trang 20Supervised Learning (Học có giám sát)
• Với tập ví dụ huấn luyện:
• Cần trả lời:
• Một căn phòng có: x1 m 2 , x2 phòng ngủ sẽ có giá bao nhiêu?
Diện tích (Data)
Số phòng ngủ
Giá tiền (Label)
Trang 21Supervised Learning (Học có giám sát)
Classification (Phân lớp): Một bài toán được gọi là classification nếu các label của
input data được chia thành một số hữu hạn nhóm
Một sv trẻ với mức thu nhập trung bình, mức đánh giá tín dụng bình thường sẽ được phân vào lớp Yes hay No?
Trang 22Supervised Learning (Học có giám sát)
Trang 23Supervised Learning (Học có giám sát)
Regression (Hồi quy): Nếu label không được chia thành các nhóm mà là một giá trị
thực cụ thể
• Hỏi: Một căn phòng có: x1 m 2 ; x2 phòng ngủ và cách Hồ Gươm x3 km, sẽ có giá bao nhiêu?
Diện tích Số phòng ngủ Cách Hồ Gươm Giá tiền
Trang 24Supervised Learning (Học có giám sát)
Trang 25Unsupervised Learning (Học không giám sát)
• Unsupervised learning là khi chúng ta chỉ có dữ liệu vào X mà không biết nhãn
Y
• Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như:
• Phân nhóm (clustering)
• Giảm số chiều của dữ liệu (dimension reduction)
Tên thuốc Đặc trưng 1 Đặc trưng 2
Trang 26Unsupervised Learning (Học không giám sát)
• Ví dụ ứng dụng:
• Cho một tập các tài liệu văn bản, cần xác định tập các tài liệu có chung chủ đề như thể thao, chính trị, ca nhạc,
• Cho các ảnh khuôn mặt có số chiều
cao, tìm một biểu diễn đơn giản/thu gọn của các ảnh này để đưa vào bộ phân lớp nhận dạng khuôn mặt
(AT&T Laboratories Cambridge)
Trang 27Học có giám sát so với không giám sát
Trang 28Một số ký hiệu toán học
• Các chữ cái in nghiêng biểu thị các số vô hướng
• Các chữ cái thường in đậm biểu thị các véc tơ
• Các chữ cái hoa in đậm biểu thị ma trận
Trang 30Chuyển vị của ma trận
• Chuyển vị của một véc tơ x là xT
• Chuyển vị của ma trận A ký hiệu là AT
• Nếu , ta nói A là ma trận đối xứng
Trang 31Ma trận đơn vị
• Đường chéo chính của một ma trận là tập hợp các điểm có chỉ số hàng và cộtbằng nhau
• Một ma trận bậc n là một ma trận đặc biệt trong ℝ𝑛×𝑛 với các phần tử trên
đường chéo chính bằng 1, các phần tử còn lại bằng 0
• Nếu A ∈ ℝ𝑚×𝑛, B ∈ ℝ𝑛×𝑚 và 𝐼 là ma trận đơn vị bậc n: AI = A, IB = B
Trang 33Chuẩn 2 của véc tơ
• Độ dài của một véc tơ x ∈ ℝ𝑛 chính là một chuẩn (norm) 2
Trang 34Một số ký hiệu toán học
Trang 35Một số ký hiệu toán học
Trang 36Dự đoán và suy diễn
• Dự đoán (prediction): để dự đoán biến đích Y khi cho tập dữ liệu đầu vào X, ta cần sửdụng hàm 𝑓 (là ước lượng thống kế của hàm f)
• Suy diễn (inference): Tìm hiểu mỗi quan hệ giữa Y và các biến độc lập Xi
•
Trang 37Các mô hình học máy
• Các mô hình có tham số (parametric)
• Đặt các giả thiết cho dạng (form) của hàm f
• Sử dụng dữ liệu huấn luyện để xấp xỉ mô hình (ước lượng các tham số)
Trang 38Hồi quy tuyến tính
Trình bày: PGS.TS Nguyễn Hữu Quỳnh
Trang 39Giới thiệu
Xét ví dụ:
• G/S chúng ta đã có số liệu thống kê từ 1000 căn nhà trong thành phố một cănnhà rộng 𝑥1 m2, có 𝑥2 phòng ngủ và cách trung tâm thành phố 𝑥3 km có giá là baonhiêu?
• Hàm dự đoán y = 𝑓(x) có dạng thế nào?
• Ở đây x = 𝑥1, 𝑥2, 𝑥3 là một vector hàng chứa thông tin input, 𝑦 là một số vô hướng (scalar) biểu diễn output.
Trang 40Giới thiệu
• Chúng ta thấy:
• diện tích nhà càng lớn thì giá nhà càng cao
• số lượng phòng ngủ càng lớn thì giá nhà càng cao
• càng xa trung tâm thì giá nhà càng giảm
• Một hàm số có thể mô tả mối quan hệ giữa giá nhà và 3 đại lượng đầu vào:
y ≈ 𝑓 x = y
𝑓 x = 𝑤1x1 + 𝑤2x2 + 𝑤3x3 + 𝑤0
• Mối quan hệ y≈f(x) là một mối quan hệ tuyến tính (linear)
• Bài toán trên là bài toán thuộc loại regression Do đó, bài toán đi tìm các hệ số tối ưu {𝑤1, 𝑤2, 𝑤3, 𝑤0} được gọi là bài toán Linear Regression.
Trang 41Giới thiệu
• y là giá trị thực của outcome (dựa trên số liệu thống kê chúng ta có trong tập
training data),
• y là giá trị mà mô hình Linear Regression dự đoán được
• y và y là hai giá trị khác nhau do có sai số mô hình, tuy nhiên, chúng ta mong muốn rằng sự khác nhau này rất nhỏ
Trang 42Dạng của Linear Regression
• Trong phương trình: 𝑓 x = 𝑤1x1 + 𝑤2x2 + 𝑤3x3 + 𝑤0, nếu chúng ta đặt
• w = [𝑤1, 𝑤2, 𝑤3, 𝑤0]𝑇 là vector hệ số cần phải tối ưu
• x = 1, x1, x2, x3 là vector (hàng) dữ liệu đầu vào
• Phương trình trên có thể được viết lại dưới dạng:
y ≈ xw = y
Trang 43• Chúng ta cầne𝑖2vì e𝑖 = y𝑖 − y𝑖 có thể là một số âm, việc nói e𝑖 nhỏ nhất sẽ không đúng vì khi e𝑖= −∞ là rất nhỏ nhưng sự sai lệch là rất lớn.ss
Trang 45• y = [𝑦1; 𝑦2; … 𝑦𝑁] là một véc tơ cột chứa tất cả các output của dữ liệu huấn luyện
• X = [x1; x2; … x𝑁] là ma trận dữ liệu đầu vào mà mỗi hàng là một điểm dữ liệu
• Khi đó, hàm ℒ 𝑤 được viết thành:
Trang 46Nghiệm cho bài toán Linear Regression
• Cách phổ biến nhất để tìm nghiệm cho một bài toán tối ưu là giải phương trình đạo hàm (gradient) bằng 0! Nhưng chỉ trường hợp
• tính đạo hàm và
• việc giải phương trình đạo hàm bằng 0
không quá phức tạp
• Thật may, với các mô hình tuyến tính, hai việc này là khả thi
• Đạo hàm theo w của hàm mất mát là:
Trang 47Nghiệm cho bài toán Linear Regression
• Phương trình đạo hàm bằng 0 tương đương với:
• Nếu ma trận vuông A khả nghịch thì phương trình (*) có nghiệm duy nhất
Trang 48Quá khớp (Overfitting)
Trình bày: PGS.TS Nguyễn Hữu Quỳnh
Overfitting không phải là một thuật toán trong Machine Learning Nó là một hiện tượng không mong muốn thường gặp, người xây dựng mô hình Machine Learning cần nắm được các kỹ thuật để tránh hiện tượng này.
Trang 49Giới thiệu
• Khi nói đến hồi qui tuyến tính, chúng ta sẽ muốn biết mục đích của nó để làm gì?
• Câu trả lời phổ biến là: về cơ bản, từ dữ liệu cho trước, chúng ta cần tìm một hàm
số để biến các các điểm đầu vào thành các điểm đầu ra tương ứng, không cần chính xác, chỉ cần xấp xỉ
• Nếu học toán tốt, chúng ta sẽ nghĩ: Đa thức Nội suy Lagrange có thể làm được
điều đó, miễn là các điểm đầu vào khác nhau đôi một!
• Tuy nhiên: “những gì ta biết chỉ là nhỏ xíu so với những gì ta chưa biết”, bài này sẽ
lý giải câu nói này
Trang 50Giới thiệu
• Về Đa thức nội suy Lagrange:
• Với N cặp điểm dữ liệu (x1,y1),(x2,y2),…,(xN,yN) với các xi kháu nhau đôi một, luôn tìm được một đa thức P(.) bậc không vượt quá N−1 sao cho P(xi)=yi, ∀i=1,2,…,N
• Nghe có vẻ như điều này giống với việc ta đi tìm một mô hình phù hợp (fit) với dữ liệu trong bài toán Supervised Learning, thậm chí điều này còn tốt hơn vì trong Supervised Learning ta chỉ cần xấp xỉ.
• Tuy nhiên, nếu một mô hình quá fit với dữ liệu thì nó sẽ gây phản tác dụng Hiện tượng quá fit này trong Machine Learning được gọi là overfitting, là điều mà khi xây
dựng mô hình, chúng ta luôn cần tránh:
Trang 51Giới thiệu
• Để có cái nhìn đầu tiên về overfitting, chúng ta cùng xem Hình dưới đây
Trang 52Giới thiệu
Trang 53Giới thiệu
• Rõ ràng là một đa thức bậc không vượt quá 29 có thể fit được hoàn toàn với 30
điểm trong training data
• Bài toán này hoàn toàn có thể được giải quyết bằng Linear Regression với dữ liệu mở rộng cho một cặp điểm (x,y) là (x,y) với x=[1,x,x2,x3,…,xd]T cho đa thức bậc d
• Điều quan trọng là chúng ta cần tìm bậc d của đa thức cần tìm.
Trang 54Giới thiệu
• Overfitting: là hiện tượng mô hình tìm được quá khớp với dữ liệu training Việc quá khớp này có thể dẫn đến việc dự đoán nhầm nhiễu, và chất lượng mô hình
không còn tốt trên dữ liệu test nữa
• Dữ liệu test được giả sử là không được biết trước, và không được sử dụng để xây dựng các mô hình Machine Learning
Trang 56Giới thiệu
• Một mô hình được coi là tốt (fit) nếu cả train error và test error đều thấp
• Nếu train error thấp nhưng test error cao, ta nói mô hình bị overfitting
• Nếu train error cao và test error cao, ta nói mô hình bị underfitting
• Nếu train error cao nhưng test error thấp, hiếm khi xảy ra.
Trang 57Validation
• Chúng ta thường chia tập dữ liệu ra thành hai tập nhỏ: training data và test data
• Khi xây dựng mô hình, ta không được sử dụng test data Vậy làm cách nào để biết được chất lượng của mô hình với unseen data (tức dữ liệu chưa nhìn thấy bao giờ)?
• Phương pháp đơn giản nhất là trích từ tập training data ra một tập con nhỏ
(validation set) và thực hiện việc đánh giá mô hình trên tập con nhỏ này
• Training set là phần còn lại của training set ban đầu
• Train error được tính trên training set mới này
• validation error được tính trên tập validation.
Trang 58• Ta tìm mô hình sao cho cả train error và validation error đều nhỏ, qua đó có thể
dự đoán được rằng test error cũng nhỏ
• Phương pháp thường được sử dụng là xét nhiều mô hình khác nhau Mô hình
nào cho validation error nhỏ nhất sẽ là mô hình tốt
Trang 59• Việc không sử dụng test data khi lựa chọn mô hình ở trên nhưng vẫn có được kết quả khả quan vì:
• ta giả sử rằng validation data và test data có chung một đặc điểm nào đó
• Và khi cả hai đều là unseen data, error trên hai tập này sẽ tương đối giống nhau.
Trang 60Cross-validation
• Ta thường có ít dữ liệu để xây dựng mô hình:
• Nếu lấy quá nhiều dữ liệu trong tập training ra làm dữ liệu validation, phần dữ liệu còn lại của tập training sẽ không đủ để xây dựng mô hình
• Dẫn đến tập validation phải thật nhỏ để giữ được lượng dữ liệu cho training đủ lớn
• Tuy nhiên, khi tập validation quá nhỏ, hiện tượng overfitting lại có thể xảy ra với tập training còn lại
Trang 61• Có giải pháp nào cho tình huống này: Câu trả lời là cross-validation:
• chia tập training ra k tập con không có phần tử chung, có kích thước gần bằng nhau
• Tại mỗi lần kiểm thử, một trong số k tập con được lấy ra làm validata set Mô hình sẽ được xây dựng dựa vào hợp của k−1 tập con còn lại
• Mô hình cuối được xác định dựa trên trung bình của các train error và validation error
• Cách làm này còn có tên gọi là k-fold cross validation.
Trang 62• Có một cách giúp số mô hình cần huấn luyện giảm đi nhiều, thậm chí chỉ một
mô hình Cách này có tên gọi chung là regularization.
Trang 63• Regularization: là thay đổi mô hình một chút để tránh overfitting trong khi vẫn
giữ được tính tổng quát của nó (tính tổng quát là tính mô tả được nhiều dữ liệu, trong cả tập training và test)
• Cụ thể, ta sẽ tìm cách di chuyển nghiệm của bài toán tối ưu hàm mất mát tới
một điểm gần nó Hướng di chuyển sẽ là hướng làm cho mô hình ít phức tạp hơn mặc dù giá trị của hàm mất mát có tăng lên một chút.
Trang 64Kỹ thuật Early Stopping
• Trong nhiều bài toán Machine Learning, chúng ta cần sử dụng các thuật toán lặp để tìm ra nghiệm, ví dụ như Gradient Descent.:
• Nhìn chung, hàm mất mát giảm dần khi số vòng lặp tăng lên
• Early stopping dừng thuật toán trước khi hàm mất mát đạt giá trị quá nhỏ, giúp tránh overfitting.
Trang 65• Vậy dừng khi nào: Một kỹ thuật thường được sử dụng là:
• Tách từ training set ra một tập validation set
• Sau một số vòng lặp, ta tính cả train error và validation error, đến khi validation error có chiều
hướng tăng lên thì dừng lại,
• Quay lại sử dụng mô hình tương ứng với điểm và validation error đạt giá trị nhỏ.
Trang 66Thêm số hạng vào hàm mất mát
• Kỹ thuật regularization thêm vào hàm mất mát một số hạng nữa:
• Số hạng này thường dùng để đánh giá độ phức tạp của mô hình
• Số hạng này càng lớn, thì mô hình càng phức tạp
• Hàm mất mát mới này thường được gọi là regularized loss function:
Trang 67• Ta mong sự khác nhau này là nhỏ, vì vậy tham số regularization (regularizaton parameter) λ
thường được chọn là một số nhỏ để biểu thức regularization không làm giảm quá nhiều chất lượng của nghiệm.
Tối thiểu Tối thiểu
Trang 68𝒍𝟐 regularization
• Trong kỹ thuật này:
• Trong Xác suất thống kê, Linear Regression với 𝑙2 regularization được gọi là
Ridge Regression Hàm mất mát của Ridge Regression có dạng:
Trang 69Regularizers for sparsity
• Trong nhiều trường hợp, ta muốn các hệ số thực sự bằng 0 chứ không phải là nhỏ gần 0 như 𝑙2 regularization đã làm phía trên Lúc đó, có một regularization khác được sử dụng, đó là 𝑙0 regularization:
• Norm 0 không phải là một norm thực sự mà là giả norm
• Norm 0 của một vector là số các phần tử khác không của vector đó Khi norm 0
nhỏ, tức rất nhiều phần tử trong vector đó bằng 0, ta nói vector đó là sparse.
Trang 70• Việc giải bài toán tổi thiểu norm 0 nhìn chung là khó vì hàm số này không
convex, không liên tục Thay vào đó, norm 1 thường được sử dụng:
• Norm 1 là tổng các trị tuyệt đối của tất cả các phần tử
• Người ta đã chứng minh được rằng tối thiểu norm 1 sẽ dẫn tới nghiệm có nhiều phần tử bằng 0
• Ngoài ra, vì norm 1 là một norm thực sự (proper norm) nên hàm số này là
convex, và hiển nhiên là liên tục, việc giải bài toán này dễ hơn việc giải bài toán tổi thiểu norm 0
Trang 71• Trong Thống Kê, việc sử dụng 𝑙1 regularization còn được gọi là LASSO (Least Absolute Shrinkage and Selection Operator)
Trang 72Phân cụm K-means
Trình bày: PGS.TS Nguyễn Hữu Quỳnh
Trang 73Giới thiệu
Trang 74Giới thiệu
Có bao nhiêu clusters
Có bao nhiêu clusters?
Trang 75Giới thiệu
• Thuật toán phân cụm K-means thuộc loại học không giám sát
• không biết nhãn (label) của từng điểm dữ liệu
• Mục đích là làm thể nào để phân dữ liệu thành các cụm (cluster) khác nhau sao cho dữ liệu trong cùng một cụm có tính chất giống nhau.
• Ví dụ: Một công ty muốn tạo ra những chính sách ưu đãi cho những nhóm khách hàng khác
nhau nhưng chưa có cách phân thành một số nhóm/cụm:
• phân nhóm dựa trên sự tương tác giữa mỗi khách hàng với công ty: số năm là khách hàng;
số tiền khách hàng đã chi trả cho công ty; độ tuổi; giới tính; thành phố; nghề nghiệp; …
• giả sử công ty có nhiều dữ liệu của rất nhiều khách hàng